#include <FastLED.h>
#include <Servo.h>
#define ledpin 2 // Pino de dados da matriz de LEDs
#define Numleds 4 // Número de LEDs na matriz
const byte buttonpins [4] = {14,15,16,17}; //pinos dos botões
CRGB leds[Numleds];
long int cordoLED = 0xFF0000; //cor vermelha
Servo servoesquerdo;
Servo servodireito;
void setup() {
FastLED.addLeds<WS2812, ledpin, GRB>(leds, Numleds); // GRB ordering is typical
for(int i=0;i<=3;i++){
pinMode(buttonpins[i], INPUT_PULLUP);
}
servoesquerdo.attach(11);
servoesquerdo.write(0);
servodireito.attach(10);
servodireito.write(0);
acende(0);
}
void loop() {
static byte flap = 0;
flap = lebotao();
switch (flap) {
case 0:
acende(0);
apaga(1);
apaga(2);
apaga(3);
servoesquerdo.write(0);
servodireito.write(0);
break;
case 1:
apaga(0);
acende(1);
apaga(2);
apaga(3);
servoesquerdo.write(15);
servodireito.write(15);
break;
case 2:
apaga(0);
apaga(1);
acende(2);
apaga(3);
servoesquerdo.write(30);
servodireito.write(30);
break;
case 3:
apaga(0);
apaga(1);
apaga(2);
acende(3);
servoesquerdo.write(45);
servodireito.write(45);
break;
}
}
byte lebotao(){
byte flag = 0;
byte resultado;
while (flag == 0){
for(int i=0;i<=3;i++){
if(digitalRead(buttonpins[i])==LOW){
resultado = i;
delay(50);
flag = 1;
}
}
}
return (resultado);
}
void acende(byte i){
leds[i] = cordoLED;
FastLED.show();
}
void apaga(byte i){
leds[i] = CRGB::Black;
FastLED.show();
}