Sadržaj:
- Korak 1: Upute za spajanje
- Korak 2:
- 3. korak:
- Korak 4:
- 5. korak:
- Korak 6:
- Korak 7:
- Korak 8:
- Korak 9: Upute za programiranje
- 10. korak:
- 11. korak:
- Korak 12:
- Korak 13:
- Korak 14:
Video: Projekt budilnika Arduino: 14 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
U ovom ćemo projektu koristiti Arduino Uno za upravljanje LCD zaslonom za prikaz trenutnog vremena i vremena za koje je alarm postavljen. Svaki put ćemo koristiti gumbe za postavljanje.
Materijali:
- Arduino Uno -
- Breadboard -
- Jumper žice (x13+) -
- 10 kohm otpornika (x4) -
- LCD zaslon -
- 7 gumba-https://vilros.com/collections/raspberry-pi-acces…
- Piezo zvučnik -
Korak 1: Upute za spajanje
1. Spojite kratkospojnu žicu s 5V pina na Arduinu na jednu od + tračnica na ploči.
Korak 2:
2. Spojite kratkospojnu žicu s GND pina na Arduinu na - vodilicu pored + tračnice koju ste odabrali na ploči.
3. korak:
3. Spojite LCD zaslon na napajanje, uzemljenje i TX pin (pin 1).
Korak 4:
4. Postavite 7 gumba na ploču s nogama preko razmaka na ploči s kruhom.
5. korak:
5. Postavite 10 kohm otpornika s - vodilice sa spojenim GND pinom na donje lijeve pinove gumba.
Korak 6:
6. Postavite kratkospojne žice između donjeg desnog zatiča gumba i 5V šine na vašoj ploči.
Korak 7:
7. Postavite kratkospojne žice između pinova 6, zatim 8-13 i pina na gumbu na koji je priključen otpornik.
Korak 8:
8. Zatim postavite svoj Piezo zvučnik na ploču i spojite iglu 7 na utičnicu za napajanje, a zatim otpornik od 100 ohma na masu.
Korak 9: Upute za programiranje
1. Pregled: Ovaj će projekt od korisnika zatražiti da na zaslonu prikaže trenutno vrijeme i vrijeme na koje je alarm postavljen. Gore spojeni gumbi će se koristiti za podešavanje svaki put. S lijeva na desno postavljaju se trenutni sat, trenutna minuta, trenutni AM ili PM, sat alarma, minuta alarma, alarm AM ili PM. Posljednji gumb koristi se za utišavanje alarma kada se oglasi.
10. korak:
2. Prvo što moramo učiniti je inicijalizirati našu varijablu koju ćemo koristiti.
// Inicijaliziraj varijable koje će se koristitiint hour = 0; // Sat za trenutno vrijeme int minuta = 0; //
Minuta za trenutno vrijeme int sekunda = 0; // Drugi za trenutno vrijeme
int sat_a = 0; int // Sat za vrijeme alarma
minuta_a = 0; // Minuta za vrijeme alarma
bool am_pm = false; // Zastavica za prebacivanje AM/PM. Lažno je AM, Tačno je PM
bool am_pm_a = false; // AM/PM preklopna zastavica za alarm. Lažno je AM, Tačno je PM
int set_hr = 13; // Pomoću iglice 13 postavite sat
int set_min = 12; // Upotrijebite pin 12 za postavljanje minute int
set_am_pm = 11; // Pomoću pina 11 postavite am/pm
int set_hr_a = 10; // Pomoću pina 10 postavite sat za alarm int set_min_a = 9; // Pomoću pina 9 postavite minute za alarm int set_am_pm_a = 8; // Pomoću pina 8 postavite am/pm za alarm
int zvučnik = 7; // Pin za korištenje za speakerint quiet = 6; // Prikvačite za zaustavljanje zvučnika
bool alarm = false; // Označite za uključivanje/ isključivanje kako biste bili alarmantni
bool utišan = netočno; // Zastava koja pokazuje tišinu nije pritisnuta
int cur_time = 0; // Varijabla za trenutno vrijeme
int etime = 0; // Varijabla za proteklo vrijeme
11. korak:
3. Zatim moramo postaviti LCD zaslon i reći korisniku da postavi trenutno vrijeme. Budući da je to potrebno učiniti samo jednom, to ćemo učiniti u rutini postavljanja.
void setup () {
// Postavljanje LCD zaslona
Serial.begin (9600); // Pokreni serijski broj na 9600 bauda
Serial.write (17); // Uključite stražnje svjetlo
Serial.write (24); // Uključite zaslon, bez pokazivača i bez treptanja
Serial.write (12); // Očistite zaslon
Serial.write (128); // Pomaknite kursor u gornji lijevi kut // Postavite pinModes pinMode (set_hr, ULAZNI); 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 (zvučnik, OUTPUT);
pinMode (tih, ULAZ);
// Na početnom napajanju, korisnik mora postaviti trenutno vrijeme. Serial.print ("Postavi trenutno vrijeme"); odgoda (2000);
Serial.write (12);
printTimes ();
cur_time = millis (); // Spremi trenutno vrijeme}
Korak 12:
4. Zatim, u rutini petlje, pratimo vrijeme i čitamo stanje gumba kako bismo provjerili postavlja li korisnik bilo koje vrijeme.
void loop () {{100} {101}
// Zadrži vrijeme
keepTime ();
// Provjerite je li vrijeme za alarm!
if ((sat == hour_a && minute == minute_a &&! utišan) || alarm) {ton (zvučnik, 2000, 500); // Zvučnik reproducira zvuk od 2000 Hz tijekom 500 ms
kašnjenje (500); // Odgoda 500 ms ako (! Alarm) {// Ako je alarm isključen, uključite ga
}
}
// Ako korisnik utiša alarm pritiskom na tipku za tiho, prestanite alarmirati if (alarm &&! Utišan && digitalRead (tih)) {
alarm = lažno;
utišan = istina; }
// Poništite alarm ako (! Alarm && utišan && minute! = Minute_a) {quieted = false;
}
// Provjerite jesu li postavljeni pinovi visoki, pa ako je tako, povećajte odgovarajuću vrijednostif (digitalRead (set_hr) && hour <12) {
sat ++;
printTimes ();
debounce ();
}
else if (digitalRead (set_hr) && hour == 12) {hour = 1;
printTimes ();
debounce ();
}
drugo{}
if (digitalRead (set_min) && minute <59) {
minuta ++; 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) {
sat_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) {
minuta_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 = netočno;
printTimes ();
debounce ();
}
inace if (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
debounce ();
}
drugo{}
}
Korak 13:
5. Ovdje ćete primijetiti nekoliko potprograma koje sam stvorio - debounce () i printTimes (). Debounce () se koristi kako bismo bili sigurni da gumbe čitamo samo jednom. Budući da Arduino skenira tisuće puta u sekundi, može pomisliti da je gumb pritisnut nekoliko puta kad ste namjeravali pročitati samo jednom. Debounce () će zamrznuti program dok se gumb ne otpusti. printTimes () ažurira LCD zaslon, ali budući da je to bilo nekoliko naredbi, upisao sam ih jednom i tada mogu pozvati potprogram kad god se promijeni vrijednost vremena.
// Dok je bilo koji gumb pritisnut, ostanite u ovoj funkciji, a zatim odgodite 250 ms.
void debounce () {
while (digitalRead (set_hr) || digitalRead (set_min) ||
digitalno čitanje (set_am_pm) || digitalno čitanje (set_hr_a) ||
digitalno čitanje (set_min_a) || digitalRead (set_am_pm_a)) {} kašnjenje (250);
}
// Ispisuje ažurirano vrijeme ako ima promjena
void printTimes () {
Serial.write (12);
Serial.print ("Trenutno vrijeme:");
Serial.write (148);
if (sat <10) {
Serial.print ("0");
}
Serijski.tisak (sat);
Serial.print (":");
if (minuta <10) {
Serial.print ("0");
}
Serial.print (minuta); Serial.print (":");
if (drugi <10) {
Serial.print ("0");
}
Serijski.ispis (drugi);
if (am_pm) {
Serial.print ("PM");
}
drugo{
Serial.print ("AM");
}
Serial.write (168);
Serial.print ("Alarmni set za:");
Serial.write (188);
ako (sat_a <10) {
Serial.print ("0");
}
Serijski.tisak (sat_a);
Serial.print (":");
if (minuta_a <10) {
Serial.print ("0");
}
Serijski.ispis (minuta_a);
ako (am_pm_a) {
Serial.print ("PM");
}
drugo{
Serial.print ("AM");
}
}
// Povećanje vremenskih parametara void
keepTime () {
etime = millis () - vrijeme_vremena;
if (etime> = 1000 && second <59) {
drugi ++;
cur_time = millis ();
printTimes ();
}
else if (etime> = 1000 && second == 59 && minute <59) {second = 0;
minuta ++;
cur_time = millis ();
printTimes ();
}
inace if (etime> = 1000 && second == 59 && minute == 59 && hour <12) {
drugi = 0; minuta =
0; sat ++; vrijeme_vremena =
milis (); printTimes ();
}
inace if (etime> = 1000 && second == 59 && minute == 59 && hour == 12) {
drugi = 0; minuta =
0; sat = 1; am_pm =
!prijepodne posljepodne;
cur_time = millis ();
printTimes ();
}
drugo{}
}
Korak 14:
6. To je to!
Sastavite i prenesite i gotovi ste!
Preporučeni:
Kako napraviti RADAR koristeći Arduino za znanstveni projekt - Najbolji Arduino projekti: 5 koraka
Kako napraviti RADAR koristeći Arduino za znanstveni projekt | Najbolji Arduino projekti: Bok prijatelji, u ovom uputstvu pokazat ću vam kako napraviti nevjerojatan radarski sustav izgrađen pomoću arduino nano, ovaj projekt je idealan za znanstvene projekte, a to možete lako učiniti uz vrlo malo ulaganja i šanse ako je osvajanje nagrade velika
Prenamjena baterije mobilnog telefona za vaš Arduino projekt: 3 koraka
Prenamjena baterije mobilnog telefona za vaš Arduino projekt: Ovako sam reciklirao staru bateriju mobilnog telefona za napajanje arduino projekta. Ova vrsta čestice je 2000 mAh nokia BLY4W. Međutim, korištene tehnike uobičajene su za većinu baterija telefona. Ova je baterija iznenada umrla pokazujući 0 V
Arduino Flappy Bird - Arduino 2.4 "TFT zaslon osjetljiv na dodir SPFD5408 Projekt igre ptica: 3 koraka
Arduino Flappy Bird | Arduino 2.4 "TFT zaslon osjetljiv na dodir SPFD5408 Projekt igre ptica: Flappy Bird je tamo bila previše popularna igra u nekoliko godina i mnogi su je stvorili na svoj način pa sam i ja stvorio svoju verziju flappy bird s Arduinom i jeftinim 2.4" TFT " Zaslon osjetljiv na dodir SPFD5408, Pa krenimo
Arduino pretvarač teksta u govor pomoću LM386 - Razgovarajući Arduino projekt - Knjižnica Talkie Arduino: 5 koraka
Arduino pretvarač teksta u govor pomoću LM386 | Razgovarajući Arduino projekt | Knjižnica Talkie Arduino: Bok dečki, u mnogim projektima od nas je potrebno da govori nešto poput sata za razgovor ili govori neke podatke pa ćemo u ovim uputama pretvoriti tekst u govor pomoću Arduina
Plamenik s USB pogonom! Ovaj projekt može izgorjeti kroz plastiku / drvo / papir (zabavan projekt također mora biti vrlo fino drvo): 3 koraka
Plamenik s USB pogonom! Ovaj projekt može izgorjeti kroz plastiku / drvo / papir (zabavan projekt također mora biti vrlo fino drvo): NEMOJTE OVAJ KORISTITI USB!!! iz svih komentara saznao sam da to može oštetiti vaše računalo. moje računalo je dobro. Koristite punjač za telefon od 600m 5v. Koristio sam ovo i radi dobro i ništa se ne može oštetiti ako upotrijebite sigurnosni utikač za zaustavljanje napajanja