PROGETTI ARDUINO

  • HOME
  • 200 Progetti
  • PROGETTI E TUTORIAL
  • PROGETTI E TUTORIAL 2
  • ELETTRONICA
  • RECENSIONI
  • MANUALE
  • CONTATTI
  • HOME
  • 200 Progetti
  • PROGETTI E TUTORIAL
  • PROGETTI E TUTORIAL 2
  • ELETTRONICA
  • RECENSIONI
  • MANUALE
  • CONTATTI

Progetto 111 
Timer countdown con buzzer

🚀 Introduzione
​

Vuoi creare un timer che conta al contrario e suona alla fine?
​
Con questo progetto Arduino realizzi un vero countdown con buzzer, ideale come timer da cucina, promemoria o base per automazioni temporizzate.
​
👉 Semplice, pratico e super utile.

🎯 Cosa realizzerai
​

Con Arduino creerai un sistema che:
  • ⏳ esegue un conto alla rovescia
  • 📟 mostra il tempo su display LCD
  • 🔔 attiva un buzzer allo scadere
  • ⚡ funziona in automatico 

🧰 Materiale necessario
​
  • 1x Arduino UNO
  • 1x display LCD 16x2 con modulo I2C
  • 1x buzzer attivo
  • cavetti jumper
  • breadboard

🛒 Componenti e risorse consigliate
​

👉 Kit Arduino consigliato: https://amzn.to/41fmFNK
💡 Con un solo kit puoi realizzare la maggior parte dei progetti presenti nel sito.

📚 I miei libri consigliati

👉 Arduino per tutti – Volume 1: https://amzn.to/4rGNxB9
👉 Arduino per tutti – Volume 2: https://amzn.to/4bkfaey
👉 Arduino per tutti – Volume 3: https://amzn.to/4bogjAg

🔌 Schema di collegamento
​

Display LCD I2C
  • VCC → 5V
  • GND → GND
  • SDA → A4
  • SCL → A5
​
Buzzer
  • + → pin 9
  • – → GND 
Foto

📚 Librerie necessarie
​

Per questo progetto devi installare:
👉 LiquidCrystal_I2C
​

Puoi installarla dall’IDE Arduino:
  • Sketch → #include libreria → Gestione librerie
  • cerca LiquidCrystal I2C

💻 Codice Arduino
​// ============================================
// Progetto 111 - Timer countdown con buzzer
// Conto alla rovescia con avviso sonoro finale
// ============================================

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

const int buzzer = 9;

unsigned long tempoPrecedente = 0;
int minuti = 0;
int secondi = 10; // countdown iniziale: 10 secondi

bool timerFinito = false;

void setup() {
  pinMode(buzzer, OUTPUT);

  lcd.init();
  lcd.backlight();

  lcd.setCursor(0, 0);
  lcd.print("Countdown");
}

void loop() {
  if (!timerFinito) {
    unsigned long tempoAttuale = millis();

    // Aggiorna il timer ogni secondo
    if (tempoAttuale - tempoPrecedente >= 1000) {
      tempoPrecedente = tempoAttuale;

      if (secondi > 0) {
        secondi--;
      } else if (minuti > 0) {
        minuti--;
        secondi = 59;
      } else {
        timerFinito = true;
      }

      // Aggiorna il display
      lcd.setCursor(0, 1);

      if (minuti < 10) lcd.print("0");
      lcd.print(minuti);
      lcd.print(":");
      if (secondi < 10) lcd.print("0");
      lcd.print(secondi);
      lcd.print("   ");
    }
  } else {
    // Timer terminato: attiva buzzer
    lcd.setCursor(0, 1);
    lcd.print("Tempo scaduto! ");

    digitalWrite(buzzer, HIGH);
    delay(1000);
    digitalWrite(buzzer, LOW);
    delay(1000);
  }
}

⚙️ Come funziona
​

Il progetto parte da un tempo iniziale impostato nel codice, ad esempio:
  • 0 minuti
  • 10 secondi

Arduino usa millis() per aggiornare il tempo ogni secondo.

👉 Finché il timer non arriva a zero:
  • decrementa secondi e minuti
  • aggiorna il display LCD
​
👉 Quando il countdown termina:
  • mostra il messaggio finale
  • attiva il buzzer a intervalli

🧠 Perché è un progetto importante
​

Questo progetto ti insegna:
  • gestione di un conto alla rovescia
  • utilizzo del display LCD
  • attivazione di un allarme sonoro
  • logica temporale con millis()
​
👉 È la base perfetta per timer reali.

🔄 Varianti possibili
​

Vuoi migliorarlo?
  • 🔘 aggiungi pulsanti per impostare il tempo
  • ▶️ pulsante start/stop
  • 🔁 reset del countdown
  • 📟 visualizzazione ore:minuti:secondi

Foto
Foto

© ProgettiArduino.com 2026 - Fancello Salvatore
​ Layout, immagini e testi sono di esclusiva proprietà di www.progettiarduino.com 
Privacy Policy