Simon Says com arduino
Publicado em 24 de Agosto de 2026 às 13:35
Categoria:
brinque de o mestre mandou com o arduino (opicional tinkercad ou realidade)
Arquivos do Projeto
1.99 MB
Materiais Necessários
- 1x LED vermelho
- 1x LED verde
- 1x LED azul (ou o sem cor no meu caso)
- 1x LED amarelo
- 4x botões
- 1x buzzer
- 1x protoboard
- 1x arduino UNO
Ferramentas Necessárias
- apenas as maõs
Etapas
montagem: no arquivo que eu deixei
Código:
-
const byte leds[] = {2, 3, 4, 5};
const byte botoes[] = {6, 7, 8, 9};
const byte buzzer = 10;
const int tons[] = {262, 330, 392, 523};
const int MAX_SEQ = 100;
byte sequencia[MAX_SEQ];
int rodada = 0;
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(leds[i], OUTPUT);
pinMode(botoes[i], INPUT_PULLUP);
}
pinMode(buzzer, OUTPUT);
randomSeed(analogRead(A0));
animacaoInicial();
}
void loop() {
sequencia[rodada] = random(0, 4);
mostrarSequencia();
if (!jogadorAcerta()) {
perdeu();
rodada = 0;
delay(1000);
return;
}
rodada++;
if (rodada >= MAX_SEQ) rodada = 0;
delay(700);
}
void mostrarSequencia() {
delay(500);
for (int i = 0; i <= rodada; i++) {
acenderLED(sequencia[i]);
delay(200);
}
}
bool jogadorAcerta() {
for (int i = 0; i <= rodada; i++) {
int botao = esperarBotao();
acenderLED(botao);
if (botao != sequencia[i]) return false;
}
return true;
}
int esperarBotao() {
while (true) {
for (int i = 0; i < 4; i++) {
if (digitalRead(botoes[i]) == LOW) {
delay(30);
while (digitalRead(botoes[i]) == LOW);
return i;
}
}
}
}
void acenderLED(int i) {
digitalWrite(leds[i], HIGH);
tone(buzzer, tons[i]);
delay(350);
digitalWrite(leds[i], LOW);
noTone(buzzer);
}
void perdeu() {
for (int x = 0; x < 3; x++) {
for (int i = 0; i < 4; i++) digitalWrite(leds[i], HIGH);
tone(buzzer, 150);
delay(400);
noTone(buzzer);
for (int i = 0; i < 4; i++) digitalWrite(leds[i], LOW);
delay(250);
}
}
void animacaoInicial() {
for (int i = 0; i < 4; i++) {
digitalWrite(leds[i], HIGH);
tone(buzzer, tons[i]);
delay(180);
digitalWrite(leds[i], LOW);
noTone(buzzer);
delay(70);
}
}
Conclusão
para jogar você precisa repitir a sequencia aleatoria do arduino

Comentários
1Eaí gostaram