Categories:

Data e ora – codice in C

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

LiquidCrystal_I2C lcd (0x27, 16, 2);

#define button 8
#define button1 9

//variabili per orario
int h=11; //ore
int m=30;//minuti
int s=0;//secondi
//variabili per data
int gg=1; //giorni
int mm=1; //mesi
int aaaa=2005; //anni
bool giorni=false;
//variabili utili al controllo del pulsante collegato al pin 8
int val = 0;
int vecchio_val = 0;
int stato = 0;
//variabili utili al controllo del pulsante collegato al pin 9
int val1= 0;
int vecchio_val1= 0;
int stato1= 0;

void setup() {
lcd.begin();
pinMode(button, INPUT);
pinMode(button1, INPUT);
}

void loop() {
//controllo bottoni
val = digitalRead(button);
if ((val == HIGH) && (vecchio_val == LOW)){
stato = 1 – stato;
delay(15);
}
vecchio_val = val;
if (stato == 1) {
m++;
}

val1= digitalRead(button1);
if ((val1== HIGH) && (vecchio_val1== LOW)){
stato1= 1 – stato1;
delay(15);
}
vecchio_val1= val1;
if (stato1== 1) {
gg++;
}

giorni=false;
//stampa orario
lcd.setCursor(4,0);
s=s+1;
//stampa ore
if (h<10) {
lcd.print(“0”);
lcd.print(h);
} else if (h==0) {
lcd.print(“00”);
} else {
lcd.print(h);
}
lcd.print(“:”);
//stampa minuti
if (m<10) {
lcd.print(“0”);
lcd.print(m);
} else if (m==0) {
lcd.print(“00”);
} else {
lcd.print(m);
}
lcd.print(“:”);
//stampa secondi
if (s<10) {
lcd.print(“0”);
lcd.print(s);
} else if (s==0) {
lcd.print(“00”);
} else {
lcd.print(s);
}
//data
lcd.setCursor(3, 1);
//stampa giorni
if (gg<10) {
lcd.print(“0”);
lcd.print(gg);
} else if (gg==0) {
lcd.print(“00”);
} else {
lcd.print(gg);
}
lcd.print(“/”);
//stampa minuti
if (mm<10) {
lcd.print(“0”);
lcd.print(mm);
} else if (mm==0) {
lcd.print(“00”);
} else {
lcd.print(mm);
}
lcd.print(“/”);
//stampa anni
if (aaaa<10) {
lcd.print(“0”);
lcd.print(aaaa);
} else if (aaaa==0) {
lcd.print(“00”);
} else {
lcd.print(aaaa);
}

delay(1000);
lcd.clear();
//controllo ore
if (h==23&&m==59&&s==59){
s=0;
m=0;
h=0;
giorni=true;
}
//controllo secondi
if (s==59) {
s=0;
m++;
}
//controllo minuti
if (m==60){
m=0;
h++;
}
//controllo giorni
if (giorni==true) {
gg++;
}

//controllo mesi
if (gg==31) {
mm++;
gg=1;
}
//controllo anni
if (mm==13){
gg=1;
mm=1;
aaaa++;
}
}

Scarica codice

Per poter utilizzare il display LCD, è necessario integrare la libreria “LiquidCrystal”, di seguito disponibile per il download:


Tags: