problema con due comandi all interno di uno sketch
ciao tutti
sto avendo un problema con uno sketch, visto che sono alle prime armi con la programmazione di arduino. ho intenzione di creare una sorta di stereo/sveglia con arduino nella quale ho inserito: un vu meter (sempre fatto con arduino) , un rtc e un display lcd. il problema sorge quando visualizzo l' orario sul display led del vu meter non funzionano perche c'è il delay di un secondo dell orario. poi ora capirete meglio osservando lo sketch che segue.
#include <liquidcrystal.h>
#include <ds1307.h>
ds1307 rtc(sda, scl); // init ds1307
liquidcrystal lcd(11, 10, 9, 8, 7, 6);
int vm = 13 ;
int s = 0 ;
int audioin = a1;
void setup()
{
rtc.begin();
rtc.halt(false);
lcd.begin(16, 2);
// following lines can commented out use values stored in ds1307
//rtc.setdow(sunday); // set day-of-week sunday
//rtc.settime(12, 0, 0); // set time 12:00:00 (24hr format)
// rtc.setdate(3, 10, 2010); // set date october 3th, 2010
rtc.setsqwrate(sqw_rate_1); // set sqw/out rate 1hz, , enable sqw
rtc.enablesqw(true);
pinmode (1, input);
pinmode (13, output);
pinmode (12, output);
pinmode (11, output);
pinmode (10, output);
pinmode (9, output);
pinmode (8, output);
pinmode (7, output);
pinmode (6, output);
}
void loop(){
lcd.setcursor(4, 0);
lcd.print(rtc.gettimestr());
lcd.setcursor(0, 1);
lcd.print(rtc.getdowstr(format_short));
lcd.setcursor(6, 1);
lcd.print(rtc.getdatestr(format_short));
delay (1000);
s = analogread(audioin);
if ( (vm *1) <s) {digitalwrite (13 ,high);} else {digitalwrite (13 ,low);}
if ( (vm *2) <s) {digitalwrite (12 ,high);} else {digitalwrite (12 ,low);}
if ( (vm *3) <s) {digitalwrite (11 ,high);} else {digitalwrite (11 ,low);}
if ( (vm *4) <s) {digitalwrite (10 ,high);} else {digitalwrite (10 ,low);}
if ( (vm *5) <s) {digitalwrite (9 ,high);} else {digitalwrite (9 ,low);}
if ( (vm *6) <s) {digitalwrite (8 ,high);} else {digitalwrite (8 ,low);}
if ( (vm *7) <s) {digitalwrite (7 ,high);} else {digitalwrite (7 ,low);}
if ( (vm *
<s) {digitalwrite (6 ,high);} else {digitalwrite (6 ,low);}
}
chiedo quindi di aiutarmi risolvere questo problema cercando un alternativa
grazie mille
sto avendo un problema con uno sketch, visto che sono alle prime armi con la programmazione di arduino. ho intenzione di creare una sorta di stereo/sveglia con arduino nella quale ho inserito: un vu meter (sempre fatto con arduino) , un rtc e un display lcd. il problema sorge quando visualizzo l' orario sul display led del vu meter non funzionano perche c'è il delay di un secondo dell orario. poi ora capirete meglio osservando lo sketch che segue.
#include <liquidcrystal.h>
#include <ds1307.h>
ds1307 rtc(sda, scl); // init ds1307
liquidcrystal lcd(11, 10, 9, 8, 7, 6);
int vm = 13 ;
int s = 0 ;
int audioin = a1;
void setup()
{
rtc.begin();
rtc.halt(false);
lcd.begin(16, 2);
// following lines can commented out use values stored in ds1307
//rtc.setdow(sunday); // set day-of-week sunday
//rtc.settime(12, 0, 0); // set time 12:00:00 (24hr format)
// rtc.setdate(3, 10, 2010); // set date october 3th, 2010
rtc.setsqwrate(sqw_rate_1); // set sqw/out rate 1hz, , enable sqw
rtc.enablesqw(true);
pinmode (1, input);
pinmode (13, output);
pinmode (12, output);
pinmode (11, output);
pinmode (10, output);
pinmode (9, output);
pinmode (8, output);
pinmode (7, output);
pinmode (6, output);
}
void loop(){
lcd.setcursor(4, 0);
lcd.print(rtc.gettimestr());
lcd.setcursor(0, 1);
lcd.print(rtc.getdowstr(format_short));
lcd.setcursor(6, 1);
lcd.print(rtc.getdatestr(format_short));
delay (1000);
s = analogread(audioin);
if ( (vm *1) <s) {digitalwrite (13 ,high);} else {digitalwrite (13 ,low);}
if ( (vm *2) <s) {digitalwrite (12 ,high);} else {digitalwrite (12 ,low);}
if ( (vm *3) <s) {digitalwrite (11 ,high);} else {digitalwrite (11 ,low);}
if ( (vm *4) <s) {digitalwrite (10 ,high);} else {digitalwrite (10 ,low);}
if ( (vm *5) <s) {digitalwrite (9 ,high);} else {digitalwrite (9 ,low);}
if ( (vm *6) <s) {digitalwrite (8 ,high);} else {digitalwrite (8 ,low);}
if ( (vm *7) <s) {digitalwrite (7 ,high);} else {digitalwrite (7 ,low);}
if ( (vm *

}
chiedo quindi di aiutarmi risolvere questo problema cercando un alternativa
grazie mille
buongiorno,
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti qui (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato regolamento ...
... poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (in basso destra del post, bottone more -> modify) e racchiudere il codice all'interno dei tag code (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto sinistra).
grazie,
guglielmo
p.s.: ... se rileggi il tuo post, ti accorgi di cosa succede al codice quando viene messo senza tag "code" ... alcune sequenze vengono interpretate come "emoticons" e rendono poco comprensible il tutto.
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti qui (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato regolamento ...
... poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (in basso destra del post, bottone more -> modify) e racchiudere il codice all'interno dei tag code (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto sinistra).
grazie,
guglielmo
p.s.: ... se rileggi il tuo post, ti accorgi di cosa succede al codice quando viene messo senza tag "code" ... alcune sequenze vengono interpretate come "emoticons" e rendono poco comprensible il tutto.
Arduino Forum > International > Italiano > Software (Moderator: leo72) > problema con due comandi all interno di uno sketch
arduino
Comments
Post a Comment