//vars
#define led_green 13
#define led_blue 12
#define sensor_ext 4
#define sensor_int 3
#define nao_sensor 2
bool pir_ext, pir_int, nao_pir;
uint8_t pacman[8] = {
0b00000,
0b00000,
0b01110,
0b11011,
0b11111,
0b01110,
0b00000,
0b00000
};
uint8_t pacmanOpen[] = {
0b00000,
0b00000,
0b01110,
0b11011,
0b11100,
0b01110,
0b00000,
0b00000
};
uint8_t dot[] = {
0b00000,
0b00000,
0b00000,
0b00110,
0b00110,
0b00000,
0b00000,
0b00000
};
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
//definir o pin
pinMode(led_green, OUTPUT);
pinMode(led_blue, OUTPUT);
pinMode(pir_ext, INPUT);
pinMode(pir_ext, INPUT);
pinMode(pir_int, INPUT);
pinMode(nao_pir, INPUT);
//definir o lcd
lcd.init();
lcd.backlight();
lcd.createChar(1, pacman);
lcd.createChar(2, dot);
}
void loop() {
pir_ext = digitalRead(sensor_ext);
pir_int = digitalRead(sensor_int);
nao_pir = digitalRead(nao_sensor);
PIR_EXT();
NAO_PIR();
PIR_INT();
}
void PIR_EXT(){
if(pir_ext){
digitalWrite(led_green, HIGH);
}else{
digitalWrite(led_green, LOW);
}
}
void NAO_PIR(){
if(nao_pir){
digitalWrite(led_blue, HIGH);
}else{
digitalWrite(led_blue, LOW);
}
}
void PIR_INT(){
delay(100);
}
void LCD_PAC(){
const int linha = 3;
for (int i = 3; i < 16; i++) {
lcd.setCursor(i, linha);
lcd.print("\1");
for (int j = i + 1; j < 16; j++) {
lcd.setCursor(j, linha);
lcd.print("\2");
}
lcd.createChar(1, pacman);
delay(150);
lcd.createChar(1, pacmanOpen);
delay(150);
lcd.setCursor(i, linha);
lcd.print(" ");
}
}