#include "LedControl.h"
#include "binary.h"
#define BUZZER_PIN 9
#define BTN_PIN 8
#define LED_PIN 10
#define ON_OFF_PIN 7
#define DIN_PIN 11
#define CS_PIN 12
#define CLK_PIN 13
LedControl lc = LedControl(DIN_PIN, CLK_PIN, CS_PIN, 1);
void setup() {
pinMode(BTN_PIN, INPUT_PULLUP);
pinMode(ON_OFF_PIN, INPUT_PULLUP);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
initMatrix(lc);
}
void loop() {
if(isOn()){
digitalWrite(LED_PIN, HIGH);
if(pushed(BTN_PIN)){
bipBuzzer(1000);
drowHeart(lc);
delay(5000); // delay de 5 segundos
lc.clearDisplay(0); // limpeza do display
delay(1000);
}
} else {
digitalWrite(LED_PIN, LOW);
}
}
void bipBuzzer(int duration) {
digitalWrite(BUZZER_PIN, HIGH);
delay(duration);
digitalWrite(BUZZER_PIN, LOW);
}
bool isOn() {
return digitalRead(ON_OFF_PIN) == LOW;
}
bool pushed(int btn) {
return digitalRead(btn) == LOW;
}
void initMatrix(LedControl ledctl) {
ledctl.shutdown(0, false); // Inicia o módulo
ledctl.setIntensity(0, 8); // Define a itensidade de brilho do display
ledctl.clearDisplay(0); // Limpa a tela do display
}
void drowHeart(LedControl ledctl) {
ledctl.setRow(0, 0, B00000000);
ledctl.setRow(0, 1, B00100010);
ledctl.setRow(0, 2, B01010101);
ledctl.setRow(0, 3, B01001001);
ledctl.setRow(0, 4, B01000001);
ledctl.setRow(0, 5, B00100010);
ledctl.setRow(0, 6, B00010100);
ledctl.setRow(0, 7, B00001000);
}