Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

cambio scena con 1 pulsante centralina giochi di luce

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteMassimoB, Foto Utentexyz, Foto UtenteWALTERmwp

0
voti

[1] cambio scena con 1 pulsante centralina giochi di luce

Messaggioda Foto Utentelga83 » 29 gen 2018, 18:12

salve a tutti, sto realizzando una centralina che mi genera giochi di luce con dei led, ho fatto il programma per il gioco e anche un potenziometro che mi vara la velocità dei del singolo gioco, ora con il pulsante quando premuto voglio far cambiare gioco di luce il problema e che per cambiare lo devo tenere premuto a lungo e a me non piace, posto lo sketch mi potete indicare dove sbaglio, grazie anticipatamente..

Codice: Seleziona tutto
int puls=12;
int val=0;
int contatore=0;
int i = 0;


void setup () {
DDRD=B11111111;
pinMode(puls,INPUT);
}

void loop () {
val=digitalRead(puls);
if (val==1){
contatore=contatore +1;

}


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));


}


for (i = 0; i < 5; i++)
if (contatore==2) {
PORTD = B11111111;
delay(analogRead(0));
PORTD = B11111111;
delay(analogRead(0));
PORTD = B11111111;
delay(analogRead(0));
PORTD = B11111111;
delay(analogRead(0));
PORTD = B11111111;
delay(analogRead(0));
PORTD = B11111111;
delay(analogRead(0));
}
if (contatore==3) {
contatore=0;


}
Avatar utente
Foto Utentelga83
0 1 5
Frequentatore
Frequentatore
 
Messaggi: 149
Iscritto il: 19 gen 2007, 22:53

0
voti

[2] Re: cambio scena con 1 pulsante centralina giochi di luce

Messaggioda Foto UtenteWALTERmwp » 29 gen 2018, 22:15

Ciao @lga83, mi pare che gli statement del for siano privi di parentesi graffa, perché ?
E' corretta la sintassi ?
Codice: Seleziona tutto
(...)
for (i = 0; i < 5; i++)  <--- qui ?
if (contatore==1) {
(...)

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
20,9k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 5874
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[3] Re: cambio scena con 1 pulsante centralina giochi di luce

Messaggioda Foto Utentelga83 » 29 gen 2018, 22:23

Si e giusta perché funziona il gioco di luce, solo che quando vado a premere il pulsante per cambiare gioco lo devo tenere prempremuto un paio secondi, non capisco dove sbaglio..
Avatar utente
Foto Utentelga83
0 1 5
Frequentatore
Frequentatore
 
Messaggi: 149
Iscritto il: 19 gen 2007, 22:53

0
voti

[4] Re: cambio scena con 1 pulsante centralina giochi di luce

Messaggioda Foto UtenteWALTERmwp » 29 gen 2018, 22:28

lga83 ha scritto:Si e giusta (...)
e allora qual è il senso di quei for ?
Messi in quel modo mi pare non servano a nulla.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
20,9k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 5874
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[5] Re: cambio scena con 1 pulsante centralina giochi di luce

Messaggioda Foto Utentelga83 » 29 gen 2018, 22:46

Il for mi serve per far ripetere piu volte il gioco di luce
Avatar utente
Foto Utentelga83
0 1 5
Frequentatore
Frequentatore
 
Messaggi: 149
Iscritto il: 19 gen 2007, 22:53

0
voti

[6] Re: cambio scena con 1 pulsante centralina giochi di luce

Messaggioda Foto UtenteWALTERmwp » 29 gen 2018, 22:49

Io non me la ricordo, mi sapresti scrivere qual è la sintassi del for ?
Grazie.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
20,9k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 5874
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[7] Re: cambio scena con 1 pulsante centralina giochi di luce

Messaggioda Foto Utentelga83 » 29 gen 2018, 22:58

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
Avatar utente
Foto Utentelga83
0 1 5
Frequentatore
Frequentatore
 
Messaggi: 149
Iscritto il: 19 gen 2007, 22:53

0
voti

[8] Re: cambio scena con 1 pulsante centralina giochi di luce

Messaggioda Foto Utenteelfo » 29 gen 2018, 23:37

Il motivo e' spiegato nei commenti del codice (ho "potato" il listato, lasciando solo la struttura principale).

La soluzione,a mio avviso, sarebbe preferibile che la trovassi autonomamente studiando un po' di programmazione
Codice: Seleziona tutto
void loop () {
val=digitalRead(puls); // Leggo il pulsante
if (val==1){
contatore=contatore +1;
}


for (i = 0; i < 5; i++) // il programma e' "cieco" (o sordo - se preferisci) per tutte le istruzioni che seguono
if (contatore==1) {  // compresi i ritardi - il tutto per i 5 cicli del "for"
[cut]                      // cioe' legge il pulsante solo "ogni tanto"
}

for (i = 0; i < 5; i++)
if (contatore==2)
[cut]
}

if (contatore==3) {
contatore=0;


}
Avatar utente
Foto Utenteelfo
1.934 1 3 7
Expert EY
Expert EY
 
Messaggi: 733
Iscritto il: 15 lug 2016, 13:27

0
voti

[9] Re: cambio scena con 1 pulsante centralina giochi di luce

Messaggioda Foto Utentelga83 » 29 gen 2018, 23:57

Grazie, ho capito adesso vedo di studiare un po almeno vediamo se.ci riesco da solo, comunque. Grazie tanto per i consigli.. buona serata!
Avatar utente
Foto Utentelga83
0 1 5
Frequentatore
Frequentatore
 
Messaggi: 149
Iscritto il: 19 gen 2007, 22:53

0
voti

[10] Re: cambio scena con 1 pulsante centralina giochi di luce

Messaggioda Foto UtenteMassimoB » 30 gen 2018, 0:17

A parte studiare un po' che non fa male e ti darà sicuramente soddisfazioni nel vedere i tuoi sforzi trasformati in risultati, ti consiglio di prendere l'abitudine di identare il codice in modo da essere più chiaro a te e a chi leggerà il codice.
MCSA Windows Server 2012 R2 - Comptia A+
Avatar utente
Foto UtenteMassimoB
13,4k 6 12 13
Expert free
 
Messaggi: 2916
Iscritto il: 28 ott 2012, 9:56
Località: Milano

Prossimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti