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
Please follow and like us: