tag:blogger.com,1999:blog-27734211140266558502024-03-13T12:11:58.820+01:00Arduino Tutorialslorigiohttp://www.blogger.com/profile/05791961644982979599noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-2773421114026655850.post-88937731290885417292010-12-22T12:11:00.001+01:002010-12-22T12:27:08.315+01:00OrologioEcco come realizzare un'orologio con Arduino senza usare nessun RTC(Real Time Clock) ovviamente la prima volta dovrà essere settato e dovrà restare alimentato come tutti gli orologi normali.<br />
<br />
Avete bisogno di:<br />
1x LCD Hitachi HD44780<br />
2x Bottoni<br />
<br />
Dopo aver montato l'LCD, bottoni e aver effettuato i collegamenti uploadate lo sketch in Arduino.<br />
<br />
Dopodichè seguite le istruzioni sul Display.<br />
<br />
Funzioni:<br />
Primo bottone: Aumenta il valore<br />
Secondo bottone: Sceglie tra Ore,Minuti e conferma.<br />
<br />
<div><pre class="alt2" dir="ltr" style="border: 1px inset; height: 300px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 500px;">#include <LiquidCrystal.h>
#include <Button.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Button buttonadd = Button(6,PULLDOWN);
Button buttonconf = Button(7,PULLDOWN);
int h = 0;
int m = 0;
int s = 0;
int step = 0;
void setup() {
lcd.begin(16, 2);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
lcd.print("Imposta l'ora");
makestring();
}
void loop() {
if (buttonadd.uniquePress()){
if (step ==0){
if (h == 23)
{
h=0;
}
else
{
h++;
}
lcd.clear();
lcd.print("Imposta l'ora");
makestring();
}
if (step ==1){
if (m == 59)
{
m=0;
}
else
{
m++;
}
lcd.clear();
lcd.print("Imposta i min");
makestring();
}
}
if (buttonconf.uniquePress()){
if (step ==1){
step++;
}
if (step ==0){
step++;
lcd.clear();
lcd.print("Imposta i min");
makestring();
}
}
if (step == 2)
{
startTimeEngine();
}
}
void startTimeEngine() {
lcd.clear();
lcd.print("Orologio");
if (s == 59){
m++;
s = 0;
}
else
{
s++;
}
if (m == 60){
h+=1;
m = 0;
}
if (h == 24){
h=0;
}
makestring();
delay(1000);
}
void makestring() {
lcd.setCursor(0,1);
if (h<10){
lcd.print("0");
lcd.print(h);
}
else
{
lcd.print(h);
}
lcd.print(":");
if (m<10){
lcd.print("0");
lcd.print(m);
}
else
{
lcd.print(m);
}
lcd.print(":");
if (s<10){
lcd.print("0");
lcd.print(s);
}
else
{
lcd.print(s);
}
}
</pre></div>lorigiohttp://www.blogger.com/profile/05791961644982979599noreply@blogger.com3tag:blogger.com,1999:blog-2773421114026655850.post-29222771761997262302010-12-22T10:26:00.014+01:002010-12-22T12:31:07.619+01:00Countdown su LCD<span class="Apple-style-span" style="color: #cccccc;"><span class="Apple-style-span"><span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 11px;">Sostituisci tutti i 5000 con i secondi desiderati e modifica 250 per il</span><span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 11px;"> </span><span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 11px;">refresh</span><span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 11px;"> </span></span><span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 11px;"><span class="Apple-style-span">dell'lcd tipo con 250 vedrai apparire 4750,4500 ecc</span></span></span><br />
<span class="Apple-style-span" style="color: #333333; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 11px;"><br />
</span><br />
<div><pre class="alt2" dir="ltr" style="border: 1px inset; height: 300px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 500px;">#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("Countdown");
pinMode(7,OUTPUT);
digitalWrite(7,HIGH);
}
int ms = 5000;
int refreshms = 250;
int restart = 0;
void loop() {
if (restart== 0){
for (int i = 1; i <= 5000 / refreshms ; i++){
lcd.clear();
lcd.print("Countdown");
lcd.setCursor(0, 1);
ms -= refreshms;
lcd.print(ms);
delay(refreshms);
if (i == 5000 / refreshms)
{
//operazioni da eseguire alla fine del countdown
ms = 5000;
restart = 1;// mettere 0 se si vuole far ripartire il countdown quando finisce
}
}
}
}
</pre></div>lorigiohttp://www.blogger.com/profile/05791961644982979599noreply@blogger.com1