#define CLK 2
#define DT 3
#define LED1 4
#define LED2 5
#define LED3 6
#define LED4 7
#define LED5 8
#define LED6 9
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27, 20, 4);
int statoIniziale = 0;
int contatoreIN = 1;
void setup() {
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
Serial.begin(9600);
statoIniziale = digitalRead(CLK);
attachInterrupt(digitalPinToInterrupt(CLK), valoreEncoder, FALLING);
lcd.init();
lcd.backlight();
lcd.setCursor(6, 0);
lcd.print("INGRESSI");
lcd.setCursor(2, 1);
lcd.print("1");
lcd.setCursor(5, 1);
lcd.print("2");
lcd.setCursor(8, 1);
lcd.print("3");
lcd.setCursor(11, 1);
lcd.print("4");
lcd.setCursor(14, 1);
lcd.print("5");
lcd.setCursor(17, 1);
lcd.print("6");
int parentesiQuadra[12][2]= {{1,1},{3,1}}
}
void loop() {
switch (contatoreIN) {
case 1:
digitalWrite(LED2, LOW);
digitalWrite(LED1, HIGH);
break;
case 2:
digitalWrite(LED3, LOW);
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
break;
case 3:
digitalWrite(LED4, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
break;
case 4:
digitalWrite(LED3, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED4, HIGH);
break;
case 5:
digitalWrite(LED6, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, HIGH);
break;
case 6:
digitalWrite(LED5, LOW);
digitalWrite(LED6, HIGH);
//default:
// statements
// break;
}
/*
if (contatoreIN == 1) {
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
Serial.println("Ingresso 1");
}
if (contatoreIN == 2) {
digitalWrite(LED2, HIGH);
digitalWrite(LED1, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
Serial.println("Ingresso 2");
}
if (contatoreIN == 3) {
digitalWrite(LED3, HIGH);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED4, LOW);
Serial.println("Ingresso 3");
}
if (contatoreIN == 4) {
digitalWrite(LED4, HIGH);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
Serial.println("Ingresso 4");
}
*/
}
void valoreEncoder() {
int valoreDT = digitalRead(DT);
if (valoreDT == HIGH) {
contatoreIN++;// Senso Orario
if (contatoreIN >= 6) {
contatoreIN = 6;
}
}
if (valoreDT == LOW) {
contatoreIN--; // Senso Antiorario
if (contatoreIN <= 1) {
contatoreIN = 1;
}
}
Serial.println(contatoreIN);
}