Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

TM1637 Reloj digital con configuración de hora y funcionalidad de alarma

Componentes y suministros

Arduino Nano R3
× 1
Pantalla de 4 dígitos TM1637
× 1
Módulo DS1302 RTC
× 1
SparkFun LilyPad LED azul (5 piezas)
× 1
Buzzer
× 1

Acerca de este proyecto

Este es un prototipo del mecanismo de configuración de la hora y la alarma que planeo usar en mis próximos proyectos de reloj digital. Espero que lo encuentre útil. Si piensa en alguna mejora, hágamelo saber. Estaría más que feliz de verlos y potencialmente incorporarlos en mi código.

Puedes ver el tutorial completo en

Si le gusta este contenido y quiere ayudarme a crear videos similares, vaya a mi página web de Patreon

https://www.patreon.com/MariosIdeas

O

https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7PD67JWZ9S3EJ&source=url

Código

  • Visualización de la hora del módulo RTC más la configuración de la hora y la funcionalidad de configuración de la alarma
Visualización de la hora del módulo RTC más la configuración de la hora y la funcionalidad de configuración de la alarma Arduino
Este código lee la hora actual del módulo RTC. Luego, también permite actualizar la hora actual y también configurar la hora de la alarma.
Las acciones de configuración se realizan mediante 3 botones.
 // Mario's Ideas // TM1637 Reloj digital con función de configuración y alarma # incluye  #include  #include  //// Declaración del módulo RTC // PINS CLK, DAT, RSTvirtuabotixRTC myRTC (A1, A2, A3); // Variables para almacenar valores anteriores leídos módulo RTC en minutos; int horas; // Variables para almacenar la hora a la que debe sonar la alarma int Alarm_minutes =05; int Alarm_hours =18; uint8_t Blank [] ={0x0}; int POSITION =0; // Tabla para almacenar 4 dígitos, utilizada en el procedimiento de configuración de tiempo y alarmaint dígitos [3]; int intervalo =0; #define Alarma 9 // Botón para activar o desactivar el modo de alarma # definir Buzer 13 # definir Led 8 // Estado booleano Alarm_set =false; boolean Alarm_in_progress =false; boolean Setup_on =false; // pines de conexión de pantalla de 4 dígitos (pines digitales) #define CLK 4 # define DIO 5 // Declaración de visualización de 4 dígitos TM1637Display clock (CLK, DIO); void setup () {attachInterrupt (digitalPinToInterrupt (2), Press_A_Button, RISING); attachInterrupt (digitalPinToInterrupt (3), Press_B_Button, RISING); pinMode (alarma, ENTRADA); pinMode (Buzer, SALIDA); pinMode (Led, SALIDA); digitalWrite (Buzer, BAJO); clock.setBrightness (0x0f); Serial.begin (9600);} void Press_A_Button () {if (intervalo> 3) {if (Setup_on ==false) {Setup_on =true; if (Alarm_set ==true) {digits [0] =(int) Alarm_hours / 10; dígitos [1] =Alarma_horas - ((int) Alarma_horas / 10) * 10; dígitos [2] =(int) Minutos de alarma / 10; dígitos [3] =Minutos de alarma - ((int) Minutos de alarma / 10) * 10; } else {dígitos [0] =(int) myRTC.hours / 10; dígitos [1] =myRTC.horas - ((int) myRTC.horas / 10) * 10; dígitos [2] =(int) myRTC.minutes / 10; dígitos [3] =myRTC.minutes - ((int) myRTC.minutes / 10) * 10; }} else {POSICIÓN ++; if (POSITION ==4) {if (Alarm_set ==true) {Alarm_minutes =dígitos [3] + dígitos [2] * 10; Alarma_horas =dígitos [1] + dígitos [0] * 10; } else {myRTC.setDS1302Time (0, dígitos [3] + dígitos [2] * 10, dígitos [1] + dígitos [0] * 10, myRTC.dayofweek, myRTC.dayofmonth, myRTC.month, myRTC.year); clock.showNumberDec (dígitos [0], falso, 1,0); clock.showNumberDec (dígitos [1], falso, 1,1); clock.showNumberDec (dígitos [2], falso, 1,2); clock.showNumberDec (dígitos [3], falso, 1,3); } POSICIÓN =0; Setup_on =falso; }}} intervalo =0;} void Press_B_Button () {if (intervalo> 3) {if (Setup_on) {dígitos [POSICIÓN] =dígitos [POSICIÓN] +1; if (POSICIÓN ==0 y dígitos [POSICIÓN] ==3) dígitos [POSICIÓN] =0; if (POSICIÓN! =0 y dígitos [POSICIÓN] ==10) dígitos [POSICIÓN] =0; intervalo =0; }} intervalo =0;} bucle vacío () {if (digitalRead (alarma) ==HIGH y Alarm_set ==false) {if (intervalo> 30) {digitalWrite (Led, HIGH); Alarm_set =true; retraso (300); }} else {if (digitalRead (Alarm) ==HIGH y Alarm_set ==true) {if (intervalo> 30) {Alarm_set =false; Alarm_in_progress =falso; digitalWrite (Led, BAJO); retraso (300); }}} myRTC.updateTime (); if (Setup_on ==true) {clock.showNumberDec (dígitos [0], falso, 1,0); clock.showNumberDec (dígitos [1], falso, 1,1); clock.showNumberDec (dígitos [2], falso, 1,2); clock.showNumberDec (dígitos [3], falso, 1,3); retraso (200); clock.setSegments (En blanco, 1, POSICIÓN); retraso (200); clock.showNumberDec (dígitos [0], falso, 1,0); clock.showNumberDec (dígitos [1], falso, 1,1); clock.showNumberDec (dígitos [2], falso, 1,2); clock.showNumberDec (dígitos [3], falso, 1,3); } else {if (myRTC.minutes ==Alarm_minutes y myRTC.hours ==Alarm_hours y Alarm_set ==true y Setup_on ==false) {Alarm_in_progress =true; } if (Alarm_in_progress) {digitalWrite (Buzer, HIGH); retraso (1000); digitalWrite (Buzer, BAJO); retraso (1000); } if (myRTC.minutes! =minutes) {clock.showNumberDecEx ((int) myRTC.hours / 10 * 1000 + (myRTC.hours - ((int) myRTC.hours / 10) * 10) * 100 + (int) myRTC.minutes / 10 * 10 + myRTC.minutes - ((int) myRTC.minutes / 10) * 10, (0x80>> 1), verdadero); minutes =myRTC.minutes; horas =myRTC.horas; }} si (intervalo <200) intervalo ++;} 

Esquemas


Proceso de manufactura

  1. Tipos de sensores analógicos y digitales con aplicaciones
  2. Alarma de agua frambuesa pi 2 con t cobbler plus
  3. Creación de robots con Raspberry Pi y Python
  4. Explorando la transformación digital con Fiix e IDC
  5. Ahorro de tiempo y dinero con la supervisión de condiciones
  6. 8 formas de reducir los costos de mantenimiento y aumentar los ingresos con el software de mantenimiento
  7. Portenta y sensor de termopar (con MAX6675)
  8. Acelerando la transformación digital con IoT Data, gracias a Cisco e IBM
  9. Word Clock con resolución de tiempo mínima en palabras
  10. Reloj despertador simple con DS1302 RTC
  11. La funcionalidad y el avance del rodamiento