
Vídeo
Esquema do circuito

Código-fonte
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Controle de LED com botão (momentâneo)
4// ─────────────────────────────────────────
5// O LED fica aceso enquanto o botão é mantido pressionado e apaga quando
6// ele é solto (push). Mostra a leitura de um botão com digitalRead e
7// if-else.
8//
9// Pinos:
10// D13 -> Botão, outra perna em 5V
11// D13 -> Resistor de 10k para GND (pull-down)
12// D7 -> LED (com resistor de 330 ohm)
13
14void setup() {
15 pinMode(13, INPUT); // Entrada do botão (pull-down externo)
16 pinMode(7, OUTPUT); // Saída do LED
17}
18
19void loop() {
20 if (digitalRead(13) == HIGH) { // O botão está pressionado?
21 digitalWrite(7, HIGH); // Pressionado: LED ligado
22 } else {
23 digitalWrite(7, LOW); // Solto: LED desligado
24 }
25}
26
Perguntas frequentes
Para que serve o resistor de 10 kΩ?
É um resistor pull-down: ele mantém o pino em GND quando o botão não está pressionado, garantindo uma leitura LOW estável. Sem esse resistor, o pino ficaria flutuante e leria HIGH ou LOW aleatoriamente, fazendo o LED piscar sozinho.
Posso conectar um botão sem usar resistor?
Sim, usar `pinMode(pin, INPUT_PULLUP)` ativa o resistor pull-up interno do Arduino. Nesse caso, o botão é conectado entre o pino e GND, e a lógica se inverte: a leitura é LOW ao pressionar e HIGH ao soltar.
Quais pinos do botão devo usar?
Nos botões de 4 pinos, dois pinos opostos já estão conectados internamente. Posicione o botão sobre o vão central da protoboard e use os pinos na diagonal; assim, você garante que está escolhendo os pinos corretos.
Qual é a diferença entre "momentâneo" e "liga/desliga"?
No modo momentâneo, o LED acende apenas enquanto você mantém o botão pressionado. No modo liga/desliga (toggle), cada toque muda o estado do LED, que continua aceso mesmo depois de você soltar o botão; para isso, é necessária uma variável de estado.
