Tartalomjegyzék:
- 1. lépés: Csatlakoztatási utasítások
- 2. lépés:
- 3. lépés:
- 4. lépés:
- 5. lépés:
- 6. lépés:
- 7. lépés:
- 8. lépés:
- 9. lépés: Programozási utasítások
- 10. lépés:
- 11. lépés:
- 12. lépés:
- 13. lépés:
- 14. lépés:
Videó: Arduino ébresztőóra projekt: 14 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Ebben a projektben az Arduino Uno -t használjuk az LCD képernyő vezérlésére, hogy megjelenítse a riasztás aktuális idejét és idejét. Minden alkalommal gombokat használunk a beállításhoz.
Anyagok:
- Arduino Uno -
- Breadboard -
- Jumper vezetékek (x13+) -
- 10 kohm ellenállás (x4) -
- LCD képernyő -
- 7 gomb-https://vilros.com/collections/raspberry-pi-acces…
- Piezo hangszóró -
1. lépés: Csatlakoztatási utasítások
1. Csatlakoztasson egy áthidaló vezetéket az Arduino 5V -os tűjéről a kenyértáblán lévő + sínek egyikéhez.
2. lépés:
2. Csatlakoztasson egy jumper vezetéket az Arduino GND csapjától a - sínhez a + sín mellett, amelyet a kenyértáblán választott.
3. lépés:
3. Csatlakoztassa az LCD -képernyőt a tápellátáshoz, a földeléshez és a TX -tűhöz (1. tű).
4. lépés:
4. Helyezzen 7 gombot a kenyértáblára úgy, hogy a lábak a kenyértábla résén átmenjenek.
5. lépés:
5. Helyezzen 10 kohm ellenállást a - sínről a GND tűvel a gombok bal alsó csapjaihoz.
6. lépés:
6. Helyezze az áthidaló vezetékeket a gombok jobb alsó csapja és a kenyértáblán lévő 5 V -os sín közé.
7. lépés:
7. Helyezze az áthidaló vezetékeket a 6., majd a 8-13. És az ellenálláshoz csatlakoztatott gomb csapjai közé.
8. lépés:
8. Ezután helyezze a Piezo hangszóróját a kenyérlapra, és csatlakoztassa a 7 -es tüskét a hálózati csatlakozóhoz, majd egy 100 ohmos ellenállást a földhöz.
9. lépés: Programozási utasítások
1. Áttekintés: Ez a projekt felkéri a felhasználót, hogy állítsa be az aktuális időt a kijelzőn az első bekapcsoláskor, az aktuális időt és az ébresztési időt. A fent csatlakoztatott gombokkal minden alkalommal lehet beállítani. Balról jobbra állítják be az aktuális órát, az aktuális percet, az aktuális AM vagy PM beállítást, az ébresztési órát, az ébresztési percet, az AM vagy a PM beállítást. Az utolsó gomb a riasztás elnémítására szolgál, amikor megszólal.
10. lépés:
2. Az első dolog, amit meg kell tennünk, inicializáljuk a használni kívánt változót.
// A használandó változók inicializálásaint = 0; // Óra az aktuális időre int perc = 0; //
Az aktuális idő perce int másodperc = 0; // Második a jelenlegi időre
int óra_a = 0; int // Óra riasztási időre
perc_a = 0; // perc az ébresztési időhöz
bool am_pm = hamis; // AM/PM toggle flag. Hamis a délelőtt, igaz a PM
bool am_pm_a = hamis; // AM/PM toggle flag for alarm. Hamis a délelőtt, igaz a PM
int set_hr = 13; // Használja a 13 -as tűt az óra beállításához
int set_min = 12; // A 12. tűvel állítsa be a perc int
set_am_pm = 11; // Használja a 11 -es tűt az am/pm beállításához
int set_hr_a = 10; // A 10. tűvel állítsa be a riasztás óráját int set_min_a = 9; // A 9. tűvel állítsa be a riasztás percét int set_am_pm_a = 8; // A 8 -as érintkezővel állítsa be az am/pm riasztást
int hangszóró = 7; // Hangszóróhoz használandó tűcsend csendes = 6; // Rögzítés a hangszóró leállításához
bool riasztás = hamis; // Megjelölés a váltáshoz, hogy továbbra is riasztó legyen
bool csendes = hamis; // A csendet jelző zászlót nem nyomták meg
int cur_time = 0; // Változó az aktuális időre
int etime = 0; // Változó az eltelt időre
11. lépés:
3. Ezután be kell állítanunk az LCD képernyőt, és meg kell mondanunk a felhasználónak, hogy állítsa be a pontos időt. Mivel ezt csak egyszer kell elvégezni, a beállítási rutin szerint fogjuk megtenni.
void setup () {
// LCD képernyő beállítása
Sorozat.kezdet (9600); // Inicializálja a sorozatot 9600 baudon
Soros.írás (17); // Kapcsolja be a háttérvilágítást
Soros.írás (24); // Kapcsolja be a kijelzőt, kurzorral és villogás nélkül
Soros.írás (12); // A képernyő törlése
Soros.írás (128); // Kurzor áthelyezése a bal felső sarokba // PinModes pinMode beállítása (set_hr, BEMENET); 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 (hangszóró, OUTPUT);
pinMode (csendes, BEMENET);
// Az első bekapcsoláskor a felhasználó állítsa be az aktuális időt. Serial.print ("Az aktuális idő beállítása"); késleltetés (2000);
Soros.írás (12);
printTimes ();
cur_time = millis (); // Az aktuális idő tárolása}
12. lépés:
4. Ezután a ciklus rutinjában nyomon követjük az időt, és elolvassuk a gomb állapotát, hogy lássuk, a felhasználó beállítja -e valamelyik időt.
void loop () {
// Tartsd meg az időt
keepTime ();
// Ellenőrizze, hogy ideje -e riasztani!
if ((óra == óra_a && perc == perc_a &&! elcsendesítve) || riasztás) {hang (hangszóró, 2000, 500); // 2000 Hz -es hangot ad ki a hangszóróba 500 ms -ig
késleltetés (500); // Késleltesse az 500 ms -ot, ha (! Alarm) {// Ha a riasztás ki van kapcsolva, kapcsolja be
}
}
// Ha a felhasználó a csendes gomb megnyomásával elnémítja a riasztást, akkor hagyja abba a riasztást, ha (alarm &&! Quieted && digitalRead (csendes)) {
riasztás = hamis;
csendes = igaz; }
// Állítsa vissza a riasztást, ha (! Alarm && quieted && minute! = Minute_a) {quieted = false;
}
// Ellenőrizze, hogy a beállított csapok magasak -e, és ha igen, akkor növelje a megfelelő értéket if (digitalRead (set_hr) && óra <12) {
óra ++;
printTimes ();
debounce ();
}
else if (digitalRead (set_hr) && hour == 12) {hour = 1;
printTimes ();
debounce ();
}
más{}
if (digitalRead (set_min) && perc <59) {
perc ++; printTimes ();
debounce ();
}
else if (digitalRead (set_min) && minute == 59) {minute = 0;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_am_pm) && am_pm) {
am_pm = hamis;
printTimes ();
debounce ();
}
else if (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
debounce ();
}
else {} if (digitalRead (set_hr_a) && hour_a <12) {
óra_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) {
perc_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 = hamis;
printTimes ();
debounce ();
}
else if (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
debounce ();
}
más{}
}
13. lépés:
5. Itt észrevesz néhány általam létrehozott alprogramot - debounce () és printTimes (). A Debounce () használatával biztosíthatjuk, hogy csak egyszer olvassuk el a gombokat. Mivel az Arduino másodpercenként ezerszer szkennel, azt gondolhatja, hogy a gombot többször megnyomták, amikor csak egyszer szándékozott elolvasni. A Debounce () leállítja a programot a gomb elengedéséig. A printTimes () frissíti az LCD képernyőt, de mivel ez több parancs volt, egyszer begépeltem őket, majd bármikor meghívhatom az alprogramot, amikor egy időérték megváltozik.
// Amíg bármelyik gombot megnyomja, maradjon ebben a funkcióban, majd késleltesse a 250 ms -ot.
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)) {} delay (250);
}
// Kinyomtatja a frissített időket, ha vannak változások
void printTimes () {
Soros.írás (12);
Serial.print ("Jelenlegi idő:");
Soros.írás (148);
ha (óra <10) {
Serial.print ("0");
}
Soros.nyomtatás (óra);
Serial.print (":");
ha (perc <10) {
Serial.print ("0");
}
Soros.nyomtatás (perc); Soros.nyomtatás (":");
ha (második <10) {
Serial.print ("0");
}
Soros.nyomtatás (második);
if (am_pm) {
Serial.print ("PM");
}
más{
Serial.print ("AM");
}
Soros.írás (168);
Serial.print ("Alarm Set for:");
Soros.írás (188);
ha (óra_a <10) {
Serial.print ("0");
}
Soros.nyomtatás (óra_a);
Serial.print (":");
ha (perc_a <10) {
Serial.print ("0");
}
Soros.nyomtatás (perc_a);
if (am_pm_a) {
Serial.print ("PM");
}
más{
Serial.print ("AM");
}
}
// Az időparaméterek növelése érvénytelen
keepTime () {
etime = millis () - cur_time;
if (etime> = 1000 && másodperc <59) {
második ++;
cur_time = millis ();
printTimes ();
}
egyébként if (etime> = 1000 && second == 59 && minute <59) {second = 0;
perc ++;
cur_time = millis ();
printTimes ();
}
egyébként if (etime> = 1000 && second == 59 && minute == 59 && óra <12) {
második = 0; perc =
0; óra ++; cur_time =
millis (); printTimes ();
}
egyébként if (etime> = 1000 && second == 59 && minute == 59 && hour == 12) {
második = 0; perc =
0; óra = 1; am_pm =
!délelőtt délután;
cur_time = millis ();
printTimes ();
}
más{}
}
14. lépés:
6. Ennyi!
Fordítsa össze és töltse fel, és kész!
Ajánlott:
Intelligens ébresztőóra a Magicbit használatával (Arduino): 10 lépés
Intelligens ébresztőóra a Magicbit használatával (Arduino): Ez az oktatóanyag bemutatja, hogyan lehet intelligens ébresztőórát készíteni a OLED kijelző segítségével a Magicbit fejlesztőtáblán RTC modul használata nélkül
Arduino ébresztőóra hőmérséklet -érzékelővel: 5 lépés
Arduino ébresztőóra hőmérséklet -érzékelővel: Az Arduino nagyon egyszerű és olcsó mikrovezérlő. és könnyen szabályozható. Tehát mire számíthat ebben a projektben … olyan RTC időzítő beállításokat fogunk használni, amely elég hangos ahhoz, hogy felébressze a szoba hőmérsékletét, ha videót szeretne nézni
Intelligens ébresztőóra: Raspberry Pi -vel készült intelligens ébresztőóra: 10 lépés (képekkel)
Intelligens ébresztőóra: Raspberry Pi -vel készült intelligens ébresztőóra: Szeretett volna valaha okos órát? Ha igen, akkor ez a megoldás az Ön számára! Készítettem intelligens ébresztőórát, ez egy óra, amellyel megváltoztathatja az ébresztési időt a webhely szerint. Amikor a riasztó megszólal, hangjelzés (csipogó) és 2 lámpa hallatszik
DIY Arduino bináris ébresztőóra: 14 lépés (képekkel)
DIY Arduino bináris ébresztőóra: Ez ismét a klasszikus bináris óra! De ezúttal még több kiegészítő funkcióval! Ebben a tanulságosban megmutatom, hogyan lehet bináris ébresztőórát készíteni az Arduino segítségével, amely nemcsak az időt, hanem a dátumot, a hónapot is mutatja, még az időzítővel és az ébresztő szórakoztatással is
Pofon ébresztőóra Arduino -val: 13 lépés (képekkel)
Pofon ébresztőóra Arduino -val: Nem tudok rólad, de egy egyszerű ébresztőóra nem képes felébreszteni. Fényre, hangra és még halk pofonra is szükségem van ahhoz, hogy felébredjek. Nincs ébresztőóra, ezért úgy döntöttem, hogy magamhoz méltóvá teszem az ébresztést. Bár úgy tűnik, az ébresztőóra