Go Down

Topic: [risolto] Led RGB arcobaleno (Read 1 time) previous topic - next topic

Iz2rpn

Jul 04, 2012, 08:50 pm Last Edit: Jul 04, 2012, 09:57 pm by iz2rpn Reason: 1
allora sto cercando di creare l'arcobaleno ma non riesco a capire dove sbaglio, il codice me lo da giusto ma il led non si accende

grazie

Pietro


Code: [Select]
int redpin = 11;    //abbiniamo i pin ai colori
int greenpin = 9;      //da verificare con le specifiche
int blupin = 10;      //del led RGB
int vel=50;         //la velocità di transazione
int passo=1;        //il passo del ciclo di incremento

void setup() {
pinMode(redpin, OUTPUT);
pinMode(greenpin, OUTPUT);
pinMode(blupin, OUTPUT);

}


void loop() {
 for (int L=0;L<256;L+passo) {  // iniziamo con il led rosso
analogWrite(redpin,L);
delay(vel);
}  
for (int L=0;L<256;L+passo) {  // da rosso a verde
 analogWrite(redpin,255-L);
 analogWrite(greenpin,L);
delay(vel);
}

 for (int L=0;L<256;L+passo) {  // da verde a blu
 analogWrite(greenpin,255-L);
 analogWrite(blupin,L);
delay(vel);
}
for (int L=0;L<256;L+passo) {  // da rosso a verde
 analogWrite(blupin,255-L);
 analogWrite(redpin,L);
delay(vel);
}
}

Iz2rpn

ho risolto cambiando questo: 

Code: [Select]
for (int L=0;L<256;L++)   

funziona ma non come dico io

Pietro

tonid

ciao Pietro,il problema sta quì
Code: [Select]
void loop() {
  for (int L=0;L<256;L+passo) {  // iniziamo con il led rosso
analogWrite(redpin,L);
delay(vel);


nel ciclo for inizializzi la variabile int L =0; poi dici che deve essere minore di 256 (quindi 255) ; poi devi scrivere L=L+passo che si può scrivere anche L+=passo.
prova e dimmi   :)

superlol


ho risolto cambiando questo: 

Code: [Select]
for (int L=0;L<256;L++)   

funziona ma non come dico io

Pietro

in caso al posto di L+passo dovresti scrivere
Code: [Select]
L += passo
che è uguale a scrivere
Code: [Select]
L = L+passo

perchè tu vai ad assegnare un nuovo valore alla variabile ogni ciclo quindi deve essere un'assegnazione.
scrivere
Code: [Select]
L++
equivale a scrivere
Code: [Select]
L += 1
che è uguale a
Code: [Select]
L = L+1
quindi è un'assegnazione  :P

EDIT: preceduto :D
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Iz2rpn

http://www.ustream.tv/channel/iz2rpn in diretta

ora funziona con

Code: [Select]
L++

Iz2rpn

Code: [Select]
for (int L=0;L<256;L+=passo) {  // iniziamo con il led rosso
analogWrite(redpin,L);
delay(vel);
}   


ora funziona cosi grazie ma mi spiegate meglio perchè?

toti94

Funziona con L++ perchè L++ è la forma contratta di L=L+1 quindi l'unico errore che facevi era "L+passo" che dovevi cambiare con "L=L+passo" oppure "L+=passo" che si equivalgono :)

Iz2rpn

strano che nn mi dava errore cmq ora ho capito grazie per l'aiuto

codice corretto per chi vuole cimentarsi:


Code: [Select]
int redpin = 11;    //abbiniamo i pin ai colori
int greenpin = 9;      //da verificare con le specifiche
int blupin = 10;      //del led RGB
int vel=50;         //la velocità di transazione
int passo=1;  //il passo del ciclo di incremento


void setup() {
pinMode(redpin, OUTPUT);
pinMode(greenpin, OUTPUT);
pinMode(blupin, OUTPUT);

}


void loop() {
  for (int L=0;L<256;L+=passo) {  // iniziamo con il led rosso
analogWrite(redpin,L);
delay(vel);
}   
for (int L=0;L<256;L+=passo) {  // da rosso a verde
  analogWrite(redpin,255-L);
  analogWrite(greenpin,L);
delay(vel);
}

  for (int L=0;L<256;L+=passo) {  // da verde a blu
  analogWrite(greenpin,255-L);
  analogWrite(blupin,L);
delay(vel);
}
for (int L=0;L<256;L+=passo) {  // da rosso a verde
  analogWrite(blupin,255-L);
  analogWrite(redpin,L);
delay(vel);
}
}


toti94

perchè in effetti non c'è niente di errato, le due variabili le conosce e conosce anche la somma di errato c'era solo la sintassi... cmq bel lavoro

Iz2rpn


perchè in effetti non c'è niente di errato, le due variabili le conosce e conosce anche la somma di errato c'era solo la sintassi... cmq bel lavoro


Grazie ma ammetto che non è tutta farina del mio sacco sono un complesso di codici presi sia qui nel forum che nel libro dei primi passi, quindi un buon lavoro lo abbiamo fatto insieme :)

tutto questo mi servirà per creare una lampada per la mia ragazza che gli è piaciuto questo componente, ma mi sa che me la faccio pure io sta lampada.

Iz2rpn

http://www.youtube.com/watch?v=G-5FQhRQS8M&feature=youtu.be&a

risultato finale :)

tonid

Non parlare di farina che sono panettiere e mi ricordi in qualche modo che è quasi ora di andare a lavorare  =(
Tornando a noi è bella l'idea di una lampada o di una specie di retro cornice di un quadro che illumina la parete  :smiley-mr-green:

Iz2rpn

vi terrò aggiornati io sveglia per le 5 notte e ancora grazie :)

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