🚀 Introduzione
Vuoi creare un timer che mostra il tempo in tempo reale su uno schermo?
Con questo progetto realizzi un timer digitale con display LCD, perfetto per contare secondi, minuti o tempi di lavorazione.
👉 È la base per tantissimi progetti: cronometri, countdown, automazioni temporizzate.
Vuoi creare un timer che mostra il tempo in tempo reale su uno schermo?
Con questo progetto realizzi un timer digitale con display LCD, perfetto per contare secondi, minuti o tempi di lavorazione.
👉 È la base per tantissimi progetti: cronometri, countdown, automazioni temporizzate.
🎯 Cosa realizzerai
Con Arduino creerai un sistema che:
Con Arduino creerai un sistema che:
- ⏱️ conta il tempo in secondi
- 📟 mostra il tempo su display LCD
- 🔄 aggiorna il display in tempo reale
- ⚡ funziona in modo autonomo
🧰 Materiale necessario
- 1x Arduino UNO
- 1x display LCD 16x2 (con modulo I2C consigliato)
- cavetti jumper
- breadboard
🛒 Componenti e risorse consigliate
👉 Kit Arduino consigliato: https://amzn.to/41fmFNK
💡 Molti kit includono già il display LCD I2C, perfetto per questo progetto.
📚 Libri utili per imparare Arduino in modo pratico
👉 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
👉 Kit Arduino consigliato: https://amzn.to/41fmFNK
💡 Molti kit includono già il display LCD I2C, perfetto per questo progetto.
📚 Libri utili per imparare Arduino in modo pratico
👉 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
📚 Librerie necessarie
Per questo progetto devi installare:
👉 LiquidCrystal_I2C
Puoi installarla direttamente dall’IDE Arduino:
Per questo progetto devi installare:
👉 LiquidCrystal_I2C
Puoi installarla direttamente dall’IDE Arduino:
- Sketch → #include libreria → Gestione librerie
- cerca LiquidCrystal I2C
🔌 Schema di collegamento
Display LCD I2C
💡 Questo tipo di collegamento usa solo 4 fili (molto più semplice).
Display LCD I2C
- VCC → 5V
- GND → GND
- SDA → A4
- SCL → A5
💡 Questo tipo di collegamento usa solo 4 fili (molto più semplice).
💻 Codice Arduino
// ============================================
// Progetto 104 - Timer digitale con display LCD
// Visualizza il tempo trascorso su LCD 16x2
// ============================================
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Indirizzo comune 0x27 (può variare)
LiquidCrystal_I2C lcd(0x27, 16, 2);
unsigned long tempoPrecedente = 0;
int secondi = 0;
int minuti = 0;
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Timer Arduino");
}
void loop() {
unsigned long tempoAttuale = millis();
// Incremento ogni secondo
if (tempoAttuale - tempoPrecedente >= 1000) {
tempoPrecedente = tempoAttuale;
secondi++;
if (secondi >= 60) {
secondi = 0;
minuti++;
}
// Aggiorna display
lcd.setCursor(0, 1);
// Formato 00:00
if (minuti < 10) lcd.print("0");
lcd.print(minuti);
lcd.print(":");
if (secondi < 10) lcd.print("0");
lcd.print(secondi);
lcd.print(" "); // pulizia residui
}
}
// Progetto 104 - Timer digitale con display LCD
// Visualizza il tempo trascorso su LCD 16x2
// ============================================
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Indirizzo comune 0x27 (può variare)
LiquidCrystal_I2C lcd(0x27, 16, 2);
unsigned long tempoPrecedente = 0;
int secondi = 0;
int minuti = 0;
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Timer Arduino");
}
void loop() {
unsigned long tempoAttuale = millis();
// Incremento ogni secondo
if (tempoAttuale - tempoPrecedente >= 1000) {
tempoPrecedente = tempoAttuale;
secondi++;
if (secondi >= 60) {
secondi = 0;
minuti++;
}
// Aggiorna display
lcd.setCursor(0, 1);
// Formato 00:00
if (minuti < 10) lcd.print("0");
lcd.print(minuti);
lcd.print(":");
if (secondi < 10) lcd.print("0");
lcd.print(secondi);
lcd.print(" "); // pulizia residui
}
}
⚙️ Come funziona
Arduino utilizza la funzione millis() per contare il tempo senza bloccare il programma.
👉 Ogni secondo:
MM:SS
💡 Questo metodo è molto più preciso rispetto a usare delay().
Arduino utilizza la funzione millis() per contare il tempo senza bloccare il programma.
👉 Ogni secondo:
- incrementa il contatore
- aggiorna minuti e secondi
- scrive il valore sul display
MM:SS
💡 Questo metodo è molto più preciso rispetto a usare delay().
🧠 Perché è un progetto importante
Impari concetti fondamentali:
👉 È la base per timer, cronometri e sistemi avanzati.
Impari concetti fondamentali:
- uso del display LCD I2C
- gestione del tempo con millis()
- formattazione dati
- aggiornamento dinamico del display
👉 È la base per timer, cronometri e sistemi avanzati.
🔄 Varianti possibili
Vuoi migliorarlo?
Vuoi migliorarlo?
- ⏳ aggiungi countdown invece di timer
- 🔘 pulsanti start/stop/reset
- 🔔 buzzer a fine tempo
- 📟 mostra ore:minuti:secondi