int Portas[] = {2,3,4,5};
void setup() {
for(int np = 0; np <= 3; np++){
pinMode(Portas[np], OUTPUT);
digitalWrite(Portas[np], LOW);
}
}
void loop() {
for(int np = 0; np <= 3; np++){
digitalWrite(Portas[np], HIGH);
delay(500);
if (np - 1 == -1){digitalWrite(Portas[np + 3], LOW);} else {
digitalWrite(Portas[np - 1], LOW);
}
}
}
// Definindo os pinos
const int pinLed1 = 8; // LED 1 (rotação para um lado)
const int pinLed2 = 9; // LED 2 (rotação para o outro lado)
const int pinScrollA = 2; // Entrada do Scroll A (encoder)
const int pinScrollB = 3; // Entrada do Scroll B (encoder)
int lastStateA; // Armazena o último estado do pino A
int currentStateA; // Estado atual do pino A
void setup() {
// Configurando os pinos dos LEDs como saída
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
// Configurando os pinos do scroll como entrada
pinMode(pinScrollA, INPUT);
pinMode(pinScrollB, INPUT);
// Inicializando o estado anterior do pino A
lastStateA = digitalRead(pinScrollA);
}
void loop() {
// Ler o estado atual do pino A
currentStateA = digitalRead(pinScrollA);
// Detectar mudança de estado em A
if (currentStateA != lastStateA) {
// Verificar a direção da rotação
if (digitalRead(pinScrollB) != currentStateA) {
// Rotação para um lado (Scroll para cima)
digitalWrite(pinLed1, HIGH); // Acende LED 1
digitalWrite(pinLed2, LOW); // Apaga LED 2
} else {
// Rotação para o outro lado (Scroll para baixo)
digitalWrite(pinLed1, LOW); // Apaga LED 1
digitalWrite(pinLed2, HIGH); // Acende LED 2
}
}
// Atualiza o último estado do pino A
lastStateA = currentStateA;
}