🚀 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
🛒 Non hai ancora i componenti?
Molti dei progetti presenti su progettiarduino.com utilizzano componenti elettronici di base come LED, resistenze, sensori e breadboard.
Se stai iniziando con Arduino, il modo più semplice è utilizzare un kit completo per principianti, che include quasi tutti i componenti necessari per realizzare molti dei progetti presenti sul sito.
👉 Kit Arduino consigliato:
ℹ️ Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
https://amzn.to/4b3dxjW
📘 Vuoi imparare Arduino passo dopo passo?
Se vuoi approfondire e realizzare progetti più completi, puoi dare un'occhiata anche ai miei libri dedicati ad Arduino.
All'interno troverai spiegazioni semplici, schemi chiari e molti progetti pratici pensati per chi parte da zero.
👉 Scopri i miei libri su Arduino:
ℹ️ Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
https://amzn.to/4rfzjXE
Molti dei progetti presenti su progettiarduino.com utilizzano componenti elettronici di base come LED, resistenze, sensori e breadboard.
Se stai iniziando con Arduino, il modo più semplice è utilizzare un kit completo per principianti, che include quasi tutti i componenti necessari per realizzare molti dei progetti presenti sul sito.
👉 Kit Arduino consigliato:
ℹ️ Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
https://amzn.to/4b3dxjW
📘 Vuoi imparare Arduino passo dopo passo?
Se vuoi approfondire e realizzare progetti più completi, puoi dare un'occhiata anche ai miei libri dedicati ad Arduino.
All'interno troverai spiegazioni semplici, schemi chiari e molti progetti pratici pensati per chi parte da zero.
👉 Scopri i miei libri su Arduino:
ℹ️ Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
https://amzn.to/4rfzjXE
📚 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