Salve a tutti!
Scrivo questo thread per chiederevi dei suggerimenti in merito al mio progetto, ovvero un "orologio digitale".
Avrei in mente di aggiungere una sveglia o la data, ma purtroppo ci ho provato in molti modi, con esiti negativi. Qui di seguito lascio il codice, in modo tale che possiate quanto meno suggerirmi o darmi una mano
/*********Orologio digitale***********/
/*Progetto di dominio pubblico*/
/*Liberamente copiabile e modificabile*/
/********Written by Frarduino99********/
#include <LCD.h>
#include <LiquidCrystal.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //impostazione indirizzo del display e pin del display LCD
int sec,mins,ora;
char buf1[17];
int val1=0, val2=0;
int puls1=2, puls2=3;
void setup() {
lcd.begin(16,2); //Start the LCD I2C 16x2
pinMode(puls1, INPUT);
pinMode(puls2, INPUT);
}
void loop(){
lcd.clear();
for(ora=0; ora<24; ora++)
for(mins=0; mins<60; mins++)
for(sec=0; sec<60; sec++)
{
val1 = digitalRead(puls1);
val2 = digitalRead(puls2);
//Settaggio ora tramite apposito pulsante
if(val1==1){
lcd.clear();
sprintf(buf1, " %02d:%02d:%02d",ora++,mins,sec);
lcd.print(buf1);
lcd.setCursor(1,1);
lcd.print("HAVE A NICE DAY");
delay(100);}
//Controllo ora
if(ora > 23){
ora = 0;
lcd.clear();
sprintf(buf1, " %02d:%02d:%02d",0,mins,sec);
lcd.print(buf1);
lcd.setCursor(1,1);
lcd.print("HAVE A NICE DAY");
delay(100);}
//Settaggio minuti tramite apposito pulsante
if(val2==1){
lcd.clear();
sprintf(buf1, " %02d:%02d:%02d",ora,mins++,sec);
lcd.print(buf1);
lcd.setCursor(1,1);
lcd.print("HAVE A NICE DAY");
delay(100);}
//Controllo su i minuti
if(mins > 59){
mins = 0;
lcd.clear();
sprintf(buf1, " %02d:%02d:%02d",ora++,0,sec);
lcd.print(buf1);
lcd.setCursor(1,1);
lcd.print("HAVE A NICE DAY");
delay(100);}
//Mostra l'orario finale su schermo LCD
lcd.setCursor(0, 0);
sprintf(buf1, " %02d:%02d:%02d",ora,mins,sec);
lcd.print(buf1);
lcd.setCursor(1,1);
lcd.print("HAVE A NICE DAY");
delay(1000); //Scorrere dei secondi
}
}
I componenti utilizzati sono:
-Scheda arduino UNO
-Schermo LCD interfaccia I2C 16x2
-2 pulsanti
-2 resistenze da 10k ohm
-cavettatura varia