lga83 ha scritto:... io vado per concetto guardando altri programmi simili già fatti ...
cambio scena con 1 pulsante centralina giochi di luce
16 messaggi
• Pagina 2 di 2 • 1, 2
0
voti
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
se c'è interesse, meglio.lga83 ha scritto:Guarda non sono uno esperto di programmazione arduino adesso non riesco a spiegarti la sintesi, io vado per concetto guardando altri programmi simili già fatti e cercare di capire come funzionano
Il ciclo for ripete le istruzioni contenute all'interno delle sue parentesi graffe, tante volte fino a che la variabile utilizzata per controllare il ciclo stesso(in tal caso la i ) non raggiunge il limite, in tal caso fissato a 5.
La variabile i, ogni volta che il programma esegue la riga dove è scritta l'istruzione for, viene incrementata di 1 (questo incremento è dovuto al fatto che c'è scritto: i++).
Nel tuo programma, però, il ciclo for è privo delle sue parentesi graffe, infatti tu lo hai scritto così:
- Codice: Seleziona tutto
(...)
for (i = 0; i < 5; i++)
if (contatore==1) {
PORTD = B10000001;
delay(analogRead(0));
PORTD = B11000011;
delay(analogRead(0));
PORTD = B10100101;
delay(analogRead(0));
PORTD = B10011001;
delay(analogRead(0));
PORTD = B10100101;
delay(analogRead(0));
PORTD = B11000011;
delay(analogRead(0));
}
(...)
mentre invece potrebbe essere scritto così:
- Codice: Seleziona tutto
(...)
for (i = 0; i < 5; i++) {
if (contatore==1) {
PORTD = B10000001;
delay(analogRead(0));
PORTD = B11000011;
delay(analogRead(0));
PORTD = B10100101;
delay(analogRead(0));
PORTD = B10011001;
delay(analogRead(0));
PORTD = B10100101;
delay(analogRead(0));
PORTD = B11000011;
delay(analogRead(0));
}
}
riesci a vedere che c'è una coppia di parentesi graffe in più ?
Prova intanto ad applicare questa modifica e verifica il comportamento del tuo gioco di luci (andrebbe riportata per entrambi i cicli for).
Oltre a ciò, potresti provare a sostituire il numero 5 con un altro numero, per esempio 127.
Non so se è un buon sistema, ma può essere un modo per rendersi conto di quello che succede introducendo delle variazioni.
Dopo, magari, si può anche pensare a come gestire il pulsante che ti permette di cambiare "l'effetto luci".
Saluti
W - U.H.F.
-

WALTERmwp
30,2k 4 8 13 - G.Master EY

- Messaggi: 8990
- Iscritto il: 17 lug 2010, 18:42
- Località: le 4 del mattino
1
voti
Prima di proseguire con queste prove che non porteranno a niente, trova un libro o pdf o tutorial sulla programmazione in C, studi il linguaggio (per quello che ti serve ci metti poco tempo), e poi vedrai che la soluzione la troverai tu molto facilmente.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
quello che ti ho suggerito non è e non può essere risolutivo del tuo inconveniente, infatti, la gestione del rilevamento dello stato del pulsante (o interruttore) è altra cosa.lga83 ha scritto:ho messo le graffe come hai detto e spiegato perfettamente tu, ma il risultato non cambia sempre lo stesso gioco di luce ma nessun cambiaento..
Considerato che, forse, non hai ben chiaro come si comporta il codice che hai utilizzato, ho pensato di procedere come ho fatto.
Hai modificato anche il valore di comparazione ?
Saluti
W - U.H.F.
-

WALTERmwp
30,2k 4 8 13 - G.Master EY

- Messaggi: 8990
- Iscritto il: 17 lug 2010, 18:42
- Località: le 4 del mattino
16 messaggi
• Pagina 2 di 2 • 1, 2
Chi c’è in linea
Visitano il forum: Nessuno e 12 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
