Advertisement
flavio_uefs

Display 7 segmentos - 8 digitos MAX7219

Mar 17th, 2017
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.57 KB | None | 0 0
  1. // Programa : Display 7 segmentos - 8 digitos MAX7219
  2. // Autor : Arduino e Cia
  3.  
  4. // Carrega a biblioteca LedControl
  5. #include "LedControl.h"
  6.  
  7. // Definicoes dos pinos e quantidade de modulos no circuito
  8. LedControl lc=LedControl(7,6,5,1);
  9.  
  10. void setup()
  11. {
  12.   // Inicializa o modulo
  13.   lc.shutdown(0,false);
  14.   // Ajuste do brilho do display
  15.   lc.setIntensity(0,3);
  16.   // Apaga o display
  17.   lc.clearDisplay(0);
  18. }
  19.  
  20. void loop()
  21. {
  22.   // Envia Arduino e Cia para o display
  23.   writeArduinoOn7Segment();
  24.   // Contagem regressiva
  25.   contagem_regressiva();
  26.   // Mostra numeros no lado esquerdo e direito do display
  27.   numeros_separados();
  28.   // Inicia contador de 0 a 1 milhao
  29.   for (long i=0; i < 1000000; i++)
  30.   {
  31.     printNumber(i);
  32.   }
  33.   delay(500);
  34. }
  35. void printNumber(long v)
  36. {
  37.   // Variavel valor digitos
  38.   int digito1;
  39.   int digito2;
  40.   int digito3;
  41.   int digito4;
  42.   int digito5;
  43.   int digito6;
  44.   int digito7;
  45.   int digito8;
  46.  
  47.   // Calcula o valor de cada digito
  48.   digito1 = v%10;
  49.   digito2 = (v / 10) % 10;
  50.   digito3 = (v/ 100) % 10;  
  51.   digito4 = (v/1000) %10;
  52.   digito5 = (v/10000) %10;
  53.   digito6 = (v/100000) %10;
  54.   digito7 = (v/1000000) %10;
  55.   digito8 = (v/10000000) %10;
  56.  
  57.   // Mostra o valor de cada digito no display
  58.   lc.setDigit(0,7,(byte)digito8,false);
  59.   lc.setDigit(0,6,(byte)digito7,false);
  60.   lc.setDigit(0,5,(byte)digito6,false);
  61.   lc.setDigit(0,4,(byte)digito5,false);
  62.   lc.setDigit(0,3,(byte)digito4,false);
  63.   lc.setDigit(0,2,(byte)digito3,false);
  64.   lc.setDigit(0,1,(byte)digito2,false);
  65.   lc.setDigit(0,0,(byte)digito1,false);
  66.   delay(00);
  67. }
  68.  
  69. void writeArduinoOn7Segment()
  70. {
  71.   // Escreve Arduino e Cia no display
  72.   for (int i =0; i<21; i++)
  73.   {
  74.     lc.setChar(0,i,'a',false);
  75.     lc.setRow(0,i-1,0x05);
  76.     lc.setChar(0,i-2,'d',false);
  77.     lc.setRow(0,i-3,0x1c);
  78.     lc.setRow(0,i-4,B00010000);
  79.     lc.setRow(0,i-5,0x15);
  80.     lc.setRow(0,i-6,0x1D);
  81.     lc.setChar(0,i-7,' ',false);
  82.     lc.setChar(0,i-8,'e',false);
  83.     lc.setChar(0,i-9,' ',false);
  84.     lc.setRow(0,i-10,B1001110);    
  85.     lc.setRow(0,i-11,B0010000);  
  86.     lc.setChar(0,i-12,'a',false);    
  87.     lc.setChar(0,i-13,' ',false);
  88.     delay(300);
  89.   }
  90. }
  91.  
  92. void contagem_regressiva()
  93. {
  94.   for (int x = 8; x >-1;x--)
  95.   {
  96.     lc.setDigit(0,x,x+1, false);
  97.     lc.setChar(0,x+1,' ',false);
  98.     delay(300);
  99.   }
  100.   lc.clearDisplay(0);
  101. }
  102.  
  103. void numeros_separados()
  104. {
  105.   for (int i =0 ; i<10 ; i++)
  106.   {
  107.      lc.setDigit(0,0,i,false);
  108.      lc.setDigit(0,1,i,false);
  109.      lc.setDigit(0,6,i,false);
  110.      lc.setDigit(0,7,i,false);
  111.      delay(300);
  112.   }
  113.   lc.clearDisplay(0);
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement