//exemplo simples
// Botões
const int btnPinos[] = {0, 1, 2, 3, 12}; // Pinos dos botões: verde, amarelo, vermelho, RGB, start
const int numBotoes = sizeof(btnPinos) / sizeof(btnPinos[0]);
// LEDs
const int ledPinos[] = {4, 5, 6}; // Pinos dos LEDs: verde, amarelo, vermelho
const int numLEDs = sizeof(ledPinos) / sizeof(ledPinos[0]);
// LED RGB
const int rgbPinos[] = {9, 10, 11}; // Pinos do LED RGB: R, G, B
// Armazenar o estado atual dos LEDs
bool ledState[numLEDs] = {false};
void setup() {
// Configurar os pinos dos botões como entrada
for (int i = 0; i < numBotoes; ++i) {
pinMode(btnPinos[i], INPUT_PULLUP);
}
// Configurar os pinos dos LEDs como saída
for (int i = 0; i < numLEDs; ++i) {
pinMode(ledPinos[i], OUTPUT);
}
// Configurar os pinos do LED RGB como saída
for (int i = 0; i < 3; ++i) {
pinMode(rgbPinos[i], OUTPUT);
}
}
void loop() {
//nasce apagado
analogWrite(rgbPinos[0], 255);
analogWrite(rgbPinos[1], 255);
analogWrite(rgbPinos[2], 255);
// ter 100 niveis
// utilizar o quinto botão para iniciar o jogo
//acender os leds - gerar as sequencias aleatorias
// Verificar se algum botão foi pressionado
for (int i = 0; i < numBotoes; ++i) {
if (digitalRead(btnPinos[i]) == LOW) {
// Botão pressionado
if (i < numLEDs) {
// Se for um dos botões de LED, inverte o estado do LED correspondente
ledState[i] = !ledState[i];
digitalWrite(ledPinos[i], ledState[i]);
delay(300); // Atraso para manter o LED aceso por um segundo antes de desligar
digitalWrite(ledPinos[i], LOW);
} else if (i == 3) {
// Botão RGB pressionado, acender a cor azul mais escura
for (int j = 0; j < 3; ++j) {
pinMode(rgbPinos[j], OUTPUT);
}
analogWrite(rgbPinos[0], 0); //Vermelho
analogWrite(rgbPinos[1], 255); //Verde
analogWrite(rgbPinos[2], 255); //Azul Define a intensidade do LED (escala de 0 a 255)
delay(300); // Atraso para manter o LED RGB aceso por um segundo antes de desligar
analogWrite(rgbPinos[0], 0);
analogWrite(rgbPinos[1], 0);
analogWrite(rgbPinos[2], 0);
}
}
}
}