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
}
}
}
}
