Tabla de contenido:
- Paso 1: Instrucciones de conexión
- Paso 2:
- Paso 3:
- Paso 4:
- Paso 5:
- Paso 6:
- Paso 7:
- Paso 8:
- Paso 9: instrucciones de programación
- Paso 10:
- Paso 11:
- Paso 12:
- Paso 13:
- Paso 14:
Video: Proyecto Arduino Alarm Clock: 14 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
En este proyecto, usaremos el Arduino Uno para controlar una pantalla LCD para mostrar la hora actual y la hora a la que está configurada una alarma. Usaremos botones para configurar cada vez.
Materiales:
- Arduino Uno -
- Protoboard:
- Cables de puente (x13 +) -
- Resistencias de 10 kohm (x4) -
- Pantalla LCD -
- 7 botones -
- Altavoz piezoeléctrico:
Paso 1: Instrucciones de conexión
1. Conecte un cable de puente desde el pin de 5V en el Arduino a uno de los rieles + en la placa de pruebas.
Paso 2:
2. Conecte un cable de puente desde el pin GND en el Arduino al riel - al lado del riel + que eligió en la placa de pruebas.
Paso 3:
3. Conecte la pantalla LCD a la alimentación, tierra y el pin TX (pin 1).
Paso 4:
4. Coloque 7 botones en la placa de pruebas con las patas a través del espacio en la placa de pruebas.
Paso 5:
5. Coloque resistencias de 10 kohm del riel - con el pin GND conectado a los pines inferiores izquierdos de los botones.
Paso 6:
6. Coloque cables de puente entre la clavija inferior derecha de los botones y el riel de 5V en su tablero.
Paso 7:
7. Coloque los cables de puente entre las clavijas 6, luego 8-13 y la clavija del botón al que está conectada la resistencia.
Paso 8:
8. A continuación, coloque su altavoz piezoeléctrico en la placa de pruebas y conecte el pin 7 al pin de alimentación, luego una resistencia de 100 ohmios a tierra.
Paso 9: instrucciones de programación
1. Descripción general: Este proyecto le pedirá al usuario que configure la hora actual en el encendido inicial en la pantalla, la hora actual y la hora para la que está configurada la alarma. Los botones conectados arriba se usarán para configurar cada vez. De izquierda a derecha, se configuran la hora actual, configuran los minutos actuales, configuran AM o PM actuales, configuran la hora de la alarma, configuran los minutos de la alarma, configuran la alarma AM o PM. El último botón se usa para silenciar la alarma cuando suena.
Paso 10:
2. Lo primero que debemos hacer es inicializar nuestra variable que vamos a usar.
// Inicializar las variables que se utilizarán en la hora = 0; // Hora para la hora actual int minuto = 0; //
Minuto para la hora actual int segundo = 0; // Segundo para la hora actual
int hora_a = 0; int // Hora para la hora de la alarma
minuto_a = 0; // Minuto para la hora de la alarma
bool am_pm = falso; // Bandera de alternancia AM / PM. Falso es AM, verdadero es PM
bool am_pm_a = falso; // Bandera de alternancia AM / PM para alarma. Falso es AM, verdadero es PM
int set_hr = 13; // Use el pin 13 para configurar la hora
int set_min = 12; // Use el pin 12 para configurar el minuto int
set_am_pm = 11; // Use el pin 11 para configurar am / pm
int set_hr_a = 10; // Use el pin 10 para configurar la hora de la alarma int set_min_a = 9; // Use el pin 9 para establecer los minutos de la alarma int set_am_pm_a = 8; // Use el pin 8 para configurar am / pm para alarma
int altavoz = 7; // Pin a utilizar para speakerint quiet = 6; // Pin para detener el altavoz
bool alarma = falso; // Marcar para alternar para seguir siendo alarmante
bool silencioso = falso; // La bandera que muestra silencio no ha sido presionada
int cur_time = 0; // Variable para la hora actual
int etime = 0; // Variable por tiempo transcurrido
Paso 11:
3. A continuación, debemos configurar la pantalla LCD y decirle al usuario que configure la hora actual. Dado que esto solo debe hacerse una vez, lo haremos en la rutina de configuración.
configuración vacía () {
// Configurar la pantalla LCD
Serial.begin (9600); // Inicializar serial a 9600 baudios
Serial.write (17); // Enciende la luz de fondo
Serial.write (24); // Enciende la pantalla, con cursor y sin parpadeo
Serial.write (12); // Limpiar la pantalla
Serial.write (128); // Mover el cursor a la esquina superior izquierda // Establecer pinModes pinMode (set_hr, APORTE); pinMode (set_min, ENTRADA);
pinMode (set_am_pm, ENTRADA);
pinMode (set_hr_a, ENTRADA);
pinMode (set_min_a, ENTRADA);
pinMode (set_am_pm_a, ENTRADA);
pinMode (altavoz, SALIDA);
pinMode (silencioso, ENTRADA);
// En el encendido inicial, haga que el usuario establezca la hora actual. Serial.print ("Establecer la hora actual"); retraso (2000);
Serial.write (12);
printTimes ();
cur_time = millis (); // Almacenar la hora actual}
Paso 12:
4. Luego, en la rutina de bucle, hacemos un seguimiento del tiempo y leemos el estado del botón para ver si el usuario está configurando alguno de los tiempos.
bucle vacío () {
// Mantén el tiempo
Mantén el tiempo();
// ¡Comprueba si es hora de alarmar!
if ((hora == hora_a && minuto == minuto_a &&! silenciado) || alarma) {tono (altavoz, 2000, 500); // Emite un sonido de 2000 Hz al altavoz durante 500 ms
retraso (500); // Retraso 500 ms si (! Alarma) {// Si la alarma está apagada, enciéndala
}
}
// Si el usuario silencia la alarma presionando el botón silencioso, deje de alarmar si (alarma &&! Silenciado && digitalRead (silencioso)) {
alarma = falso;
tranquilo = verdadero; }
// Reinicia la alarma si (! Alarma && silenciada && minuto! = Minuto_a) {silenciada = falso;
}
// Verifique si los pines establecidos son altos, y si es así, incremente el valor correspondiente si (digitalRead (set_hr) && hour <12) {
hora ++;
printTimes ();
debounce ();
}
else if (digitalRead (set_hr) && hour == 12) {hour = 1;
printTimes ();
debounce ();
}
demás{}
if (digitalRead (set_min) && minuto <59) {
minuto ++; printTimes ();
debounce ();
}
si no (digitalRead (set_min) && minuto == 59) {minuto = 0;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_am_pm) && am_pm) {
am_pm = falso;
printTimes ();
debounce ();
}
si no (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
debounce ();
}
else {} if (digitalRead (set_hr_a) && hour_a <12) {
hour_a ++;
printTimes ();
debounce ();
}
si no (digitalRead (set_hr_a) && hour_a == 12) {hour_a = 1;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_min_a) && minute_a <59) {
minuto_a ++;
printTimes ();
debounce ();
}
si no (digitalRead (set_min) && minuto_a == 59) {minuto_a = 0;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_am_pm_a) && am_pm_a) {
am_pm_a = falso;
printTimes ();
debounce ();
}
else if (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
debounce ();
}
demás{}
}
Paso 13:
5. Aquí, notará un par de subrutinas que creé: debounce () y printTimes (). Debounce () se usa para asegurarnos de que solo leemos los botones una vez. Dado que Arduino escanea miles de veces por segundo, puede pensar que el botón se presionó varias veces cuando solo tenía la intención de que se lea una vez. Debounce () congelará el programa hasta que se suelte el botón. printTimes () actualiza la pantalla LCD, pero como eran varios comandos, los escribí una vez y luego puedo llamar a la subrutina cada vez que cambia un valor de tiempo.
// Mientras se presiona cualquiera de los botones, permanezca en esta función y luego demore 250 ms.
rebote vacío () {
while (digitalRead (set_hr) || digitalRead (set_min) ||
digitalRead (set_am_pm) || digitalRead (set_hr_a) ||
digitalRead (set_min_a) || digitalRead (set_am_pm_a)) {} retraso (250);
}
// Imprime los tiempos actualizados si hay algún cambio
void printTimes () {
Serial.write (12);
Serial.print ("Hora actual:");
Serial.write (148);
if (hora <10) {
Serial.print ("0");
}
Serial.print (hora);
Serial.print (":");
if (minuto <10) {
Serial.print ("0");
}
Serial.print (minuto); Serial.print (":");
si (segundo <10) {
Serial.print ("0");
}
Serial.print (segundo);
if (am_pm) {
Serial.print ("PM");
}
demás{
Serial.print ("AM");
}
Serial.write (168);
Serial.print ("Alarma configurada para:");
Serial.write (188);
si (hora_a <10) {
Serial.print ("0");
}
Serial.print (hora_a);
Serial.print (":");
si (minuto_a <10) {
Serial.print ("0");
}
Serial.print (minuto_a);
if (am_pm_a) {
Serial.print ("PM");
}
demás{
Serial.print ("AM");
}
}
// Incrementar los parámetros de tiempo void
Mantén el tiempo(){
etime = millis () - cur_time;
if (etime> = 1000 && second <59) {
segundo ++;
cur_time = millis ();
printTimes ();
}
else if (etime> = 1000 && second == 59 && minute <59) {second = 0;
minuto ++;
cur_time = millis ();
printTimes ();
}
else if (etime> = 1000 && second == 59 && minute == 59 && hour <12) {
segundo = 0; minuto =
0; hora ++; cur_time =
millis (); printTimes ();
}
else if (etime> = 1000 && second == 59 && minute == 59 && hour == 12) {
segundo = 0; minuto =
0; hora = 1; am_pm =
!am PM;
cur_time = millis ();
printTimes ();
}
demás{}
}
Paso 14:
6. ¡Eso es todo!
¡Compila y carga y listo!
Recomendado:
PROYECTO IEEE WORD CLOCK: 12 pasos (con imágenes)
PROYECTO IEEE WORD CLOCK: Este es un proyecto para el club IEEE de UNO, es una forma única de representar qué hora es. El Word Clock indica la hora y con la tira RGB puedes tener el reloj en cualquier color que elijas. Usando las capacidades WiFi del ESP32, el clo
Bubble Alarm Clock hace que despertarse sea divertido (ish): 7 pasos (con imágenes)
Bubble Alarm Clock hace que despertarse sea divertido (más o menos): Despertarse con un zumbido de despertador apesta. Soy una de esas personas a las que no les gusta despertarse antes de que salga el sol (o han estado muchas horas afuera). Entonces, ¿qué mejor manera de hacer que el despertar sea divertido que tener una fiesta de burbujas en la cama? Usando un arduino y un
Slap Alarm Clock con Arduino: 13 pasos (con imágenes)
Slap Alarm Clock con Arduino: No sé ustedes, pero una simple alarma no es capaz de despertarme. Necesito luz, sonido e incluso un bofetón suave para despertar. Ningún despertador me atrae, así que decidí hacerme uno, digno de despertarme. Aunque parezca el despertador yo
Conversor de texto a voz de Arduino con LM386 - Proyecto Arduino parlante - Biblioteca Talkie Arduino: 5 pasos
Conversor de texto a voz de Arduino con LM386 | Proyecto Arduino parlante | Biblioteca Talkie Arduino: Hola chicos, en muchos de los proyectos requerimos que arduino hable algo como un reloj parlante o cuente algunos datos, por lo que en este instructables convertiremos texto en voz usando Arduino
¡Quemador alimentado por USB! Este proyecto se puede quemar a través de plásticos / madera / papel (el proyecto divertido también tiene que ser de madera muy fina): 3 pasos
¡Quemador alimentado por USB! Este proyecto se puede quemar a través de plásticos / madera / papel (el proyecto divertido también tiene que ser de madera muy fina): ¡NO HAGA ESTO USANDO USB! Descubrí que puede dañar tu computadora por todos los comentarios. mi computadora está bien aunque. Utilice un cargador de teléfono de 600ma 5v. Usé esto y funciona bien y nada se puede dañar si usa un enchufe de seguridad para detener la energía