/******************************************************************************* * * Projeto 72 - Contador de cliques - módulo Max7219 * Autor: Angelo Luis Ferreira * Data: 02/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 = "0123456789"; // define pinos do Arduino const byte bdir = 11, besq = 12; int number = 0; // número a ser mostrado no display deve ser int (inteiros posit. e negat.) 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(besq, INPUT_PULLUP); pinMode(bdir, INPUT_PULLUP); } void loop() { if(!digitalRead(bdir)) { // botão direito acionado number += 1; while(digitalRead(bdir) == 0) {}; // loop vazio - aguarda soltar o botão lc.clearAll(); delay(200); } if(!digitalRead(besq)) { // botão esquerdo acionado number -= 1; while(digitalRead(besq) == 0) {}; lc.clearAll(); delay(200); } // reseta em caso de estouro (<0 ou >9) if (number < 0) {number = 9;} if (number > 9) {number = 0;} // rotina para exibir os dígitos char dig = digits[number]; // displayChar(adress, char) lc.displayChar(0, lc.getCharArrayPosition(dig)); // exibe o caractere na posição }