Video 3 - Arduino pulsante che attiva un LED | Prof. Giagnotti
🎥 VIDEO 3 · ARDUINO · PULSANTE + LED + PULL-DOWN
✍ Autore: profgiagnotti

Video 3 - Arduino pulsante che attiva un LED

Primo input digitale: pushbutton, resistenze di pull-up e pull-down, digitalRead() e controllo LED alla pressione.

Video 3 Arduino Pulsante + LED Pull-down 10kΩ ~24 min di video 📑 Stampa → ▶ YouTube Aggiornata 2025/26

2. Di cosa parla questo video

In questo tutorial ti guiderò nella realizzazione di un progetto con Arduino attraverso l'ambiente di lavoro di Tinkercad, attiviamo un LED alla pressione di un pulsante, introducendo il primo sensore digitale di input e le resistenze di pull-down per un segnale stabile.

Evolviamo da output a input: Arduino non solo accende LED, ma legge mondo esterno. Componenti: pushbutton 4 pin, resistenza 10kΩ pull-down, LED rosso + 220Ω, Arduino Uno. Cablaggio pull-down: 5V → pulsante → pin 2 + resistenza 10kΩ → GND, quando premi 5V va su pin 2 (HIGH), quando rilasci 10kΩ tira a GND (LOW). Alternativa pull-up interna: pinMode(2, INPUT_PULLUP) senza resistenza esterna. Codice: const int button = 2; const int led = 13;, pinMode(button, INPUT); pinMode(led, OUTPUT);, int stato = digitalRead(button); if(stato == HIGH) digitalWrite(led, HIGH); else digitalWrite(led, LOW);. Simula pressione, LED si accende solo mentre tieni premuto.

💬 Nota del docente - Perché ho fatto questo video

Questo è il video dove la maggior parte si blocca. Nel video al minuto 8 mostro l'errore che fa impazzire: collegate pulsante tra 5V e pin 2 senza resistenza di pull-down. Così quando non premete, pin 2 è flottante, prende disturbi elettromagnetici e LED sfarfalla da solo come se fosse posseduto. La resistenza 10kΩ pull-down serve per tenere pin a 0V stabile quando pulsante aperto. Al minuto 13 mostro pushbutton 4 pin: ha due coppie collegate internamente, se lo mettete ruotato di 90° create un corto 5V-GND. Vi mostro come testare continuità con multimetro Tinkercad. E al minuto 17 mostro INPUT_PULLUP: senza resistenza esterna, pin interno 20kΩ tira a 5V, logica invertita LOW premuto.

3. Obiettivi di apprendimento

  • ✅ Caratteristiche di un pulsante con Arduino (NO, 4 pin, rimbalzo)
  • ✅ Resistenze di pull-up e di pull-down (10kΩ, INPUT_PULLUP interno)
  • ✅ Creazione e simulazione del tuo terzo circuito Arduino con input digitale
🎯 Cosa saprai fare dopo questo video

Alla fine saprai cablare pushbutton con resistenza pull-down 10kΩ o usare pull-up interna, leggere stato con digitalRead, usare if else per controllare LED, capire pin flottante vs stabile, usare Serial Monitor per vedere HIGH/LOW del pulsante, e creare interazione uomo-macchina base per tutti i prossimi progetti con sensori.

4. Perché il pulsante - Da output a input digitale

Video 1-2 solo LED output. Video 3 introduce input:

Video 1-2 (Output)Video 3 (Input + Output)
Arduino → LED, solo scrivePulsante → Arduino → LED, legge e scrive
pinMode OUTPUT, digitalWritepinMode INPUT, digitalRead + OUTPUT
Nessuna resistenza critica oltre 220Ω LEDResistenza 10kΩ pull-down/pull-up obbligatoria
LED sempre controllato da codiceLED controllato da utente umano con pressione
No flottantePin flottante senza resistenza → LED sfarfalla
Base blinkBase interazione, sensori, controllo
🎯 Domanda da colloquio / esame

Se vi chiedono "Perché resistenza pull-down 10kΩ?", rispondete: "Pin INPUT senza resistenza è flottante, impedenza alta, prende rumore e legge HIGH/LOW casuale. Pull-down 10kΩ tra pin e GND tiene pin a 0V stabile quando pulsante aperto, quando chiudo pulsante 5V va su pin, corrente 5V/10k=0.5mA sicura. Alternativa INPUT_PULLUP usa resistenza interna 20kΩ verso 5V, senza esterna, logica invertita: HIGH rilasciato, LOW premuto. 10kΩ compromesso tra stabilità e consumo". Risposta da elettronico.

5. Concetti chiave - Pushbutton, pull-up/pull-down, digitalRead

Cuore del video, minuto 5-15:

PULSANTE - CONCETTI CHIAVE
Pushbutton 4 pin: 2 coppie collegate internamente, guardando dal basso: pin 1-2 collegati, pin 3-4 collegati Quando premi: 1-3 e 2-4 si collegano (ponte) Se ruotato 90°: 5V e GND in corto → Tinkercad avvisa corto Usa multimetro Tinkercad in continuità per trovare coppie Pull-down (consigliata per principianti, logica positiva): 5V → pulsante → nodo → pin 2 + resistenza 10kΩ → GND Non premuto: pin 2 → 10kΩ → GND → 0V → LOW Premuto: pin 2 → pulsante → 5V → 5V → HIGH Resistenza 10kΩ evita corto 5V-GND quando premi Pull-up esterna: GND → pulsante → pin 2 + 10kΩ → 5V Non premuto: HIGH, premuto: LOW (logica invertita) Pull-up interna (senza resistenza esterna): pinMode(2, INPUT_PULLUP) → resistenza interna 20kΩ verso 5V attiva Cablaggio: pin 2 → pulsante → GND (solo 2 fili) Non premuto: HIGH, premuto: LOW (invertita) Codice: if(digitalRead(2) == LOW) → premuto digitalRead(pin) → ritorna HIGH (1, 5V) o LOW (0, 0V) if( digitalRead(button) == HIGH ) → se premuto (pull-down) accendi LED Debounce: pulsante meccanico rimbalza 5-20ms, lettura instabile, soluzione delay(50) o millis()
PULL-DOWN 10kΩ (QUESTO VIDEO)
Resistenza esterna tra pin e GND, logica positiva: premi = HIGH, rilasci = LOW. Intuitiva, consigliata per iniziare, 3 fili.
INPUT_PULLUP INTERNA
Resistenza interna 20kΩ verso 5V, senza esterna, 2 fili: pin → pulsante → GND, logica invertita: premi = LOW. Più compatta, professionale.

6. Lab in Tinkercad - Circuito pulsante + LED

Nel video (minuto 3-19):

  • Setup: Nuovo circuito "Video3 Pulsante LED" → Arduino Uno + breadboard + pushbutton + resistenza 10kΩ + LED rosso + resistenza 220Ω
  • Cablaggio pull-down: Arduino 5V → cavo rosso → breadboard → pulsante pin 1 (angolo), pulsante pin 2 (stesso lato) → cavo giallo → Arduino pin 2 + resistenza 10kΩ → bus GND → Arduino GND. Arduino pin 13 → 220Ω → anodo LED → catodo → GND. Attenzione orientamento pulsante: usa lato lungo breadboard, non corto
  • Codice pull-down: const int button = 2, led = 13, setup pinMode button INPUT, led OUTPUT, loop stato = digitalRead(button), if stato HIGH digitalWrite led HIGH else LOW, Serial.println stato
  • Simulazione: Start → LED spento → clic su pulsante (tieni premuto) → LED ON → rilascia → LED OFF → vedi su Serial Monitor HIGH/LOW
  • Variante INPUT_PULLUP: pinMode button INPUT_PULLUP, cablaggio pin 2 → pulsante → GND (2 fili), codice if digitalRead LOW → premuto → LED ON
ARDUINO - PULSANTE CHE ATTIVA LED - PULL-DOWN
// Video 3 - Pulsante che attiva LED - Pull-down 10kΩ // 5V -> Pulsante -> Pin 2 + 10kΩ -> GND // Pin 13 -> 220Ω -> LED -> GND const int buttonPin = 2; // Pulsante su pin 2 const int ledPin = 13; // LED su pin 13 (o 8 con resistenza) void setup() { pinMode(buttonPin, INPUT); // Pulsante come ingresso pinMode(ledPin, OUTPUT); // LED come uscita Serial.begin(9600); Serial.println("Pulsante + LED pull-down"); } void loop() { int statoPulsante = digitalRead(buttonPin); Serial.print("Stato pulsante: "); Serial.println(statoPulsante); if (statoPulsante == HIGH) { // Pulsante premuto -> accendi LED digitalWrite(ledPin, HIGH); Serial.println("Pulsante PREMUTO -> LED ON"); } else { // Pulsante rilasciato -> spegni LED digitalWrite(ledPin, LOW); Serial.println("Pulsante rilasciato -> LED OFF"); } delay(100); // Piccolo delay per stabilità } // Variante INPUT_PULLUP senza resistenza esterna // Cablaggio: Pin 2 -> Pulsante -> GND // Codice: /* const int buttonPin = 2; const int ledPin = 13; void setup() { pinMode(buttonPin, INPUT_PULLUP); // Attiva pull-up interna 20kΩ pinMode(ledPin, OUTPUT); } void loop() { if (digitalRead(buttonPin) == LOW) { // LOW = premuto con pull-up digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } } */
🔧 Pulsante cheat sheet

Pushbutton 4 pin: 2 coppie collegate, testa con multimetro Tinkercad. Pull-down 10kΩ: 5V → pulsante → pin 2 + 10kΩ → GND, HIGH premuto. Pull-up interna: pinMode INPUT_PULLUP, pin 2 → pulsante → GND, LOW premuto, senza resistenza esterna. Debounce: delay 50ms dopo lettura o millis(). Cavi: rosso 5V, nero GND, giallo segnale pin 2, verde LED. Nel video al minuto 11 mostro come ruotare pulsante correttamente su breadboard per evitare corto 5V-GND.

7. Errori comuni da evitare

  • Pin flottante senza pull-down: pulsante tra 5V e pin 2 senza 10kΩ verso GND → pin flottante quando rilasciato, LED sfarfalla da solo, legge HIGH/LOW casuale. Sempre 10kΩ pull-down o INPUT_PULLUP.
  • Pulsante ruotato 90° corto: pulsante su breadboard ruotato → pin 1-3 collegati interni creano corto 5V-GND quando premi, Tinkercad errore corrente, Arduino reale surriscalda. Ruota pulsante di 90°, verifica coppie con multimetro.
  • Logica invertita con INPUT_PULLUP: usi INPUT_PULLUP ma codice if HIGH per premuto → LED ON quando rilasci, OFF quando premi, logica opposta. Con PULLUP premi = LOW.
  • pinMode INPUT dimenticato: digitalRead senza pinMode → pin resta OUTPUT di default, lettura errata. Sempre pinMode button INPUT o INPUT_PULLUP in setup.
  • Resistenza pull-down valore errato: 220Ω invece di 10kΩ come pull-down → quando premi 5V/220Ω=22mA spreco, resistenza scalda. Usa 10kΩ (marrone nero arancio), 0.5mA sicuro.
  • LED senza resistenza: LED su pin 13 senza 220Ω → brucia come Video 1. Sempre 220Ω in serie con LED anche con pulsante.
  • Debounce ignorato: premi una volta ma codice legge 5 pressioni per rimbalzo meccanico → LED sfarfalla, conteggio errato. Soluzione delay 50ms o gestione millis nel Video 4 interruttore.
⚠️ Errore che fa sfarfallare LED al 100%

Pulsante senza resistenza pull-down, pin flottante. Sintomo: LED si accende da solo senza toccare pulsante, Serial Monitor mostra HIGH LOW casuali, sfarfalla quando avvicini mano, in Tinkercad LED lampeggia random. Soluzione: aggiungi resistenza 10kΩ tra pin 2 e GND (pull-down) oppure usa pinMode 2 INPUT_PULLUP e cabla pin 2 → pulsante → GND senza resistenza esterna ma inverti logica: LOW premuto. Nel video al minuto 8 mostro oscilloscopio con pin flottante rumoroso vs stabile con pull-down.

8. Approfondimento: INPUT vs INPUT_PULLUP

Differenze fondamentali per ogni progetto con pulsante:

Pull-down esterna 10kΩINPUT_PULLUP interna
3 fili: 5V → pulsante → pin + 10kΩ → GND2 fili: pin → pulsante → GND
Resistenza esterna 10kΩ necessariaResistenza interna 20kΩ, nessuna esterna
Logica positiva: premuto = HIGHLogica invertita: premuto = LOW
Intuitiva per principiantiCompatta, professionale, meno fili
Corrente 0.5mA quando premutoCorrente 0.25mA quando premuto
Usata in questo video baseUsata in Video 4 interruttore toggle

Prossimo video: Pulsante come interruttore - toggle con memoria.

📚 Compito per casa

Crea su Tinkercad circuito Video 3: Arduino Uno, breadboard, pushbutton, resistenza 10kΩ pull-down, LED rosso + 220Ω. Cablaggio pull-down: 5V → pulsante → pin 2 + 10kΩ → GND, pin 13 → 220Ω → LED → GND. Codice con const int button=2 led=13, pinMode button INPUT led OUTPUT, loop digitalRead button, if HIGH LED ON else OFF, Serial.println stato. Simula pressione pulsante LED ON solo mentre premi. Prova variante INPUT_PULLUP: pinMode INPUT_PULLUP, cablaggio pin 2 → pulsante → GND, if LOW premuto LED ON. Screenshot LED ON con pulsante premuto + Serial Monitor HIGH + codice. Mandamelo prima del Video 4 pulsante come interruttore.

9. Risorse correlate