Taula de continguts:
- Pas 1: instruccions de connexió
- Pas 2:
- Pas 3:
- Pas 4:
- Pas 5:
- Pas 6:
- Pas 7:
- Pas 8:
- Pas 9: instruccions de programació
- Pas 10:
- Pas 11:
- Pas 12:
- Pas 13:
- Pas 14:
Vídeo: Projecte de despertador Arduino: 14 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
En aquest projecte, utilitzarem l’Arduino Uno per controlar una pantalla LCD per mostrar l’hora i l’hora actuals per a les quals s’estableix una alarma. Utilitzarem botons per configurar-los cada vegada.
Materials:
- Arduino Uno -
- Taula de pa:
- Jumper Wires (x13 +) -
- 10 resistències de kohm (x4) -
- Pantalla LCD:
- 7 botons:
- Piezo Speaker:
Pas 1: instruccions de connexió
1. Connecteu un cable de pont des del pin de 5 V a l'Arduino a un dels rails + de la placa de control.
Pas 2:
2. Connecteu un cable de pont des del passador GND a l'Arduino al carril - al costat del carril + que heu triat a la taula de tall.
Pas 3:
3. Connecteu la pantalla LCD a l'alimentació, a terra i al pin TX (pin 1).
Pas 4:
4. Col·loqueu 7 botons a la pissarra amb les potes sobre l’espai de la pissarra.
Pas 5:
5. Col·loqueu resistències de 10 kohm des del carril - amb el pin GND connectat als pins de la part inferior esquerra dels botons.
Pas 6:
6. Col·loqueu els cables de pont entre el passador inferior dret dels botons i el carril de 5V de la taula de suport.
Pas 7:
7. Col·loqueu els cables del pont entre els pins 6 i després 8-13 i el pin del botó al qual està connectada la resistència.
Pas 8:
8. A continuació, col·loqueu l'altaveu Piezo a la placa de connexió i connecteu el pin 7 al pin d'alimentació i, a continuació, una resistència de 100 ohm a terra.
Pas 9: instruccions de programació
1. Visió general: aquest projecte demanarà a l’usuari que estableixi l’hora actual a l’alimentació inicial de la pantalla, l’hora actual i l’hora en què s’estableix l’alarma. Els botons connectats més amunt s’utilitzaran per configurar-los cada vegada. D’esquerra a dreta, s’estableixen l’hora actual, es defineixen els minuts actuals, es defineixen l’actual AM o PM, es defineixen l’hora de l’alarma, es defineixen els minuts d’alarma, es defineixen les alarmes AM o PM. L’últim botó s’utilitza per silenciar l’alarma quan sona.
Pas 10:
2. El primer que hem de fer és inicialitzar la variable que utilitzarem.
// Inicialitzar les variables a utilitzar en hora = 0; // Hora de l'hora actual int minut = 0; //
Minut per al temps actual int segon = 0; // Segon per a l’hora actual
int hora_a = 0; int // Hora per a l’hora d’alarma
minut_a = 0; // Minut per a l'hora d'alarma
bool am_pm = false; // Marca de commutació AM / PM. Fals és AM, True és PM
bool am_pm_a = false; // Canvia la bandera AM / PM per alarma. Fals és AM, True és PM
int set_hr = 13; // Utilitzeu el pin 13 per configurar l'hora
int set_min = 12; // Utilitzeu el pin 12 per definir el minut int
set_am_pm = 11; // Utilitzeu el pin 11 per definir am / pm
int set_hr_a = 10; // Utilitzeu el pin 10 per configurar l'hora de l'alarma int set_min_a = 9; // Utilitzeu el pin 9 per definir el minut de l'alarma int set_am_pm_a = 8; // Utilitzeu el pin 8 per definir am / pm com a alarma
int speaker = 7; // Pin per utilitzar per als altaveusint quiet = 6; // Fixa per aturar l’altaveu
alarma bool = falsa; // Marca per alternar per mantenir alarmant
bool quieted = fals; // No s'ha premut la bandera que mostra silenci
int cur_time = 0; // Variable per a l’hora actual
int etime = 0; // Variable pel temps transcorregut
Pas 11:
3. A continuació, hem de configurar la pantalla LCD i dir-li a l'usuari que defineixi l'hora actual. Com que només cal fer-ho una vegada, ho farem a la rutina de configuració.
configuració nul·la () {
// Configureu la pantalla LCD
Serial.begin (9600); // Inicialitzar la sèrie a 9600 baud
Serial.write (17); // Enceneu la llum del darrere
Serial.write (24); // Activeu la pantalla, amb el cursor i sense parpellejar
Serial.write (12); // Esborreu la pantalla
Serial.write (128); // Mou el cursor a l'extrem superior esquerre // Estableix 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 (altaveu, OUTPUT);
pinMode (quiet, INPUT);
// A l'alimentació inicial, haureu de configurar l'hora actual de l'usuari. Serial.print ("Estableix l'hora actual"); endarreriment (2000);
Serial.write (12);
printTimes ();
cur_time = millis (); // Emmagatzema l'hora actual}
Pas 12:
4. A continuació, a la rutina de bucles, fem un seguiment de l’hora i llegim l’estat del botó per veure si l’usuari està configurant alguna de les vegades.
bucle buit () {
// Mantenir el temps
keepTime ();
// Comproveu si és hora d’alarmar!
if ((hour == hour_a && minute == minute_a &&! quieted) || alarm) {to (altaveu, 2000, 500); // Emet un so de 2000 Hz a l’altaveu durant 500 ms
retard (500); // Retardar 500 ms si (! Alarm) {// Si l’alarma està desactivada, activeu-la
}
}
// Si l'usuari silencia l'alarma prement el botó de silenci, deixeu d'alarmar si (alarm &&! Quieted && digitalRead (quiet)) {
alarma = fals;
quieted = cert; }
// Restableix l'alarma si (! Alarm && quieted && minute! = Minute_a) {quieted = false;
}
// Comproveu si els pins establerts són alts i, si és així, incrementeu el valor corresponent (digitalRead (set_hr) && hour <12) {
hora ++;
printTimes ();
debounce ();
}
else if (digitalRead (set_hr) && hour == 12) {hour = 1;
printTimes ();
debounce ();
}
més {}
if (digitalRead (set_min) && minute <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) {
hora_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) {
minut_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 ();
}
més {}
}
Pas 13:
5. Aquí, notareu un parell de subrutines que he creat: debounce () i printTimes (). Debounce () s’utilitza per assegurar-nos que només llegim els botons una vegada. Atès que l'Arduino escaneja milers de vegades per segon, és possible que pensi que es prem el botó diverses vegades quan només es volia llegir una vegada. Debounce () congelarà el programa fins que es deixi anar el botó. printTimes () actualitza la pantalla LCD, però, ja que es tractava de diverses ordres, les he escrit una vegada i després puc trucar a la subrutina cada vegada que canviï un valor horari.
// Mentre es prem qualsevol dels botons, mantingueu-vos en aquesta funció i retardeu 250 ms.
buid 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);
}
// Imprimeix els horaris actualitzats si hi ha canvis
void printTimes () {
Serial.write (12);
Serial.print ("Hora actual:");
Serial.write (148);
si (hora <10) {
Serial.print ("0");
}
Serial.print (hora);
Serial.print (":");
si (minut <10) {
Serial.print ("0");
}
Serial.print (minut); Serial.print (":");
si (segon <10) {
Serial.print ("0");
}
Serial.print (segon);
if (am_pm) {
Serial.print ("PM");
}
més {
Serial.print ("AM");
}
Serial.write (168);
Serial.print ("Conjunt d'alarma per a:");
Serial.write (188);
if (hora_a <10) {
Serial.print ("0");
}
Serial.print (hour_a);
Serial.print (":");
si (minut_a <10) {
Serial.print ("0");
}
Serial.print (minut_a);
if (am_pm_a) {
Serial.print ("PM");
}
més {
Serial.print ("AM");
}
}
// Incrementeu els paràmetres de temps buits
keepTime () {
etime = millis () - cur_time;
if (etime> = 1000 && second <59) {
segon ++;
cur_time = millis ();
printTimes ();
}
else if (etime> = 1000 && second == 59 && minute <59) {second = 0;
minut ++;
cur_time = millis ();
printTimes ();
}
else if (etime> = 1000 && second == 59 && minute == 59 && hour <12) {
segon = 0; minut =
0; hora ++; cur_time =
millis (); printTimes ();
}
else if (etime> = 1000 && second == 59 && minute == 59 && hour == 12) {
segon = 0; minut =
0; hora = 1; am_pm =
!am PM;
cur_time = millis ();
printTimes ();
}
més {}
}
Pas 14:
6. Això és tot!
Compileu i pengeu i ja heu acabat.
Recomanat:
Rellotge despertador intel·ligent amb Magicbit (Arduino): 10 passos
Rellotge despertador intel·ligent amb Magicbit (Arduino): aquest tutorial mostra com fer un rellotge despertador intel·ligent mitjançant pantalla OLED a la placa de desenvolupament Magicbit sense utilitzar cap mòdul RTC
Rellotge despertador Arduino amb sensor de temperatura: 5 passos
Rellotge despertador Arduino amb sensor de temperatura: Arduino és un micro controlador molt fàcil i econòmic. i varien fàcilment de controlar-lo. Llavors, què esperareu en aquest projecte … farem servir una configuració d’alarma de temps RTC tan precisa que sigui prou forta per despertar la temperatura de l’habitació si voleu veure el vídeo clic
Rellotge despertador intel·ligent: un despertador intel·ligent fabricat amb Raspberry Pi: 10 passos (amb imatges)
Rellotge despertador intel·ligent: un rellotge despertador intel·ligent fet amb Raspberry Pi: Heu volgut mai un rellotge intel·ligent? Si és així, aquesta és la solució per a vosaltres. He creat Smart Alarm Clock (Rellotge despertador intel·ligent), aquest és un rellotge que permet canviar l’hora de l’alarma segons el lloc web. Quan l’alarma s’activi, hi haurà un so (brunzidor) i 2 llums
Rellotge despertador binari Arduino de bricolatge: 14 passos (amb imatges)
Rellotge despertador binari Arduino de bricolatge: torna a ser el clàssic rellotge binari. Però aquesta vegada amb una funció addicional encara més. En aquest instructiu, us mostraré com construir un despertador binari amb Arduino que us pugui mostrar no només l'hora, sinó la data, el mes, fins i tot amb temporitzador i diversió d'alarma
Gravador USB Aquest projecte es pot cremar a través de plàstics / fusta / paper (el divertit projecte també ha de ser fusta molt fina): 3 passos
Gravador alimentat per USB. Aquest projecte pot cremar-se a través de plàstics / fusta / paper (el divertit projecte també ha de ser fusta molt fina): NO FEREU AIX US mitjançant USB !!!! He descobert que pot fer malbé el vostre ordinador per tots els comentaris. el meu ordinador està bé. Utilitzeu un carregador de telèfon de 600 ma 5 v. He utilitzat això i funciona bé i res es pot danyar si utilitzeu un endoll de seguretat per aturar l'alimentació