Criando um projeto usando 10 leds, um Buzzer, dois pushbutton em um contador num Arduino

Vamos criar um projeto com Arduino que utiliza:

  • 10 LEDs para indicar visualmente a contagem;
  • 2 pushbutton para incrementar a contagem;
  • 1 buzzer (acho que você quis dizer “buzzer”, não “burger” 😊) para emitir um som ao contar;
  • Um contador que vai de 0 a 10 (limitado pelos 10 LEDs).

🧠 Funcionamento

  • Botão 1: incrementa o contador.
  • Botão 2: decrementa o contador.
  • O contador permanece entre 0 e 10.
  • Os LEDs mostram a quantidade atual.
  • O buzzer toca em cada alteração.

🔧 Materiais

  • 10 resistores de 220Ω (para os LEDs)
  • 10 LEDs (5 de cada cor ‘Vermelho, Azul, Amarelo, Verde, Laranja’)
  • 1 buzzer (ativo ou passivo)
  • 2 pushbutton
  • 2 resistor de 10kΩ (pull-down para os botões)
  • Arduino UNO (ou compatível)
  • Jumpers
  • Protoboard

⚡ Esquema de Conexões (Resumo)

  • LEDs: pinos 2 a 11 do Arduino
  • Botão 1: pino 12
  • Botão 2: pino 0
  • Buzzer: pino 13

🧾 Código Arduino

const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
const int incButtonPin = 12;
const int decButtonPin = 0;
const int buzzerPin = 13;

int counter = 0;
bool lastIncState = LOW;
bool lastDecState = LOW;
unsigned long lastIncDebounce = 0;
unsigned long lastDecDebounce = 0;


void setup() {
  Serial.begin(9600);
  for (int i = 0; i < 10; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
  pinMode(incButtonPin, INPUT);
  pinMode(decButtonPin, INPUT);
  
  pinMode(buzzerPin, OUTPUT);
  
  updateTestLEDs(counter);
  updateLEDs(counter);
}

void loop() {
  handleButton(incButtonPin, lastIncState, lastIncDebounce, true);
  handleButton(decButtonPin, lastDecState, lastDecDebounce, false);
}


void handleButton(int pin, bool &lastState, unsigned long &lastTime, bool increment) {
  int reading = digitalRead(pin);

  if (reading != lastState) {
    lastTime = millis();
    Serial.print(reading);  
  }

  if (reading != lastState) { 
    delay(50);
    
    if (reading == HIGH && lastState == LOW) {
      if (increment) {
        if (counter < 10) counter++;
      } else {
        if (counter > 0) counter--;
      }

      updateLEDs(counter);
      tone(buzzerPin, 1000, 100);
    }
  }

  lastState = reading;
}

void updateLEDs(int value) {
  for (int i = 0; i < 10; i++) {
    digitalWrite(ledPins[i], i < value ? HIGH : LOW);
  }
}

void updateTestLEDs(int value) {
  for (int i = 0; i < 10; i++) {
    digitalWrite(ledPins[i], HIGH);
    delay(150);
  }
}


Diagrama do Projeto

Abaixo o codigo fonte completo no GitHub

Link do Github

Please follow and like us:
error0
fb-share-icon
Tweet 20
fb-share-icon20