Show Posts
|
|
Pages: [1]
|
|
1
|
International / Italiano / Re: Aiuto con TimeAlarmExample e ..
|
on: February 04, 2011, 03:44:44 am
|
Ciao e grazie a tutti... con il Vs. aiuto ho capito come fare, ecco il codice "riunito" #include <Time.h> #include <TimeAlarms.h>
int voltaggio = 0; // per la tensione effettiva
void setup() { pinMode (8, OUTPUT); pinMode (13, OUTPUT); Serial.begin(9600); Serial.println("TimeAlarms Example"); Serial.println(); setTime(8,29,57,1,1,10); // imposto l'ora Alarm.alarmRepeat(8,30,0, ON); // accendo il led tutti i gg alle 8.30 Alarm.alarmRepeat(8,30,7,OFF); // Spengo il led alle 8.30.7 sec Alarm.alarmRepeat(8,30,0, lettura); // inizio lettura dal sensore }
void ON() { Serial.println("Alarm: - accendo il led"); digitalWrite (13, HIGH); } void OFF() { Serial.println("Alarm: - spengo il led"); digitalWrite (13, LOW); } void lettura() { voltaggio=analogRead (0); // ottiene la lettura analogica pin 0 Serial.print ("voltaggio:"); Serial.println(analogRead (0));
if (voltaggio >= 930) // questa la potrei modificare con Voltaggio compreso tra.. if (voltaggio <= 960) { Serial.print ("Accendo la luce"); digitalWrite (8, HIGH); delay (5000); Serial.print ("Spengo la luce"); delay (1000); digitalWrite (8, LOW); } }
void loop() { digitalClockDisplay(); Alarm.delay(1000); // wait one second between clock display }
void digitalClockDisplay() { // digital clock display of the time Serial.print(hour()); printDigits(minute()); printDigits(second()); Serial.println(); }
void printDigits(int digits) { // utility function for digital clock display: prints preceding colon and leading 0 Serial.print(":"); if(digits < 10) Serial.print('0'); Serial.print(digits); }
P.S. una cosa strana sul forum, ieri ho postato altri 2 post (reply a questo), ma oggi non ci sono... booo, qualche problema sul nuovo forum??? Comunque ecco, Praticamente è un codice che imposta un Timer giornaliero senza rtc... sono molto soddisfatto per questi primi passi di programmazione. Una domanda "banale" sono bravo con il saldatore, vorrei costruire da solo l'rtc ds1307, su roboitaly se prendo i pz separati spendo poco di meno che prenderlo gia su shield... qualche link per i componenti?? Ancora uno permettemi, vorrei prendere anche un display, con meno pin possibili, magari 20*4, qualche consiglio?? Sempre grazie per l'assistenza, a presto.
|
|
|
|
|
2
|
International / Italiano / Re: Aiuto con TimeAlarmExample e ..
|
on: February 03, 2011, 05:07:59 am
|
Eccomi qui, pian piano mi sembra di fare qualche passo in + ho semplificato al massimo gli sketch.. togliendo le operazioni che non mi servivano.. a questo punto ho inserito nell'1 il setup del 2, ma ho un grosso problema, come faccio a creare una funzione che mi dia il loop 2 e richiamarla nll'1?? Vi posto i 2 sketch: #include <Time.h> #include <TimeAlarms.h>
int voltaggio = 0; // per la tensione effettiva
void setup() { pinMode (8, OUTPUT); pinMode (13, OUTPUT); Serial.begin(9600); Serial.println("TimeAlarms Example"); Serial.println(); setTime(8,29,55,1,1,10); // set time to 8:29:40am Jan 1 2010
Alarm.alarmRepeat(8,30,0, ON); // accendo il led tutti i gg alle 8.30 Alarm.alarmRepeat(8,30,10,OFF); // Spengo il led alle 8.30.10 sec
}
void ON() { Serial.println("Alarm: - accendo il led"); digitalWrite (13, HIGH); } void OFF() { Serial.println("Alarm: - spengo il led"); digitalWrite (13, LOW); }
void loop() { digitalClockDisplay(); Alarm.delay(1000); // wait one second between clock display }
void digitalClockDisplay() { // digital clock display of the time Serial.print(hour()); printDigits(minute()); printDigits(second()); Serial.println(); }
void printDigits(int digits) { // utility function for digital clock display: prints preceding colon and leading 0 Serial.print(":"); if(digits < 10) Serial.print('0'); Serial.print(digits); }
IL secondo int voltaggio = 0; // per la tensione effettiva
void setup () { pinMode (8, OUTPUT); Serial.begin (9600); // aprire la porta seriale per inviare i dati al computer a 9600 bps } void loop () { voltaggio=analogRead (0); // ottiene la lettura analogica pin 0 Serial.print ("voltaggio:"); Serial.println(analogRead (0));
if (voltaggio >= 930) // questa la potrei modificare con Voltaggio compreso tra.. if (voltaggio <= 960) { Serial.print ("Accendo la luce"); digitalWrite (8, HIGH); delay (5000); Serial.print ("Spengo la luce"); delay (1000); digitalWrite (8, LOW); } } Se mi potete aiutare a capire un pochino...Grazie
|
|
|
|
|
4
|
International / Italiano / Re: Aiuto con TimeAlarmExample e ..
|
on: February 02, 2011, 03:21:24 pm
|
|
Grazie mille Lesto, mi hai dato qualche briciolina in più... domani provo a modificare il soft, ricontrollo meglio ed elimino/inserisco le funzioni che non mi servono seguendo le tue istruzioni e grazie per il link, studierò un po', Ma sicuramente avrò bisogno di aiuto
Vi chiedo un'altra cosa, non utilizzando un rtc esterno, le operazioni sono comunque affidabili, perchè tutti usano l'rtc??
Grazie, ciao
|
|
|
|
|
5
|
International / Italiano / Re: Aiuto con TimeAlarmExample e ..
|
on: February 02, 2011, 12:46:40 pm
|
|
Grazie Pitusso, Quindi anche se "sommo" i 2 setup e i 2 loop non funziona, giusto? (beh, però un po di copia/incolla lo faccio comunque)
devo perforza imparare il c++ per farlo?, l'operazione è talmente banale che credevo fosse piu semplice
sto cercando dei tutorial di timer, ma non trovo quelli semplici, senza display e rtc esterno, sapete darmi qualche link o aiutino..
Ciao
|
|
|
|
|
6
|
International / Italiano / Aiuto con TimeAlarmExample e ..
|
on: February 02, 2011, 12:06:25 pm
|
Ciao a tutti. ho 2 sketch funzionanti (incredibile)  1 il time alarm example che accende o spegne un led all'ora che gli imposto (morning alarm).. 2 quest'altro sketch mi legge un impulso da analog0 in millivolt e mi accende/spegne un led al valore che gli imposto io.. Posso mettere insieme i 2 sketch per ricavarne uno che: alle ore xx mi faccia partire il secondo sketch? Alla fine si tratta di un timer, ho guardato in giro, ma tutti usano un rtc esterno, io non ho bisogno di tanta precisione Mi permetto di postarvi i 2 sk.. /* * TimeAlarmExample.pde * * This example calls alarm functions at 8:30 am and at 5:45 pm (17:45) * and simulates turning lights on at night and off in the morning * * A timer is called every 15 seconds * Another timer is called once only after 10 seconds * * At startup the time is set to Jan 1 2010 8:29 am */
#include <Time.h> #include <TimeAlarms.h>
void setup() { pinMode(13, OUTPUT); Serial.begin(9600); Serial.println("TimeAlarms Example"); Serial.println("Alarms are triggered daily at 8:30 am and 17:45 pm"); Serial.println("One timer is triggered every 15 seconds"); Serial.println("Another timer is set to trigger only once after 10 seconds"); Serial.println(); setTime(8,29,55,1,1,10); // set time to 8:29:40am Jan 1 2010
Alarm.alarmRepeat(8,30,0, MorningAlarm); // 8:30am every day Alarm.alarmRepeat(17,45,0,EveningAlarm); // 5:45pm every day Alarm.timerRepeat(15, RepeatTask); // timer for every 15 seconds Alarm.timerOnce(10, OnceOnlyTask); // called once after 10 seconds }
void MorningAlarm() { Serial.println("Alarm: - accendo il led"); digitalWrite (13, HIGH); delay(3000); digitalWrite (13, LOW); delay(3000);
}
void EveningAlarm() { Serial.println("Alarm: - turn lights on"); }
void RepeatTask() { Serial.println("15 second timer"); }
void OnceOnlyTask() { Serial.println("This timer only triggers once"); }
void loop() { digitalClockDisplay(); Alarm.delay(1000); // wait one second between clock display }
void digitalClockDisplay() { // digital clock display of the time Serial.print(hour()); printDigits(minute()); printDigits(second()); Serial.println(); }
void printDigits(int digits) { // utility function for digital clock display: prints preceding colon and leading 0 Serial.print(":"); if(digits < 10) Serial.print('0'); Serial.print(digits); } e l'altro int voltage = 0; // per la tensione effettiva int i = 0; // per i cicli float v2 = 0; // for voltage calculation float v2 = 0; / / per il calcolo della tensione int del = 50; // per i ritardi tra i LED di accensione e spegnimento float v2 = 0; // per il calcolo della tensione
void setup () { for (i=8;i<=12;i++) { pinMode (i, OUTPUT); } Serial.begin (9600); // aprire la porta seriale per inviare i dati al computer a 9600 bps } void loop () { voltage=analogRead (0); // ottiene la lettura analogica pin 0 v2=voltage/102.3; Serial.print ("voltage:"); Serial.println (v2, 2); // turni v2 a due cifre decimali if (voltage <=10) { delay (del); } else if (voltage <= 102) { digitalWrite (8, HIGH); delay (15000); digitalWrite (8, LOW); } } attendo le vostre considerazioni, grazie anticipatamente
|
|
|
|
|
7
|
Forum 2005-2010 (read only) / Italiano / Re: collegamento fai da me a sensore, tramite led di a
|
on: January 20, 2011, 11:03:20 am
|
|
Allora, sono demoralizzato, credevo fosse meno complessa la cosa. comunque il rivelatore funziona "ancora" ma il suo led di allarme no, le saldature sono ok, credo si sia bruciato qualcosa quando ho messo la massa in comune, è possibile? (il rivelatore è alimentato a 6V 300ma). Ora col multimetro, dal led, ho una corrente di 0,03V che ha un impulso di circa 0,5 secondi. Secondo voi con quest'impulso da 0,03V lo posso ancora utilizzare? dove entro in arduino analogico o digitale o vanno bene tutti gli ingressi.
questo sketch (tutoria accendere led con pulsante)come potrei modificarlo?
#define Led 13 // Il Pin del Led #define Pulsante 7 // Il Pin di Input dove è collegato il pulsante int Valore = 0; // Valore servirà per conservare lo stato del Pin di Input int Vecchio_Valore = 0; // Questa variabile conserva il valore precedente di "Valore" int Stato = 0; // 0 = Led spento e 1 = Led acceso
void setup() { pinMode(Led, OUTPUT); // Indica ad Arduino che Led è un Output pinMode(Pulsante, INPUT); // e che Pulsante è un Input } void loop() { Valore = digitalRead(Pulsante); // Legge il valore dell'Input e lo conserva
if ((Valore == HIGH) && (Vecchio_Valore == LOW)) // Controlla se è avvenuta una transizione { Stato = 1 - Stato; }
Vecchio_Valore = Valore; // Memorizza il valore precedente di Valore
if (Stato == 1) { digitalWrite(Led, HIGH); // Accende il Led } else { digitalWrite(Led, LOW); } }
sempre grazie, a presto
|
|
|
|
|
11
|
Forum 2005-2010 (read only) / Italiano / collegamento fai da me a sensore, tramite led di a
|
on: January 20, 2011, 08:42:20 am
|
|
Ciao a tutti...sono nuovo e sono appena capace di far accendere un led da un pulsante....quindi pazienza.
Ho un rivelatore di co2 che mi visualizza la co2 nell'aria, posso impostare, a seconda dei PPM, un allarme sonoro (beep) e anche un led che lampeggia.
La mia "ideona" è quella di prelevare dal polo + del led la corrente, mandarla in un imput di arduino e creare un loop che in out mi accenda una ventola (per adesso mi basterebbe accendere un altro led)
cosa ho gia fatto? ho saldato al + del led del visualizzatore un filo(prima ho misurato la corrente che arriva al led e mi da -0,18 a led spento e +1,8 a led acceso, lo faccio entrare in un imput digitale di arduino e pensavo che utilizzando il tutorial su come accendere un led con pulsante, fosse possibile, ma non funziona, mi potete aiutare?? Grazie a tutti anticipatamente. Ciao ;D
|
|
|
|
|
12
|
Forum 2005-2010 (read only) / Italiano / novizio, consiglio sensori temp, umidità e CO2
|
on: January 17, 2011, 04:49:34 am
|
Ciao a tutti sono nuovo e mi presento Mi chiamo Stefano sono un fabbro. Mi sta arrivando arduino1+breadboard, eseguirò subito i primi tutorial che ho trovato, accendere un led, farlo lampeggiare ecc. appena fatti questi esperimenti, vorrei progettare un controller per serre ed acuario (miei hobby) ed un misuratore automatico per la mia troncatrice (che almeno arrivi a 4000mm con errore di 0.2,mm) Mi sapete consigliare dove acquistare dei "buoni sensori" compatibili con arduino per CO2 umidità e temperatura. Grazie Anticipatamente 
|
|
|
|
|