Pages: [1]   Go Down
Author Topic: [risolto] Led RGB arcobaleno  (Read 910 times)
0 Members and 1 Guest are viewing this topic.
Varese
Offline Offline
God Member
*****
Karma: 8
Posts: 585
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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);
}
}
« Last Edit: July 04, 2012, 02:57:56 pm by iz2rpn » Logged

Varese
Offline Offline
God Member
*****
Karma: 8
Posts: 585
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ho risolto cambiando questo: 

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

funziona ma non come dico io

Pietro
Logged

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao Pietro,il problema sta quì
Code:
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   smiley
Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ho risolto cambiando questo: 

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

funziona ma non come dico io

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

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

EDIT: preceduto smiley-grin
Logged

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

Varese
Offline Offline
God Member
*****
Karma: 8
Posts: 585
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

ora funziona con

Code:
L++
Logged

Varese
Offline Offline
God Member
*****
Karma: 8
Posts: 585
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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è?
Logged

Offline Offline
Sr. Member
****
Karma: 0
Posts: 423
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Varese
Offline Offline
God Member
*****
Karma: 8
Posts: 585
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

codice corretto per chi vuole cimentarsi:


Code:
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);
}
}
Logged

Offline Offline
Sr. Member
****
Karma: 0
Posts: 423
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Varese
Offline Offline
God Member
*****
Karma: 8
Posts: 585
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley

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

Varese
Offline Offline
God Member
*****
Karma: 8
Posts: 585
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

risultato finale smiley
Logged

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non parlare di farina che sono panettiere e mi ricordi in qualche modo che è quasi ora di andare a lavorare  smiley-cry
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
Logged

Varese
Offline Offline
God Member
*****
Karma: 8
Posts: 585
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

vi terrò aggiornati io sveglia per le 5 notte e ancora grazie smiley
Logged

Pages: [1]   Go Up
Jump to: