Temporizador de cuenta regresiva Arduino con la pantalla MAX7219 de 8 bits Deja un comentario

VISIÓN DE CONJUNTO

En un tutorial previo, creamos un temporizador de cuenta regresiva con una pantalla de 8 bits.

Lamentablemente, la pantalla que usamos al crear el tutorial es cada vez más difícil de encontrar.

Así que creamos un tutorial similar utilizando esta pantalla de 8 bits más fácil de encontrar que está utilizando el MAX7219.

CONEXIONES

Aquí están las conexiones necesarias para este tutorial:

Los pines GND de UNO están conectados al pin negativo (-) del zumbador y al pin GND de la pantalla

El pin de 5V de UNO está conectado al pin VCC de la pantalla

Los pines 5-6-7 de UNO están conectados al pin CS-CLK-DIN de la pantalla

El pin 8 de UNO está conectado al pin positivo (+) del zumbador

/ * Versión CountDown Timer 2 usando Max7219

 Creado por Yvan / https: // Inteligente - Bits . com
 Este código es  en el dominio público ... Puede: copiarlo, usarlo, modificarlo, compartirlo o simplemente ignóralo ! Gracias ! 

* / 

#define Max7219DIN 7 // Pin 7 conectado a DIN (DataIN) 
#define Max7219CLK 6 // Pin 6 conectado a CLK 
#define Max7219CS 5 // Pin 5 conectado a CS 

#define Buzzer 8 // Pin 8 conectado a Buzzer + pin positivo 
En t BuzzTrigger = 0 ; // Variable para almacenar el valor de activación del zumbador #include "LedControl.h" // Biblioteca LedControl creada por Eberhard Fahle en http://playground.arduino.cc/Main/LedControl LedControl lc = LedControl (Max7219DIN, Max7219CLK, Max7219CS, 1 ); // El último número representa la cantidad de módulos Max7219 conectados largo  En t número de cuenta = 24001000 ; // Valor de inicio del temporizador de cuenta regresiva HH: MM: SSSS // Variables para almacenar números individuales En t firstnum = 0 ; En t segundo momento = 0 ; En t tercero = 0 ; En t fournum = 0 ; En t fivenum = 0 ; En t sixnum = 0 ; En t sevennum = 0 ; En t eightnum = 0 ;

 void setup () {
   lc . apagar( 0 ,falso); // Despierta la pantalla
   lc . setIntensity ( 0 , 7 ); // Establecer brillo 0 - 15 lc . clearDisplay ( 0 ); // Pantalla clara
   pinMode (Zumbador, SALIDA);
   digitalWrite (Zumbador, BAJO); // Zumbador apagado al inicio
  
  
 }

 void loop () { para (countnumber; countnumber ! =  - 1 ;  número de cuenta - )
   {
       String mystring = Cadena (número de cuenta); // Transform Counter Int to String para manipulación // Convertir número a un valor de tiempo para ( En t z =  0 ;  z  6 ;  z ++ ) { Si (mystring . subcadena (z) ==  "999999" ) {
           número de cuenta = (número de cuenta -  400000 );
         } Si (mystring . subcadena (z) ==  "9999" ) {
           número de cuenta = (número de cuenta -  4000 );
         }
       } // Mostrar el número en la pantalla dependiendo del número de dígitos restantes Si (número de cuenta >  9999999 ) {
     firstnum = ((número de cuenta / 10000000 ) % 10 );
     segundo momento = número de cuenta / 1000000 % 10 ;
     tercero = número de cuenta / 100000 % 10 ;
     fournum = número de cuenta / 10000 % 10 ;
     fivenum = número de cuenta / 1000 % 10 ;
     sixnum = número de cuenta / 100 % 10 ;
     sevennum = número de cuenta / 10 % 10 ;
     eightnum = número de cuenta % 10 ;

     lc . setDigit ( 0 , 7 , primer nombre, falso);
     lc . setDigit ( 0 , 6 , segundo nombre, falso);
     lc . setDigit ( 0 , 5 , tercer nombre, falso);
     lc . setDigit ( 0 , 4 , fournum, falso);
     lc . setDigit ( 0 , 3 , fivenum, falso);
     lc . setDigit ( 0 , 2 , sixnum, falso);
     lc . setDigit ( 0 , 1 , sevennum, falso);
     lc . setDigit ( 0 , 0 , ocho en punto, falso);
   } más { Si (número de cuenta >  999999 ) { // firstnum = ((número de cuenta / 10000000 ) % 10 );
         segundo momento = número de cuenta / 1000000 % 10 ;
         tercero = número de cuenta / 100000 % 10 ;
         fournum = número de cuenta / 10000 % 10 ;
         fivenum = número de cuenta / 1000 % 10 ;
         sixnum = número de cuenta / 100 % 10 ;
         sevennum = número de cuenta / 10 % 10 ;
         eightnum = número de cuenta % 10 ;

         lc . setChar ( 0 , 7 , '-' ,falso);
         lc . setDigit ( 0 , 6 , segundo nombre, falso);
         lc . setDigit ( 0 , 5 , tercer nombre, falso);
         lc . setDigit ( 0 , 4 , fournum, falso);
         lc . setDigit ( 0 , 3 , fivenum, falso);
         lc . setDigit ( 0 , 2 , sixnum, falso);
         lc . setDigit ( 0 , 1 , sevennum, falso);
         lc . setDigit ( 0 , 0 , ocho en punto, falso);
       } más { Si (número de cuenta >  99999 ) { // firstnum = ((número de cuenta / 10000000 ) % 10 ); // segundo momento = número de cuenta / 1000000 % 10 ;
             tercero = número de cuenta / 100000 % 10 ;
             fournum = número de cuenta / 10000 % 10 ;
             fivenum = número de cuenta / 1000 % 10 ;
             sixnum = número de cuenta / 100 % 10 ;
             sevennum = número de cuenta / 10 % 10 ;
             eightnum = número de cuenta % 10 ;

             lc . setChar ( 0 , 7 , '-' ,falso);
             lc . setChar ( 0 , 6 , '-' ,falso);
             lc . setDigit ( 0 , 5 , tercer nombre, falso);
             lc . setDigit ( 0 , 4 , fournum, falso);
             lc . setDigit ( 0 , 3 , fivenum, falso);
             lc . setDigit ( 0 , 2 , sixnum, falso);
             lc . setDigit ( 0 , 1 , sevennum, falso);
             lc . setDigit ( 0 , 0 , ocho en punto, falso);
           } más { Si (número de cuenta >  9999 ) { // firstnum = ((número de cuenta / 10000000 ) % 10 ); // segundo momento = número de cuenta / 1000000 % 10 ; // tercero = número de cuenta / 100000 % 10 ;
                 fournum = número de cuenta / 10000 % 10 ;
                 fivenum = número de cuenta / 1000 % 10 ;
                 sixnum = número de cuenta / 100 % 10 ;
                 sevennum = número de cuenta / 10 % 10 ;
                 eightnum = número de cuenta % 10 ;

                 lc . setChar ( 0 , 7 , '-' ,falso);
                 lc . setChar ( 0 , 6 , '-' ,falso);
                 lc . setChar ( 0 , 5 , '-' ,falso);
                 lc . setDigit ( 0 , 4 , fournum, falso);
                 lc . setDigit ( 0 , 3 , fivenum, falso);
                 lc . setDigit ( 0 , 2 , sixnum, falso);
                 lc . setDigit ( 0 , 1 , sevennum, falso);
                 lc . setDigit ( 0 , 0 , ocho en punto, falso);
               } más { Si (número de cuenta >  999 ) { // firstnum = ((número de cuenta / 10000000 ) % 10 ); // segundo momento = número de cuenta / 1000000 % 10 ; // tercero = número de cuenta / 100000 % 10 ; // fournum = número de cuenta / 10000 % 10 ;
                   fivenum = número de cuenta / 1000 % 10 ;
                   sixnum = número de cuenta / 100 % 10 ;
                   sevennum = número de cuenta / 10 % 10 ;
                   eightnum = número de cuenta % 10 ;
  
                   lc . setChar ( 0 , 7 , '-' ,falso);
                   lc . setChar ( 0 , 6 , '-' ,falso);
                   lc . setChar ( 0 , 5 , '-' ,falso);
                   lc . setChar ( 0 , 4 , '-' ,falso);
                   lc . setDigit ( 0 , 3 , fivenum, falso);
                   lc . setDigit ( 0 , 2 , sixnum, falso);
                   lc . setDigit ( 0 , 1 , sevennum, falso);
                   lc . setDigit ( 0 , 0 , ocho en punto, falso);
                 } más { // firstnum = ((número de cuenta / 10000000 ) % 10 ); // segundo momento = número de cuenta / 1000000 % 10 ; // tercero = número de cuenta / 100000 % 10 ; // fournum = número de cuenta / 10000 % 10 ; // fivenum = número de cuenta / 1000 % 10 ;
                   sixnum = número de cuenta / 100 % 10 ;
                   sevennum = número de cuenta / 10 % 10 ;
                   eightnum = número de cuenta % 10 ;
  
                   lc . setChar ( 0 , 7 , '-' ,falso);
                   lc . setChar ( 0 , 6 , '-' ,falso);
                   lc . setChar ( 0 , 5 , '-' ,falso);
                   lc . setChar ( 0 , 4 , '-' ,falso);
                   lc . setChar ( 0 , 3 , '-' ,falso);
                   lc . setDigit ( 0 , 2 , sixnum, falso);
                   lc . setDigit ( 0 , 1 , sevennum, falso);
                   lc . setDigit ( 0 , 0 , ocho en punto, falso);
              }
               
             }
           }
         }
       } // Si un segundo como ido por el zumbador de sonido Si (BuzzTrigger ==  99 ) {
           digitalWrite (Zumbador, ALTO); // Zumbador encendido
           retraso ( 9 ); // Retrasar 2 Sra
           digitalWrite (Zumbador, BAJO); // Zumbador apagado
       BuzzTrigger =  0 ; // Desencadenar para sonido de cuenta regresiva
       } más {
         retraso ( 9 );
         BuzzTrigger = BuzzTrigger +  1 ;
       } // Si cuenta regresiva con alarma de sonido cero y pantalla flash Si (número de cuenta ==  0 ) { para ( En t y =  0 ;  y  8 ;  y ++ ) {
           digitalWrite (Zumbador, ALTO); // Zumbador encendido para ( En t X =  0 ;  X  8 ;  X ++ )
           {
             lc . setDigit ( 0 ,X, 0 ,falso);
           }
           retraso ( 100 ); // Retrasar 1 Sra
           digitalWrite (Zumbador, BAJO); // Zumbador apagado para ( En t X =  0 ;  X  8 ;  X ++ )
           {
             lc . setChar ( 0 ,X, '-' ,falso);
           }
           retraso ( 300 ); // retrasar 1 Sra
       }
       }
     }
 }

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?