Obsah:
- Krok 1: Pokyny na pripojenie
- Krok 2:
- Krok 3:
- Krok 4:
- Krok 5:
- Krok 6:
- Krok 7:
- Krok 8:
- Krok 9: Pokyny na programovanie
- Krok 10:
- Krok 11:
- Krok 12:
- Krok 13:
- Krok 14:
Video: Budík Arduino: 14 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
V tomto projekte použijeme Arduino Uno na ovládanie LCD obrazovky, aby sme ukázali aktuálny čas a čas, na ktorý je nastavený alarm. Na nastavenie použijeme zakaždým tlačidlá.
Materiály:
- Arduino Uno -
- Breadboard -
- Prepojovacie vodiče (x13+) -
- Rezistory 10 kohm (x4) -
- LCD obrazovka -
- 7 tlačidiel-https://vilros.com/collections/raspberry-pi-acces…
- Piezo reproduktor -
Krok 1: Pokyny na pripojenie
1. Pripojte prepojovací kábel z 5V kolíka na Arduine k jednej z + koľajničiek na doske.
Krok 2:
2. Pripojte prepojovací vodič z kolíka GND na Arduine k - lište vedľa + lišty +, ktorú ste vybrali na doske.
Krok 3:
3. Pripojte obrazovku LCD k napájaniu, uzemneniu a kolíku TX (kolík 1).
Krok 4:
4. Umiestnite 7 tlačidiel na dosku na chlieb tak, aby boli nohy cez medzeru v doske na chlieb.
Krok 5:
5. Umiestnite 10 kohmové odpory z - lišty s kolíkom GND, ktorý je k nemu pripojený, k dolným ľavým kolíkom tlačidiel.
Krok 6:
6. Umiestnite prepojovacie vodiče medzi pravý dolný kolík tlačidiel a 5V koľajnicu na vašom doske.
Krok 7:
7. Umiestnite prepojovacie vodiče medzi kolíky 6, potom 8-13 a kolík na tlačidlo, ku ktorému je odpor pripojený.
Krok 8:
8. Ďalej umiestnite svoj piezo reproduktor na dosku a zapojte pin 7 k napájaciemu kolíku a potom 100 ohmový odpor k zemi.
Krok 9: Pokyny na programovanie
1. Prehľad: Tento projekt požiada používateľa, aby nastavil aktuálny čas pri počiatočnom zapnutí displeja, aktuálny čas a čas, na ktorý je nastavený alarm. Tlačidlá zapojené vyššie budú použité na nastavenie zakaždým. Zľava doprava sa nastavuje aktuálna hodina, aktuálna minúta, aktuálna dopoludnia alebo popoludní, nastavená hodina budíka, nastavená minúta budíka, budík dopoludnia alebo popoludní. Posledné tlačidlo slúži na stíšenie alarmu, keď znie.
Krok 10:
2. Prvá vec, ktorú musíme urobiť, je inicializácia našej premennej, ktorú použijeme.
// Inicializácia premenných, ktoré sa majú použiťint hodina = 0; // Hodina pre aktuálny čas int minúta = 0; //
Minúta aktuálneho času int sekunda = 0; // Druhý pre aktuálny čas
int hodina_a = 0; int // Hodina pre budík
minúta_a = 0; // Minúta času budíka
bool am_pm = false; // Prepínač AM/PM. False je AM, Pravda je PM
bool am_pm_a = false; // Prepínač AM/PM pre alarm. False je AM, Pravda je PM
int set_hr = 13; // Na nastavenie hodiny použite kolík 13
int set_min = 12; // Pomocou kolíka 12 nastavte minútový int
set_am_pm = 11; // Na nastavenie dopoludnia/večera použite kolík 11
int set_hr_a = 10; // Použite pin 10 na nastavenie hodiny pre alarm int set_min_a = 9; // Pomocou kolíka 9 nastavte minútu alarmu int set_am_pm_a = 8; // Pomocou kolíka 8 nastavte budík ráno/večer
int reproduktor = 7; // Pin, ktorý sa použije na tichý reproduktor = 6; // Reproduktor zastavíte pripnutím
poplach bool = falošný; // Vlajka na prepnutie, aby zostala alarmujúca
bool utíšený = nepravda; // Vlajka zobrazujúca ticho nebola stlačená
int cur_time = 0; // Premenná pre aktuálny čas
int etime = 0; // Premenná za uplynulý čas
Krok 11:
3. Ďalej musíme nastaviť LCD obrazovku a povedať používateľovi, aby nastavil aktuálny čas. Pretože to treba urobiť iba raz, urobíme to v rutine nastavenia.
neplatné nastavenie () {
// Nastavenie obrazovky LCD
Serial.begin (9600); // Inicializácia sériového čísla na 9600 baudov
Serial.write (17); // Zapnite zadné svetlo
Serial.write (24); // Zapnite displej s kurzorom a bez žmurkania
Serial.write (12); // Vymažte obrazovku
Serial.write (128); // Presuňte kurzor do ľavého horného rohu // Set pinModes pinMode (set_hr, VSTUP); 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 (reproduktor, VÝSTUP);
pinMode (tichý, VSTUP);
// Pri prvom zapnutí nechajte používateľ nastaviť aktuálny čas. Serial.print ("Nastaviť aktuálny čas"); oneskorenie (2000);
Serial.write (12);
printTimes ();
cur_time = millis (); // Uložiť aktuálny čas}
Krok 12:
4. Potom v rutine slučky sledujeme čas a čítame stavy tlačidiel, aby sme zistili, či používateľ nastavuje niektorý z časov.
prázdna slučka () {
// Nechaj si čas
keepTime ();
// Skontrolujte, či nie je čas na poplach!
if ((hodina == hodina_a && minúta == minúta_a &&! stíšená) || alarm) {tón (reproduktor, 2000, 500); // Výstup zvuku 2000 Hz do reproduktora po dobu 500 ms
oneskorenie (500); // Oneskorenie 500 ms, ak (! Alarm) {// Ak je alarm vypnutý, zapnite ho
}
}
// Ak používateľ stíši alarm stlačením tichého tlačidla, prestaňte ho upozorňovať, ak (alarm &&! Tichý && digitalRead (tichý)) {
alarm = falošný;
potichu = pravda; }
// Resetujte alarm, ak (! Alarm && stíšený && minúta! = Minúta_a) {quieted = false;
}
// Skontrolujte, či sú nastavené kolíky vysoké, a ak áno, zvýšte zodpovedajúcu hodnotu if (digitalRead (set_hr) && hour <12) {
hodina ++;
printTimes ();
debounce ();
}
else if (digitalRead (set_hr) && hour == 12) {hodina = 1;
printTimes ();
debounce ();
}
inak {}
if (digitalRead (set_min) && minute <59) {
minúta ++; printTimes ();
debounce ();
}
else if (digitalRead (set_min) && minúta == 59) {minúta = 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) {
hodina_a ++;
printTimes ();
debounce ();
}
else if (digitalRead (set_hr_a) && hour_a == 12) {hodina_a = 1;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_min_a) && minute_a <59) {
minúta_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 ();
}
inak {}
}
Krok 13:
5. Tu si všimnete niekoľko podprogramov, ktoré som vytvoril - debounce () a printTimes (). Debounce () sa používa na zaistenie toho, aby sme tlačidlá čítali iba raz. Pretože Arduino skenuje tisíckrát za sekundu, môže si myslieť, že bolo tlačidlo stlačené niekoľkokrát, keď ste ho plánovali prečítať iba raz. Program Debounce () zmrazí program, kým neuvoľníte tlačidlo. printTimes () aktualizuje obrazovku LCD, ale pretože to bolo niekoľko príkazov, zadal som ich raz a potom môžem zavolať podprogram kedykoľvek sa zmení hodnota času.
// Kým sa stlačí akékoľvek z tlačidiel, zostaňte v tejto funkcii a potom oneskorte 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)) {} oneskorenie (250);
}
// V prípade akýchkoľvek zmien vytlačí aktualizované časy
void printTimes () {
Serial.write (12);
Serial.print ("Aktuálny čas:");
Serial.write (148);
ak (hodina <10) {
Serial.print ("0");
}
Serial.print (hodina);
Serial.print (":");
ak (minúta <10) {
Serial.print ("0");
}
Serial.print (minúta); Serial.print (":");
ak (druhý <10) {
Serial.print ("0");
}
Serial.print (druhý);
if (am_pm) {
Serial.print ("PM");
}
inak {
Serial.print ("AM");
}
Serial.write (168);
Serial.print ("Sada alarmov pre:");
Serial.write (188);
ak (hodina_a <10) {
Serial.print ("0");
}
Serial.print (hodina_a);
Serial.print (":");
ak (minúta_a <10) {
Serial.print ("0");
}
Serial.print (minúta_a);
ak (am_pm_a) {
Serial.print ("PM");
}
inak {
Serial.print ("AM");
}
}
// Zvýšte neplatnosť parametrov času
keepTime () {
etime = millis () - cur_time;
if (etime> = 1000 && second <59) {
druhý ++;
cur_time = millis ();
printTimes ();
}
else if (etime> = 1000 && second == 59 && minute <59) {second = 0;
minúta ++;
cur_time = millis ();
printTimes ();
}
else if (etime> = 1000 && second == 59 && minute == 59 && hour <12) {
sekunda = 0; minúta =
0; hodina ++; cur_time =
milis (); printTimes ();
}
else if (etime> = 1000 && second == 59 && minute == 59 && hour == 12) {
sekunda = 0; minúta =
0; hodina = 1; dopoludnia =
!dopoludnia popoludní;
cur_time = millis ();
printTimes ();
}
inak {}
}
Krok 14:
6. To je všetko!
Skompilovajte a nahrajte a máte hotovo!
Odporúča:
Inteligentný budík využívajúci Magicbit (Arduino): 10 krokov
Inteligentný budík pomocou Magicbit (Arduino): Tento tutoriál ukazuje, ako vytvoriť inteligentný budík pomocou OLED displeja na doske Magicbit dev bez použitia akéhokoľvek modulu RTC
Budík Arduino so snímačom teploty: 5 krokov
Budík Arduino so snímačom teploty: Arduino je veľmi jednoduchý a lacný mikroovladač. a ľahko sa ovládajú. Čo teda v tomto projekte očakávate … použijeme RTC s tak presným nastavením času, ktoré je dostatočne hlasné na to, aby sa prebudila teplota miestnosti, ak chcete sledovať videoklipy
Inteligentný budík: inteligentný budík vyrobený z Raspberry Pi: 10 krokov (s obrázkami)
Inteligentný budík: Inteligentný budík vyrobený z Raspberry Pi: Už ste niekedy chceli inteligentné hodiny? Ak je to tak, toto je riešenie pre vás! Vyrobil som inteligentný budík, toto sú hodiny, v ktorých môžete zmeniť čas budíka podľa webových stránok. Keď sa spustí alarm, zaznie zvuk (bzučiak) a 2 svetlá
DIY Arduino binárny budík: 14 krokov (s obrázkami)
DIY Arduino binárne budíky: Sú to opäť klasické binárne hodiny! Ale tentokrát s ešte viac dodatočnými funkciami! V tomto návode vám ukážem, ako vytvoriť binárny budík s Arduinom, ktorý vám môže ukazovať nielen čas, ale aj dátum, mesiac, dokonca aj zábavu s časovačom a budíkom
Slap budík s Arduino: 13 krokov (s obrázkami)
Slap budík s Arduino: Neviem ako vy, ale jednoduchý budík ma nedokáže zobudiť. Potrebujem na prebudenie svetlo, zvuk a dokonca aj tichú facku. Žiadny budík ma neláka, a tak som sa rozhodol urobiť zo seba človeka, ktorý by ma hodný zobudiť. Aj keď sa zdá, že budík