Kazalo:
- 1. korak: Navodila za priključitev
- 2. korak:
- 3. korak:
- 4. korak:
- 5. korak:
- 6. korak:
- 7. korak:
- 8. korak:
- 9. korak: Navodila za programiranje
- 10. korak:
- 11. korak:
- 12. korak:
- 13. korak:
- 14. korak:
Video: Projekt budilke Arduino: 14 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
V tem projektu bomo uporabili Arduino Uno za nadzor LCD zaslona za prikaz trenutnega časa in časa, za katerega je nastavljen alarm. Za nastavitev bomo vsakič uporabili gumbe.
Materiali:
- Arduino Uno -
- Breadboard -
- Jumper žice (x13+) -
- 10 kohm uporov (x4) -
- LCD zaslon -
- 7 gumbov-https://vilros.com/collections/raspberry-pi-acces…
- Piezo zvočnik -
1. korak: Navodila za priključitev
1. Priključite mostični kabel s 5V zatiča na Arduinu na eno od + tirnic na plošči.
2. korak:
2. Povežite mostiček z zatiča GND na Arduinu z - tirnico poleg + tirnice, ki ste jo izbrali na plošči.
3. korak:
3. Priključite zaslon LCD na napajanje, ozemljitev in pin TX (pin 1).
4. korak:
4. Postavite 7 gumbov na ploščo z nogami čez režo na plošči.
5. korak:
5. 10 -komski upor postavite s tirnice s priključkom GND na spodnje leve nožice gumbov.
6. korak:
6. Postavite mostične žice med spodnji desni zatič gumbov in 5 -voltno letev na vaši plošči.
7. korak:
7. Postavite mostične žice med zatiče 6, nato 8-13 in zatič na gumbu, na katerega je priključen upor.
8. korak:
8. Nato postavite svoj Piezo zvočnik na ploščo in priključite zatič 7 na napajalni zatič, nato pa 100 ohmski upor na maso.
9. korak: Navodila za programiranje
1. Pregled: Ta projekt bo od uporabnika zahteval, da na prikazovalniku nastavi trenutni čas trenutnega časa in čas, za katerega je alarm nastavljen. Zgoraj povezani gumbi bodo vsakič uporabljeni za nastavitev. Od leve proti desni so nastavljene trenutne ure, nastavljene trenutne minute, trenutni AM ali PM, nastavljene ure alarma, nastavljene minute alarma, nastavljene alarme AM ali PM. Zadnji gumb se uporablja za utišanje alarma, ko se oglasi.
10. korak:
2. Prva stvar, ki jo moramo storiti, je, da inicializiramo spremenljivko, ki jo bomo uporabili.
// Začetek uporabe spremenljivkintour = 0; // Ura za trenutni čas int minuta = 0; //
Minuta za trenutni čas int sekunda = 0; // Drugi za trenutni čas
int ura_a = 0; int // Ura za čas alarma
minuta_a = 0; // Minuta za čas alarma
bool am_pm = false; // preklopna zastavica AM/PM. Napačno je AM, res je PM
bool am_pm_a = false; // Preklopna zastavica AM/PM za alarm. Napačno je AM, res je PM
int set_hr = 13; // Z nastavkom 13 nastavite uro
int set_min = 12; // Za nastavitev minute int uporabite pin 12
set_am_pm = 11; // Uporabite pin 11 za nastavitev am/pm
int set_hr_a = 10; // Uporabite pin 10 za nastavitev ure za alarm int set_min_a = 9; // Uporabite pin 9 za nastavitev minute za alarm int set_am_pm_a = 8; // Z pin 8 nastavite am/pm za alarm
int zvočnik = 7; // Pin za zvočnike tiho = 6; // Pripnite, da zaustavite zvočnik
bool alarm = false; // Označite, da preklopite, da ostanete alarmantni
bool utišan = napačno; // Zastava, ki prikazuje tišino, ni bila pritisnjena
int cur_time = 0; // Spremenljivka za trenutni čas
int etime = 0; // Spremenljivka za pretečeni čas
11. korak:
3. Nato moramo nastaviti LCD zaslon in uporabniku povedati, da nastavi trenutni čas. Ker je to treba storiti le enkrat, bomo to storili v nastavitveni rutini.
void setup () {
// Nastavitev LCD zaslona
Serial.begin (9600); // Inicializirajte serijsko serijo pri 9600 baud
Serial.write (17); // Vklopite zadnjo luč
Serial.write (24); // Vklopite zaslon s kazalcem in brez utripanja
Serial.write (12); // Počistite zaslon
Serial.write (128); // Premakni kazalec v zgornji levi kot // Nastavi pinModes pinMode (set_hr, VHOD); 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 (zvočnik, IZHOD);
pinMode (tiho, VHOD);
// Pri začetnem napajanju naj uporabnik nastavi trenutni čas. Serial.print ("Nastavi trenutni čas"); zamuda (2000);
Serial.write (12);
printTimes ();
cur_time = millis (); // Shrani trenutni čas}
12. korak:
4. Nato v rutini zanke spremljamo čas in beremo stanje gumbov, da vidimo, ali uporabnik nastavi enega od časov.
void loop () {
// Držite čas
keepTime ();
// Preverite, ali je čas za alarm!
če ((ura == ura_a && minuta == minuta_a &&! utišana) || alarm) {ton (zvočnik, 2000, 500); // Predvajamo zvok 2000 Hz v zvočnik za 500 ms
zamuda (500); // Zakasnitev 500 ms, če (! Alarm) {// Če je alarm izklopljen, ga vklopite
}
}
// Če uporabnik utiša alarm s pritiskom na tihi gumb, preneha z alarmiranjem if (alarm &&! Utišan && digitalRead (tih)) {
alarm = napačno;
utišan = res; }
// Ponastavi alarm, če (! Alarm && utišan && minute! = Minute_a) {quieted = false;
}
// Preverite, ali so nastavljeni zatiči visoki, in če je tako, povečajte ustrezno vrednost if (digitalRead (set_hr) && hour <12) {
ura ++;
printTimes ();
debounce ();
}
else if (digitalRead (set_hr) && hour == 12) {hour = 1;
printTimes ();
debounce ();
}
drugo {}
if (digitalRead (set_min) && minute <59) {
minute ++; printTimes ();
debounce ();
}
sicer if (digitalRead (set_min) && minute == 59) {minute = 0;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_am_pm) && am_pm) {
am_pm = false;
printTimes ();
debounce ();
}
sicer če (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
debounce ();
}
else {} if (digitalRead (set_hr_a) && hour_a <12) {
ura_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 ();
}
sicer 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 ();
}
sicer če (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
debounce ();
}
drugo {}
}
13. korak:
5. Tu boste opazili nekaj podprogramov, ki sem jih ustvaril - debounce () in printTimes (). Debounce () se uporablja za zagotovitev, da gumbe preberemo samo enkrat. Ker Arduino skenira tisočkrat na sekundo, se mu morda zdi, da je bil gumb večkrat pritisnjen, ko ste nameravali prebrati le enkrat. Debounce () bo zamrznil program, dokler se gumb ne sprosti. printTimes () posodobi LCD zaslon, ker pa je bilo to več ukazov, sem jih enkrat vtipkal in nato lahko kadar koli pokličem podprogram, če se vrednost časa spremeni.
// Medtem ko pritisnete kateri koli gumb, ostanite v tej funkciji in nato zakasnite 250 ms.
void debounce () {
medtem ko (digitalRead (set_hr) || digitalRead (set_min) ||
digitalRead (set_am_pm) || digitalRead (set_hr_a) ||
digitalRead (set_min_a) || digitalRead (set_am_pm_a)) {} zamuda (250);
}
// Natisne posodobljene ure, če pride do sprememb
void printTimes () {
Serial.write (12);
Serial.print ("Trenutni čas:");
Serial.write (148);
če (ura <10) {
Serial.print ("0");
}
Serijski.tisk (ura);
Serial.print (":");
če (minuta <10) {
Serial.print ("0");
}
Serial.print (minuta); Serial.print (":");
if (drugo <10) {
Serial.print ("0");
}
Serial.print (drugi);
če (am_pm) {
Serial.print ("PM");
}
drugače {
Serial.print ("AM");
}
Serial.write (168);
Serial.print ("Nastavitev alarma za:");
Serial.write (188);
če (ura_a <10) {
Serial.print ("0");
}
Serial.print (ura_a);
Serial.print (":");
če (minuta_a <10) {
Serial.print ("0");
}
Serial.print (minute_a);
če (am_pm_a) {
Serial.print ("PM");
}
drugače {
Serial.print ("AM");
}
}
// Povečanje časovnih parametrov void
keepTime () {
etime = millis () - čas_toka;
if (etime> = 1000 && second <59) {
drugi ++;
cur_time = millis ();
printTimes ();
}
sicer if (etime> = 1000 && second == 59 && minute <59) {second = 0;
minuta ++;
cur_time = millis ();
printTimes ();
}
sicer if (etime> = 1000 && second == 59 && minute == 59 && hour <12) {
drugi = 0; minuta =
0; ura ++; cur_time =
milis (); printTimes ();
}
sicer if (etime> = 1000 && second == 59 && minute == 59 && hour == 12) {
drugi = 0; minuta =
0; ura = 1; am_pm =
!dopoldne Popoldne;
cur_time = millis ();
printTimes ();
}
drugo {}
}
14. korak:
6. To je to!
Sestavite in naložite in končali ste!
Priporočena:
Projekt Arduino-Tamagotchi (Jaz sem Tamagotchi): 5 korakov (s slikami)
Projekt Arduino-Tamagotchi (Jaz sem Tamagotchi): V karanteni mi je bilo dolgčas in sem se odločil narediti Arduino Tamagotchi. Ker sovražim veliko živali, se sam odločim za Tamagotchi. Najprej konzolo postavim na ploščo. Ožičenje je zelo preprosto. Na voljo so samo trije gumbi, zvočni signal in
Projekt merilnika moči z uporabo Arduino Pro Mini: 5 korakov
Projekt merilnika moči z uporabo Arduino Pro Mini: Uvod Pozdravljeni, elektronska skupnost! Danes vam bom predstavil projekt, ki vam omogoča merjenje napetosti in toka aparata ter prikaz skupaj z vrednostmi moči in energije. Merjenje toka/napetosti Če želite izmeriti
Kako povezati in uporabiti svetlobni senzor GY -30 BH1750 (GY30 / GY302) - enostavno - Arduino projekt!: 7 korakov
Kako povezati in uporabiti svetlobni senzor GY -30 BH1750 (GY30 / GY302) - enostavno - Arduino projekt !: V tej vadnici se bomo naučili, kako hitro in enostavno uporabljati senzor intenzivnosti svetlobe GY -30 BH1750 z Arduinom. Oglejte si predstavitveni video
Arduino rele budilke: 6 korakov (s slikami)
Rele z budilko Arduino: Imam veliko težav zbuditi se zgodaj zjutraj, še posebej, če sem zadnjo noč ostal pozno. V bistvu vam ta projekt omogoča, da odprete rele v času, ki ga nastavite s tipkovnico in lcd. Ta rele lahko nadzoruje številne naprave od vklopa
Gorilnik z USB pogonom! Ta projekt lahko gori iz plastike / lesa / papirja (zabaven projekt mora biti tudi iz zelo lesenega lesa): 3 koraki
Gorilnik z USB pogonom! Ta projekt lahko gori iz plastike / lesa / papirja (zabaven projekt mora biti tudi iz zelo lesenega lesa): NE NAČINITE TEGA Z UPORABO USB !!!! Iz vseh komentarjev sem ugotovil, da lahko poškoduje vaš računalnik. moj računalnik je v redu. Uporabite polnilnik za telefon 600m 5v. Uporabil sem to in deluje brezhibno in nič se ne poškoduje, če uporabite varnostni vtič za zaustavitev napajanja