I dette projekt ser vi på, hvordan man viser tid og dato på en LCD-skærm. Dette projekt kan være meget nyttigt til at lave et vækkeur eller bare et ur. Det eneste, du skal gøre, er at sætte batterier i Arduino-kortet og printe en kasse med en 3d-printer for at få et rigtigt, selvstændigt ur.
Vi vil nu se på den hardware, der kræves til projektet:
Potentiometeret bruges til at justere skærmens lysstyrke. Du kan undvære det ved at tilslutte 5V direkte til den brune ledning, og GND, der går fra potentiometeret til skærmen, kan tilsluttes direkte til Arduino-kortet.
#include <LiquidCrystal.h> // Library for LCD Screen
int time_date[6] = {10, 34, 18, 18, 10, 2022}; //second minute hour day month year
int limits[6] = {60, 60, 24, 31, 12, 3000}; // increment limits
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Initialize the library with the connected pins
void setup() {
lcd.begin(16, 2); // Initialize the LCD with its dimensions
}
void loop() {
time_date[0]++; // time increment
for (int i = 0; i < 6 ; i++){
if (time_date[i] == limits[i]) { // check limit overflow
if (i<5) {time_date[i+1]++;}
time_date[i] = 0;
}
}
lcd.setCursor(0,0); // Position cursor on first line
for (int j = 3; j < 5; j++) { // display date
if (time_date[j]<10){
lcd.print("0");
lcd.print(time_date[j]);
}
else {lcd.print(time_date[j]);}
lcd.print("/");
}
lcd.print(time_date[5]);
lcd.setCursor(0,1); // Position cursor on second line
for (int j = 2; j >= 0; j--) { // display time
if (time_date[j]<10)
{
lcd.print("0");
lcd.print(time_date[j]);
}else {lcd.print(time_date[j]);}
if (j != 0){
lcd.print(":");
}
}
delay(250);
}
Som du kan se på billedet, er startdatoen og -tidspunktet fast og ligger ikke nødvendigvis på den rigtige dag. Du kan derfor selv ændre denne dato i programmet.
Her er linjen, der skal ændres:
int time_date[6] = {10, 34, 18, 18, 10, 2022}; //second, minute, hour, day, month, year
Som du kan se, fortsætter uret og datoen ikke med at blive opdateret, når Arduino-kortet er blevet slukket. Det kan være irriterende, hvis man f.eks. er ved at lave et ur. For at løse dette problem kan du tilføje et rtc-urmodul til projektet (f.eks. DS3231), som beregner tiden, selv når Arduino-boardet er slukket, takket være et batteri, der er uafhængigt af Arduino-boardets strømforsyning.