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