Sadržaj:
- Korak 1: Upute za spajanje
- Korak 2:
- Korak 3:
- Korak 4:
- Korak 5:
- Korak 6:
- Korak 7:
- Korak 8:
- Korak 9: Upute za programiranje
- Korak 10:
- Korak 11:
- Korak 12:
- Korak 13:
- Korak 14:
Video: Projekt budilnika Arduino: 14 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
U ovom projektu ćemo koristiti Arduino Uno za kontrolu LCD ekrana kako bismo prikazali trenutno vrijeme i vrijeme za koje je alarm postavljen. Svaki put ćemo koristiti dugmad za podešavanje.
Materijali:
- Arduino Uno -
- Breadboard -
- Žice kratkospojnika (x13+) -
- 10 kohm otpornika (x4) -
- LCD ekran -
- 7 dugmadi-https://vilros.com/collections/raspberry-pi-acces…
- Piezo zvučnik -
Korak 1: Upute za spajanje
1. Spojite kratkospojnik sa 5V pina na Arduinu na jednu od + šina na matičnoj ploči.
Korak 2:
2. Spojite kratkospojnik sa GND pina na Arduinu na - šinu pored + šine koju ste odabrali na ploči.
Korak 3:
3. Priključite LCD ekran na napajanje, uzemljenje i TX pin (pin 1).
Korak 4:
4. Postavite 7 dugmadi na ploču s nogama preko razmaka na ploči.
Korak 5:
5. Postavite 10 kohm otpornika sa - šine sa spojenim GND pinom na donje lijeve pinove dugmadi.
Korak 6:
6. Postavite kratkospojne žice između donjeg desnog igla dugmadi i 5V šine na vašoj ploči za izradu ploča.
Korak 7:
7. Postavite kratkospojne žice između pinova 6, zatim 8-13 i pina na dugme na koje je priključen otpornik.
Korak 8:
8. Zatim postavite svoj Piezo zvučnik na matičnu ploču i spojite iglu 7 na iglu za napajanje, a zatim otpornik od 100 ohma na masu.
Korak 9: Upute za programiranje
1. Pregled: Ovaj projekat će od korisnika tražiti da na ekranu prikaže trenutno vrijeme i vrijeme na koje je alarm postavljen. Gore spojeni tasteri će se koristiti za podešavanje svaki put. S lijeva na desno, oni postavljaju trenutni sat, trenutnu minutu, trenutni AM ili PM, postavljaju sat alarma, postavljaju minute alarma, postavljaju alarm AM ili PM. Posljednje dugme koristi se za utišavanje alarma kada se oglasi.
Korak 10:
2. Prvo što trebamo učiniti je inicijalizirati našu varijablu koju ćemo koristiti.
// Inicijalizacija varijabli 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 hour_a = 0; int // Sat za vrijeme alarma
minute_a = 0; // Minuta za vrijeme alarma
bool am_pm = false; // Zastavica za prebacivanje AM/PM. Netačno je AM, Tačno je PM
bool am_pm_a = false; // AM/PM prekidač za alarm. Netačno je AM, Tačno je PM
int set_hr = 13; // Pomoću pina 13 postavite sat
int set_min = 12; // Koristite pin 12 za postavljanje minute int
set_am_pm = 11; // Koristite pin 11 za postavljanje 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 upotrebu za speakerint quiet = 6; // Zakačite za zaustavljanje zvučnika
bool alarm = false; // Označite za uključivanje/ isključivanje radi neprekidnog alarmiranja
bool utišan = netačno; // Zastava koja pokazuje tišinu nije pritisnuta
int cur_time = 0; // Varijabla za trenutno vrijeme
int etime = 0; // Varijabla za proteklo vrijeme
Korak 11:
3. Zatim moramo postaviti LCD ekran 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 ekrana
Serial.begin (9600); // Pokreni serijski broj na 9600 bauda
Serial.write (17); // Uključite pozadinsko svjetlo
Serial.write (24); // Uključite ekran, bez kursora i bez treptanja
Serial.write (12); // Očistite ekran
Serial.write (128); // Pomaknite kursor u gornji lijevi kut // Postavite pinModes pinMode (set_hr, INPUT); 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 (tiho, INPUT);
// Na početnom napajanju, korisnik mora postaviti trenutno vrijeme. Serial.print ("Podesite trenutno vreme"); kašnjenje (2000);
Serial.write (12);
printTimes ();
cur_time = millis (); // Pohranite trenutno vrijeme}
Korak 12:
4. Zatim, u rutini petlje, pratimo vrijeme i čitamo status dugmeta da vidimo da li korisnik postavlja 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); // Emitira zvučnik od 2000 Hz na zvučnik 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 = tačno; }
// Poništite alarm ako (! Alarm && utišan && minute! = Minute_a) {quieted = false;
}
// Provjerite da li postavljeni pinovi idu visoko, 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) && minuta <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) {
hour_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 ();
}
drugo {}
}
Korak 13:
5. Ovdje ćete primijetiti nekoliko potprograma koje sam stvorio - debounce () i printTimes (). Debounce () se koristi za provjeru da li tipke čitamo samo jednom. Budući da Arduino skenira tisuće puta u sekundi, može pomisliti da je tipka pritisnuta nekoliko puta kada ste namjeravali pročitati samo jednom. Debounce () će zamrznuti program dok se dugme ne otpusti. printTimes () ažurira LCD ekran, ali budući da je to bilo nekoliko naredbi, otkucao sam ih jednom i tada mogu pozvati potprogram kad god se promijeni vrijednost vremena.
// Dok je neko od dugmadi pritisnuto, ostanite u ovoj funkciji, a zatim odgodite 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)) {} 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");
}
Serial.print (sat);
Serial.print (":");
if (minuta <10) {
Serial.print ("0");
}
Serial.print (minuta); Serial.print (":");
if (drugo <10) {
Serial.print ("0");
}
Serial.print (drugi);
if (am_pm) {
Serial.print ("PM");
}
else {
Serial.print ("AM");
}
Serial.write (168);
Serial.print ("Alarm postavljen za:");
Serial.write (188);
if (sat_a <10) {
Serial.print ("0");
}
Serial.print (hour_a);
Serial.print (":");
if (minuta_a <10) {
Serial.print ("0");
}
Serial.print (minute_a);
if (am_pm_a) {
Serial.print ("PM");
}
else {
Serial.print ("AM");
}
}
// Povećanje vremenskih parametara void
keepTime () {
etime = millis () - cur_time;
if (etime> = 1000 && second <59) {
second ++;
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) {
druga = 0; minuta =
0; sat ++; cur_time =
millis (); printTimes ();
}
inace if (etime> = 1000 && second == 59 && minute == 59 && hour == 12) {
druga = 0; minuta =
0; sat = 1; am_pm =
! am_pm;
cur_time = millis ();
printTimes ();
}
drugo {}
}
Korak 14:
6. to je to!
Sastavite i prenesite i sve ste završili!
Preporučuje se:
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. Ovaj partikularni tip je 2000 mAh nokia BLY4W. Međutim, korištene tehnike uobičajene su za većinu baterija telefona. Ova baterija je iznenada umrla pokazujući 0 V
Arduino-Tamagotchi projekt (Ja sam Tamagotchi): 5 koraka (sa slikama)
Arduino-Tamagotchi projekt (I Am the Tamagotchi): Bilo mi je dosadno u karanteni i odlučio sam napraviti Arduino Tamagotchi. Budući da mrzim mnoge životinje, sam biram Tamagotchi. Prvo svoju konzolu gradim na ploči. Ožičenje je vrlo jednostavno. Postoje samo tri dugmeta, zvučni signal i
Arduino DHT22 projekt senzora i vlage tla s izbornikom: 4 koraka
Arduino DHT22 projekt senzora i vlage tla s izbornikom: Pozdrav momci Danas vam predstavljam svoj drugi projekt o instrukcijama. Ovaj projekt predstavlja mješavinu mog prvog projekta u kojem sam koristio senzor vlage tla i senzor DHT22 koji se koristi za mjerenje temperature i vlažnosti . Ovaj projekat je
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 bila previše popularna igra unatrag nekoliko godina i mnogi ljudi su je stvorili na svoj način pa sam i ja stvorio svoju verziju flappy bird sa Arduinom i jeftinim 2.4" TFT " Zaslon osjetljiv na dodir SPFD5408, pa počnimo
Burner sa USB pogonom! Ovaj projekt može izgorjeti kroz plastiku / drvo / papir (zabavan projekt također mora biti vrlo fino drvo): 3 koraka
Gorionik sa USB pogonom! Ovaj projekt može izgorjeti kroz plastiku / drvo / papir (zabavan projekt također mora biti od vrlo finog drva): NEMOJTE OVO KORISTITI KORIŠĆENJE USB -a !!!! iz svih komentara saznao sam da može oštetiti vaš računar. moj kompjuter je u redu. 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