image1.jpg

Cómo agregar una alarma a su proyecto de reloj Arduino

Agregar una alarma es la modificación de hardware más fácil para su proyecto de reloj Arduino. Solo necesita conectar la sonda piezoeléctrica. Con eso agregado, simplemente crea una función para reproducir la alarma. Agrega el siguiente código al final de tu boceto de Arduino:

void soundAlarm () {
 flotador AlarmFrequency = 1400; // El valor del tono de alarma en Hz
 período de flotación = (1.0 / frecuencia de alarma) * 1000000;
 bip largoDuración = 250000; // el tiempo en microsegundos (0,25 segundos)
 tiempo transcurrido largo = 0;
 while (elapsedTime <beepDuration) {
 digitalWrite (piezoPin, ALTO);
 delayMicroseconds (período / 2);
 digitalWrite (piezoPin, BAJO);
 delayMicroseconds (período / 2);
 tiempo transcurrido + = (período);
 }
 digitalWrite (piezoPin, BAJO); 
 delayMicroseconds (beepDuration);
 // Escuche a que se presione cualquiera de los botones y, si es así, apague la alarma
 int hrs = digitalRead (incrementAlarmHrsPin);
 int mins = digitalRead (incrementAlarmMinsPin);
 if (horas == ALTA || minutos == ALTA) {
 alarma = falso;
 }
}

Este código usa la fórmula estándar para obtener el período de una frecuencia; el período es la duración de un solo ciclo en un evento que se repite y es el recíproco de la frecuencia. Se especifica la frecuencia de su tono de alarma en Hertz (Hz) y la asigna a la flotación variable de alarmFrequency .

Su alarma alternará entre reproducir un tono en esta frecuencia.

image0.jpg

Dos enteros largos, beepDuration y elapsedTime , almacenan el tiempo transcurrido que se ha estado reproduciendo el tono y la duración que desea que se reproduzca. El tiempo de bucle las utiliza para limitar el tiempo de la nota se juega a 0,25 segundos (beepduration).

Con el período calculado, utilice este valor para escribir rápidamente valores ALTO y BAJO en el piezoPin . Un ciclo incluye tiempos de encendido y apagado, por lo que la cantidad de tiempo para escribir el pin HIGH y LOW es la mitad del período total. Esto se escribe en los pines digitales usando:

digitalWrite (piezoPin, ALTO);
delayMicroseconds (período / 2);
digitalWrite (piezoPin, BAJO);
delayMicroseconds (período / 2);

La función delayMicroseconds () es la menor cantidad de tiempo que puede retrasar el Arduino y es necesaria para generar un tono. Una vez que se ha reproducido el tono, las siguientes dos líneas crean silencio por la misma duración, 0.25 segundos, manteniendo presionado el piezoPin BAJO:

digitalWrite (piezoPin, BAJO); 
delayMicroseconds (beepDuration);

Lo último que debe hacer es proporcionar una forma de silenciar la alarma, si presiona cualquiera de los botones. Los enteros locales, horas y minutos almacenan el valor de los botones utilizados para programar la alarma. Si el botón de horas o el botón de minutos se pone ALTO porque se presionó el botón, la condición de alarma se establece en falsa. Las barras verticales | | indicar una evaluación lógica OR:

int hrs = digitalRead (incrementAlarmHrsPin);
 int mins = digitalRead (incrementAlarmMinsPin);
 if (horas == ALTA || minutos == ALTA) {
 alarma = falso;
 }
}

Uf. Eso fue mucho código; pero ahora el reloj está listo para ejecutar su prueba. En el código, configure la hora de la alarma para que sea algo en el próximo minuto más o menos; luego en código y envíe el código al Arduino. Asegúrese de que el interruptor deslizante esté en la posición de armado y que se muestre su asterisco. Muy pronto, deberías tener tu gratificante alarma.

LEER  Cómo agregar y probar la pantalla LCD para su proyecto de reloj Arduino

Si tiene algún problema, verifique sus conexiones. Luego, verifique su código para asegurarse de que sea correcto.

¡Bip! ¡¡Bip!! ¡¡¡Bip!!! ¡Es hora de darse una palmadita en la espalda por construir un reloj despertador completamente funcional desde cero!

image1.jpg

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *