Cuprins:
- Pasul 1: Instrucțiuni de conectare
- Pasul 2:
- Pasul 3:
- Pasul 4:
- Pasul 5:
- Pasul 6:
- Pasul 7:
- Pasul 8:
- Pasul 9: Instrucțiuni de programare
- Pasul 10:
- Pasul 11:
- Pasul 12:
- Pasul 13:
- Pasul 14:
Video: Proiectul Ceas cu alarmă Arduino: 14 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
În acest proiect, vom folosi Arduino Uno pentru a controla un ecran LCD pentru a arăta ora și ora curente pentru care este setată o alarmă. Vom folosi butoane pentru a seta de fiecare dată.
Materiale:
- Arduino Uno -
- Breadboard -
- Jumper Wires (x13 +) -
- 10 rezistențe kohm (x4) -
- Ecran LCD -
- 7 Butoane -
- Piezo Speaker -
Pasul 1: Instrucțiuni de conectare
1. Conectați un cablu jumper de la pinul de 5V de pe Arduino la una dintre șinele + de pe panou.
Pasul 2:
2. Conectați un cablu jumper de la pinul GND de pe Arduino la șina - de lângă șina + pe care ați ales-o pe panou.
Pasul 3:
3. Conectați ecranul LCD la alimentare, împământare și pinul TX (pinul 1).
Pasul 4:
4. Așezați 7 butoane pe panou cu picioarele peste golul din panou.
Pasul 5:
5. Așezați 10 rezistențe de kohm de pe șină - cu pinul GND conectat la pinii stânga jos ai butoanelor.
Pasul 6:
6. Așezați cablurile jumperului între știftul din dreapta jos al butoanelor și șina de 5V de pe panoul dvs.
Pasul 7:
7. Plasați firele jumperului între pinii 6, apoi 8-13 și pinul de pe butonul la care este conectat rezistorul.
Pasul 8:
8. Apoi, așezați difuzorul Piezo pe panou și conectați pinul 7 la pinul de alimentare, apoi un rezistor de 100 ohmi la masă.
Pasul 9: Instrucțiuni de programare
1. Prezentare generală: Acest proiect va cere utilizatorului să seteze ora curentă la pornirea inițială pe afișaj, ora curentă și ora pentru care este setată alarma. Butoanele conectate mai sus vor fi utilizate pentru a seta de fiecare dată. De la stânga la dreapta, sunt setate ora curentă, setează minutul curent, setează actualul AM sau PM, setează ora alarmei, setează minutul alarmei, setează alarma AM sau PM. Ultimul buton este utilizat pentru a reduce alarma atunci când sună.
Pasul 10:
2. Primul lucru pe care trebuie să-l facem este să inițializăm variabila pe care o vom folosi.
// Inițializați variabilele care trebuie utilizate în oră = 0; // Ora pentru ora curentă int minut = 0; //
Minut pentru ora curentă int a doua = 0; // A doua pentru ora curentă
int hour_a = 0; int // Ora pentru ora de alarmă
minute_a = 0; // Minut pentru ora alarmei
bool am_pm = false; // Semnalul de comutare AM / PM. Fals este AM, True este PM
bool am_pm_a = false; // AM / PM comută steagul pentru alarmă. Fals este AM, True este PM
int set_hr = 13; // Utilizați pinul 13 pentru a seta ora
int set_min = 12; // Utilizați pinul 12 pentru a seta minutul int
set_am_pm = 11; // Utilizați pinul 11 pentru a seta am / pm
int set_hr_a = 10; // Utilizați pinul 10 pentru a seta ora pentru alarmă int set_min_a = 9; // Folosiți pinul 9 pentru a seta minutul pentru alarmă int set_am_pm_a = 8; // Utilizați pinul 8 pentru a seta am / pm pentru alarmă
difuzor int = 7; // Pinul de utilizat pentru speakerint silent = 6; // Fixați pentru a opri difuzorul
bool alarm = fals; // Semnalizați pentru a comuta pentru a rămâne alarmant
bool quieted = fals; // Steagul care arată liniște nu a fost apăsat
int cur_time = 0; // Variabilă pentru ora curentă
int etime = 0; // Variabilă pentru timpul scurs
Pasul 11:
3. Apoi, trebuie să configurăm ecranul LCD și să spunem utilizatorului să seteze ora curentă. Deoarece acest lucru trebuie făcut o singură dată, o vom face în rutina de configurare.
configurare nulă () {
// Configurați ecranul LCD
Serial.begin (9600); // Inițializați serialul la 9600 baud
Serial.write (17); // Aprindeți lumina din spate
Serial.write (24); // Porniți afișajul, cu cursorul și fără clipire
Serial.write (12); // Ștergeți ecranul
Serial.write (128); // Mutați cursorul în colțul din stânga sus // Setați pinModes pinMode (set_hr, INTRARE); pinMode (set_min, INPUT);
pinMode (set_am_pm, INPUT);
pinMode (set_hr_a, INPUT);
pinMode (set_min_a, INPUT);
pinMode (set_am_pm_a, INPUT);
pinMode (difuzor, OUTPUT);
pinMode (silențios, INPUT);
// La pornirea inițială, solicitați utilizatorului să stabilească ora curentă. Serial.print („Setați ora curentă”); întârziere (2000);
Serial.write (12);
printTimes ();
cur_time = millis (); // Stocați ora curentă}
Pasul 12:
4. Apoi, în rutina de buclă, ținem evidența timpului și citim starea butonului pentru a vedea dacă utilizatorul setează oricare dintre ori.
bucla nulă () {
// Tine timpul
tine timpul();
// Verificați dacă este timpul să alarmați!
if ((hour == hour_a && minute == minute_a &&! calmed) || alarm) {ton (difuzor, 2000, 500); // Emiteți un sunet de 2000 Hz la difuzor pentru 500 ms
întârziere (500); // Întârziți 500 ms dacă (! Alarmă) {// Dacă alarma este dezactivată, activați-o
}
}
// Dacă utilizatorul tace alarma apăsând butonul silențios, opriți alarmarea dacă (alarmă &&! Silențiat && digitalRead (silențios)) {
alarmă = falsă;
quieted = adevărat; }
// Resetați alarma dacă (! Alarm && quieted && minute! = Minute_a) {quieted = false;
}
// Verificați dacă pinii stabiliți cresc și, dacă da, creșteți valoarea corespunzătoare (digitalRead (set_hr) && hour <12) {
ora ++;
printTimes ();
debounce ();
}
else if (digitalRead (set_hr) && hour == 12) {hour = 1;
printTimes ();
debounce ();
}
altceva {}
if (digitalRead (set_min) && minute <59) {
minute ++; printTimes ();
debounce ();
}
else if (digitalRead (set_min) && minute == 59) {minute = 0;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_am_pm) && am_pm) {
am_pm = false;
printTimes ();
debounce ();
}
else if (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
debounce ();
}
else {} if (digitalRead (set_hr_a) && hour_a <12) {
ora_a ++;
printTimes ();
debounce ();
}
else if (digitalRead (set_hr_a) && hour_a == 12) {hour_a = 1;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_min_a) && minute_a <59) {
minute_a ++;
printTimes ();
debounce ();
}
else if (digitalRead (set_min) && minute_a == 59) {minute_a = 0;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_am_pm_a) && am_pm_a) {
am_pm_a = false;
printTimes ();
debounce ();
}
else if (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
debounce ();
}
altceva {}
}
Pasul 13:
5. Aici, veți observa câteva subrutine pe care le-am creat - debounce () și printTimes (). Debounce () este folosit pentru a ne asigura că citim butoanele o singură dată. Deoarece Arduino scanează de mii de ori pe secundă, s-ar putea crede că butonul a fost apăsat de mai multe ori când intenționați să fie citit o singură dată. Debounce () va îngheța programul până când butonul este eliberat. printTimes () actualizează ecranul LCD, dar din moment ce erau mai multe comenzi, le-am tastat o dată și apoi pot apela subrutina oricând se schimbă valoarea orei.
// În timp ce oricare dintre butoane este apăsat, rămâneți în această funcție, apoi întârziați 250 ms.
void debounce () {
while (digitalRead (set_hr) || digitalRead (set_min) ||
digitalRead (set_am_pm) || digitalRead (set_hr_a) ||
digitalRead (set_min_a) || digitalRead (set_am_pm_a)) {} întârziere (250);
}
// Tipărește orele actualizate dacă există modificări
void printTimes () {
Serial.write (12);
Serial.print ("Ora curentă:");
Serial.write (148);
if (ora <10) {
Serial.print („0”);
}
Serial.print (oră);
Serial.print (":");
dacă (minut <10) {
Serial.print („0”);
}
Serial.print (minut); Serial.print (":");
if (al doilea <10) {
Serial.print („0”);
}
Serial.print (al doilea);
if (am_pm) {
Serial.print („PM”);
}
altceva {
Serial.print („AM”);
}
Serial.write (168);
Serial.print ("Set de alarmă pentru:");
Serial.write (188);
if (ora_a <10) {
Serial.print („0”);
}
Serial.print (hour_a);
Serial.print (":");
if (minute_a <10) {
Serial.print („0”);
}
Serial.print (minute_a);
if (am_pm_a) {
Serial.print („PM”);
}
altceva {
Serial.print („AM”);
}
}
// Măriți parametrii de timp anulați
tine timpul(){
etime = millis () - cur_time;
if (etime> = 1000 && second <59) {
al doilea ++;
cur_time = millis ();
printTimes ();
}
else if (etime> = 1000 && second == 59 && minute <59) {second = 0;
minut ++;
cur_time = millis ();
printTimes ();
}
altfel dacă (etime> = 1000 && second == 59 && minute == 59 && hour <12) {
al doilea = 0; minut =
0; ora ++; cur_time =
milis (); printTimes ();
}
else if (etime> = 1000 && second == 59 && minute == 59 && hour == 12) {
al doilea = 0; minut =
0; ora = 1; am_pm =
!am pm;
cur_time = millis ();
printTimes ();
}
altceva {}
}
Pasul 14:
6. Gata!
Compilați și încărcați și ați terminat!
Recomandat:
Ceas cu alarmă extra puternic inspirat de bombă cu ceas cu doar 5 componente: 3 pași
Ceas cu alarmă extra puternic inspirat de Time Bomb cu doar 5 componente: Am creat acest ceas cu alarmă inspirat de Time Bomb ușor de realizat, care este garantat să vă trezească dimineața. Am folosit materiale simple în casă. Toate articolele utilizate sunt ușor disponibile și ieftine. Această alarmă inspirată de bomba cu ceas
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: 10 pași (cu imagini)
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: Ți-ai dorit vreodată un ceas inteligent? Dacă da, aceasta este soluția pentru dvs.! Am creat Smart Alarm Clock, acesta este un ceas pe care îl puteți schimba ora alarmei conform site-ului web. Când alarma se declanșează, se va auzi un sunet (buzzer) și 2 lumini vor
Ceas cu alarmă DIY Sesame Street (cu alarmă de incendiu!): 6 pași (cu imagini)
DIY Sesame Street Alarm Clock (cu alarmă de incendiu!): Bună tuturor! Acest proiect este primul meu. De când a apărut prima aniversare a verișorilor mei, am vrut să îi fac un cadou special. Am auzit de la unchiul și mătușa că se află pe Sesame Street, așa că am decis împreună cu frații mei să fac un ceas cu alarmă
Proiectul Ceas cu pendul: 4 pași
Pendulum Clock Project: Sunt membru al Clusterului 2 în COSMOS 2018 la UC San Diego. Clusterul nostru se concentrează pe proiectarea inginerească și controlul sculpturilor cinetice. Primul nostru proiect a fost să creăm un ceas cu pendul folosind studioul de design al UCSD. Acest proiect este, de asemenea, unul dintre UCSD
Ceas cu alarmă cu răsărit cu LED cu alarmă de melodie personalizabilă: 7 pași (cu imagini)
Ceas cu alarmă cu răsărit cu LED cu alarmă de melodie personalizabilă: motivația mea În această iarnă, iubita mea a avut multe probleme la trezire dimineața și părea să sufere de SAD (tulburare afectivă sezonieră). Ba chiar observ cât de greu este să te trezești iarna, deoarece soarele nu a venit