Go Down

Topic: Uso della funzione for abinata al timer (Read 731 times) previous topic - next topic

willy72

Salve a tutti, è il mio primo post ,quindi abbiate pazienza !
Vengo subito al dunque :
Se io volessi far lampeggiare un led per 10 volte,quando si verifica una condizione legata allo scoccare di un determinato secondo , come dovrei fare ???

una parte del programma che ho usato è la seguente :

if ((12==rtc.getHours()) && (0<=rtc.getMinutes()) && (5==rtc.getSeconds())) {

  for(int i=0; i<10; i++)
 
  digitalWrite(led, HIGH);
  delay(100);
  digitalWrite(led, LOW);
  delay(300);

}

Però non funziona correttamente , penso perchè la condizione è vera solo in quel determinato secondo ! , e il ciclo " for " si blocca perchè il secondo è passato.
Ma dove sbaglio !
Premetto che non sono pratico di programmazione, quindi probabilmente per voi la cosa è ovvia !
Ringrazio anticipatamente chi mi aiuterà.



leo72

Cos'è che vuoi fare, una specie di allarme?
Perché confronti con l'uguaglianza (==) le ore ed i secondi mentre con minore o uguale (<=) i minuti?

willy72

Ciao Leo72

ho impostato il simbolo > o < al posto del == solo perchè volevo che la condizione si ripetesse a tutti i minuti al secondo 5

Si volevo creare un allarme ! che ad un determinato secondo di ogni minuto mi facesse lampeggiare un led per tot volte. In realtà non mi serve a niente , è solo una curiosità mia che non riesco a soddisfare.

Se tu hai una soluzione più pratica , gradirei la postassi !
grazie ciao

leo72

Basta levare il controllo sui minuti:

Code: [Select]
if ((rtc.getHours() == 12) && (rtc.getSeconds() == 5)) {
  for(int i=0; i<10; i++) {
    digitalWrite(led, HIGH);
    delay(100);
    digitalWrite(led, LOW);
    delay(300);
  }
}

A tutti i "5" secondi della 12a ora, ti partirà l'allarme.

ale92

#4
Oct 12, 2012, 03:33 pm Last Edit: Oct 12, 2012, 03:36 pm by ale92 Reason: 1
veramente nel primo programma non ci sono le graffe nel for...per questo ti si bloccava, e poi come ha detto leo visto che lo devi fare tutti i minuti non serve il controllo per quest'ultimi

willy72

Grazie ragazzi , il problema era proprio la mancanza della graffa ! son tre giorni che cercavo la soluzione !

grazie ancora

problema risolto !

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy