Go Down

Topic: led rgb che (dovrebbero) scorrere (Read 1 time) previous topic - next topic

imho

#5
Feb 14, 2013, 08:37 am Last Edit: Feb 14, 2013, 09:34 am by leo72 Reason: 1
Il mio problema รจ lo sketch, solo per far scorrere il rosso ho scritto un papiro, credo di non essere sulla trada giusta.... :~

Code: [Select]

int led1R=1, led1G=2, led1B= 3;
int led2R=4, led2G=5, led2B=6;
int led3R=7, led3G=8, led3B= 9;
int led4R=10, led4G=11, led4B=12;
int led5R=13, led5G=14, led5B= 15;
int led6R=16, led6G=17, led6B=18;
int led7R=19, led7G=20, led7B= 21;
int led8R=22, led8G=23, led8B=24;
int velo1 = 1000;
int velo2 = 1000;

void setup() {                
 // initialize the digital pin as an output.
 // LED1
 pinMode(led1R, OUTPUT);
 pinMode(led1G, OUTPUT);
 pinMode(led1B, OUTPUT);
  // LED2
 pinMode(led2R, OUTPUT);
 pinMode(led2G, OUTPUT);
 pinMode(led2B, OUTPUT);
  // LED3
 pinMode(led3R, OUTPUT);
 pinMode(led3G, OUTPUT);
 pinMode(led3B, OUTPUT);
  // LED4
 pinMode(led4R, OUTPUT);
 pinMode(led4G, OUTPUT);
 pinMode(led4B, OUTPUT);  
  // LED5
 pinMode(led5R, OUTPUT);
 pinMode(led5G, OUTPUT);
 pinMode(led5B, OUTPUT);
  // LED6
 pinMode(led6R, OUTPUT);
 pinMode(led6G, OUTPUT);
 pinMode(led6B, OUTPUT);  
   // LED7
 pinMode(led7R, OUTPUT);
 pinMode(led7G, OUTPUT);
 pinMode(led7B, OUTPUT);  
  // LED8
 pinMode(led8R, OUTPUT);
 pinMode(led8G, OUTPUT);
 pinMode(led8B, OUTPUT);
 
 }
 void loop() {
 
 

// LED1 ROSSO    
digitalWrite (led1R,HIGH);
delay (velo2);
 
//ACCENSIONE LED 2 ROSSO
digitalWrite (led2R, HIGH);
 
 //LED 1 RGB
 digitalWrite (led1R,HIGH);
 digitalWrite (led1G,HIGH);
 digitalWrite (led1B,HIGH);
 delay (velo2);


   //LED 2 RGB
   digitalWrite (led2R, HIGH);
   digitalWrite (led2G, HIGH);
   digitalWrite (led2B, HIGH);

 
//ACCENSIONE LED 3 ROSSO
digitalWrite (led3R, HIGH);
delay (velo2);

//ACCENSIONE LED 4 ROSSO
digitalWrite (led4R, HIGH);

 //LED 3 RGB
 digitalWrite (led3R, HIGH);
 digitalWrite (led3G, HIGH);
 digitalWrite (led3B, HIGH);
 delay (velo2);

   //LED 4 RGB
   digitalWrite (led4R, HIGH);
   digitalWrite (led4G, HIGH);
   digitalWrite (led4B, HIGH);


//ACCENSIONE LED 5 ROSSO
digitalWrite (led5R, HIGH);
delay (velo2);

//ACCENSIONE LED 6 ROSSO
digitalWrite (led6R, HIGH);

 //LED 5 RGB
 digitalWrite (led5R, HIGH);
 digitalWrite (led5G, HIGH);
 digitalWrite (led5B, HIGH);
 delay (velo2);
 
   //LED 6 RGB
   digitalWrite (led6R, HIGH);
   digitalWrite (led6G, HIGH);
   digitalWrite (led6B, HIGH);
   
//ACCENSIONE LED 7 ROSSO
digitalWrite (led7R, HIGH);
delay (velo2);

//ACCENSIONE LED 8 ROSSO
digitalWrite (led8R, HIGH);

 //LED 7 RGB
 digitalWrite (led7R, HIGH);
 digitalWrite (led7G, HIGH);
 digitalWrite (led7B, HIGH);
 delay (velo2);
 
   //LED 8 RGB
   digitalWrite (led8R, HIGH);
   digitalWrite (led8G, HIGH);
   digitalWrite (led8B, HIGH);




}


EDIT by mod:
per favore usa il tag CODE apposito per includere del codice

leo72

E' sicuramente la strada sbagliata  ;)
Ad esempio, tu per i led usi i pin dall'1 al 24...
Code: [Select]
void setup() {
  for (byte temp = 1; temp < 25; temp++) {
    pinMode(temp, OUTPUT);
  }
}


ecc...

imho

Non vorrei approffittare troppo ^_^
mi potresti creare un codice piu' completo cosi' me lo studio per benino.. :smiley-eek:

Grazie mille!

leo72

Sarebbe bene che ci arrivassi da solo, altrimenti serve a poco  ;)

Ti do alcune dritte. Io al tuo posto userei un paio di variabili: nella prima ci metterei il valore del led precedentemente acceso, nella seconda il led che sto accendendo.
Accendo il led e spengo il precedente. Questo crea l'effetto del led che scorre.

Controlla quando arrivi ai margini, nel caso inverti la direzione di accensione.


 
 

imho


Go Up