Pages: [1]   Go Down
Author Topic: Uso della funzione for abinata al timer  (Read 577 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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à.


Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 327
Posts: 22640
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged


Offline Offline
Newbie
*
Karma: 1
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 327
Posts: 22640
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Basta levare il controllo sui minuti:

Code:
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.
Logged


Offline Offline
Jr. Member
**
Karma: 2
Posts: 98
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: October 12, 2012, 08:36:15 am by ale92 » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

grazie ancora

problema risolto !
Logged

Pages: [1]   Go Up
Jump to: