Como funciona um Botão?
O botão tem 4 pinos organizados em 2 pares ligados internamente. Quando pressionado, une os dois pares e fecha o circuito.
Pull-DOWN (externo)
Resistência de 10kΩ ao GND. Pino lê LOW em repouso e HIGH quando pressionado.
Pull-UP (interno)
Usa resistência interna do Arduino com INPUT_PULLUP. Pino lê HIGH em repouso e LOW quando pressionado. Sem resistências externas!
💡
Usa sempre INPUT_PULLUP neste kit — é mais simples e não precisa de resistências externas.
Exercício 1 — LED com Botão
🔌 Ligações
| Arduino | → | Componente |
|---|---|---|
| Pino 2 | → | Botão pino A |
| GND | → | Botão pino B |
| Pino 13 | → | Resistência 220Ω → LED |
| GND | → | Cátodo LED |
ex1_botao_led.ino
const int BTN = 2;
const int LED = 13;
void setup() {
pinMode(BTN, INPUT_PULLUP); // Pull-up interno
pinMode(LED, OUTPUT);
}
void loop() {
// Com INPUT_PULLUP: LOW = pressionado
if (digitalRead(BTN) == LOW) {
digitalWrite(LED, HIGH); // Liga enquanto pressionado
} else {
digitalWrite(LED, LOW); // Desliga quando solto
}
}
Exercício 2 — Toggle (Liga/Desliga)
Cada pressão do botão alterna o estado do LED.
ex2_toggle.ino
const int BTN = 2;
const int LED = 13;
boolean estadoLed = false;
boolean ultimoEstadoBtn = HIGH;
void setup() {
pinMode(BTN, INPUT_PULLUP);
pinMode(LED, OUTPUT);
}
void loop() {
boolean estadoBtn = digitalRead(BTN);
// Detetar flanco descendente (HIGH→LOW = pressão)
if (estadoBtn == LOW && ultimoEstadoBtn == HIGH) {
estadoLed = !estadoLed; // Inverte
digitalWrite(LED, estadoLed);
delay(50); // Debounce
}
ultimoEstadoBtn = estadoBtn;
}
Exercício 3 — Múltiplos Botões
Cada botão controla um LED diferente.
ex3_multiplos_botoes.ino
int botoes[] = {2, 3, 4, 5};
int leds[] = {9, 10, 11, 12};
int n = 4;
void setup() {
for (int i = 0; i < n; i++) {
pinMode(botoes[i], INPUT_PULLUP);
pinMode(leds[i], OUTPUT);
}
}
void loop() {
for (int i = 0; i < n; i++) {
if (digitalRead(botoes[i]) == LOW) {
digitalWrite(leds[i], HIGH);
} else {
digitalWrite(leds[i], LOW);
}
}
}
🎯
Desafio: Combina os 4 botões para criar um instrumento musical — cada botão toca uma nota diferente no buzzer!