/******************************************************************************* * * Projeto 73 - Dado eletrônico com módulo Max7219 * Autor: Angelo Luis Ferreira * Data: 07/01/2020 (dd/mm/AA) * http://squids.com.br/arduino * *******************************************************************************/ #include "LedControlMS.h" /* Criando o objeto lc ***** Definindo os pinos de conexão do módulo MAX7219 ***** pino 2 conectado no DIN pino 3 conectado no CLK pino 4 conectado no CS N_MTX = 1 - Número de dispositivos (Máximo de 8 módulos MAX7219) */ const byte N_MTX = 1; LedControl lc=LedControl(2,3,4, N_MTX); String digits = "123456"; // define pinos do Arduino const byte btn = 11; void setup() { for (int i=0; i< N_MTX; i++){ lc.shutdown(i,false); lc.setIntensity(i,8); /* define o brilho dos leds - médio */ lc.clearDisplay(i); /* limpa o display */ } // define botões como entrada e pull up interno do Arduino pinMode(btn, INPUT_PULLUP); // randomSeed() basicamente "embaralha" a função random(). randomSeed(analogRead(0)); // sem repetição de séries // coloca o primeiro número show(random(0, 6)); } void loop() { if(!digitalRead(btn)) { // botão acionado while(digitalRead(btn) == 0) {}; // loop vazio - aguarda soltar o botão lc.clearAll(); delay(200); rodada(); } } void rodada(){ byte result = 0; // inicializa a variável "result" com 0 byte rodada = random(15, 35); // gera comprimento da rodada, quantos números passarão for (byte i = 0; i < rodada; i++) // loop de 0 até comprimento da rodada { result = random(0, 6); // gera número de 0 a 5, devido a string começar em 0 e finalizar em 5 show(result); // mostra resultado delay(50 + i * 10); // espera para passar cada número (varia velocidade) } } void show(byte number) { char dig = digits[number]; // displayChar(adress, char) lc.displayChar(0, lc.getCharArrayPosition(dig)); // exibe o caractere na posição }