Varese
Offline
God Member
Karma: 8
Posts: 581
|
 |
« on: July 04, 2012, 01:50:17 pm » |
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 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
God Member
Karma: 8
Posts: 581
|
 |
« Reply #1 on: July 04, 2012, 02:29:57 pm » |
ho risolto cambiando questo: for (int L=0;L<256;L++) funziona ma non come dico io Pietro
|
|
|
|
|
Logged
|
|
|
|
|
Torino
Online
God Member
Karma: 2
Posts: 725
|
 |
« Reply #2 on: July 04, 2012, 02:35:25 pm » |
ciao Pietro,il problema sta quì 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 
|
|
|
|
|
Logged
|
|
|
|
|
Riva del Garda, TN / Forlì
Offline
Edison Member
Karma: 7
Posts: 2082
Il piu' modesto al mondo
|
 |
« Reply #3 on: July 04, 2012, 02:35:34 pm » |
ho risolto cambiando questo: for (int L=0;L<256;L++) funziona ma non come dico io Pietro in caso al posto di L+passo dovresti scrivere L += passo che è uguale a scrivere L = L+passo perchè tu vai ad assegnare un nuovo valore alla variabile ogni ciclo quindi deve essere un'assegnazione. scrivere L++ equivale a scrivere L += 1 che è uguale a L = L+1 quindi è un'assegnazione  EDIT: preceduto 
|
|
|
|
|
Logged
|
|
|
|
|
Varese
Offline
God Member
Karma: 8
Posts: 581
|
 |
« Reply #4 on: July 04, 2012, 02:38:56 pm » |
|
|
|
|
|
Logged
|
|
|
|
|
Varese
Offline
God Member
Karma: 8
Posts: 581
|
 |
« Reply #5 on: July 04, 2012, 02:41:32 pm » |
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
Sr. Member
Karma: 0
Posts: 343
|
 |
« Reply #6 on: July 04, 2012, 02:43:08 pm » |
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 
|
|
|
|
|
Logged
|
|
|
|
|
Varese
Offline
God Member
Karma: 8
Posts: 581
|
 |
« Reply #7 on: July 04, 2012, 02:51:52 pm » |
strano che nn mi dava errore cmq ora ho capito grazie per l'aiuto codice corretto per chi vuole cimentarsi: 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
Sr. Member
Karma: 0
Posts: 343
|
 |
« Reply #8 on: July 04, 2012, 03:01:20 pm » |
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
God Member
Karma: 8
Posts: 581
|
 |
« Reply #9 on: July 04, 2012, 03:26:05 pm » |
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.
|
|
|
|
|
Logged
|
|
|
|
|
Varese
Offline
God Member
Karma: 8
Posts: 581
|
 |
« Reply #10 on: July 04, 2012, 03:31:58 pm » |
|
|
|
|
|
Logged
|
|
|
|
|
Torino
Online
God Member
Karma: 2
Posts: 725
|
 |
« Reply #11 on: July 04, 2012, 03:42:05 pm » |
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 
|
|
|
|
|
Logged
|
|
|
|
|
Varese
Offline
God Member
Karma: 8
Posts: 581
|
 |
« Reply #12 on: July 04, 2012, 03:49:33 pm » |
vi terrò aggiornati io sveglia per le 5 notte e ancora grazie 
|
|
|
|
|
Logged
|
|
|
|
|
|