Hola antes que nada pido perdón, por si soy muy nuevo en arduino y en el tema de la electrónica.
Necesito controlar 10 leds rgb en color amarillo para una exposición, necesito una rutina donde se encienda el led de 1 a 10 y luego 10 a 1. Estoy pensando en usar las tiras rgb comerciales (de las de 4 pines), y ya había logrado encender dos leds con la rutina que quiero y pensaba expandirlo solo a los 10 restantes. El problema es que con mi Arduino los pwm no me son suficientes ya que solo hay 13 puertos y siendo así necesitaría 30 (aunque considerando que para el color amarillo solo requiero 2 colores) necesitaría 20 pines.
Espero me puedan ayudar y dar alguna solución o ayuda.
#define red1 13
#define green1 12
#define blue1 11
#define red2 10
#define green2 9
#define blue2 8
#define red3 7
#define green3 6
#define blue3 5
#define red4 4
#define green4 3
#define blue4 2
int ret=A3;
int del=0;
void setup() {
// put your setup code here, to run once:
pinMode(red1, OUTPUT);
pinMode(red2, OUTPUT);
pinMode(red3, OUTPUT);
pinMode(red4, OUTPUT);
pinMode(green1, OUTPUT);
pinMode(green2, OUTPUT);
pinMode(green3, OUTPUT);
pinMode(green4, OUTPUT);
pinMode(blue1, OUTPUT);
pinMode(blue2, OUTPUT);
pinMode(blue3, OUTPUT);
pinMode(blue4, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int del=analogRead(ret);
digitalWrite(red1, HIGH);
digitalWrite(green1,HIGH);
digitalWrite(blue1,LOW);
delay (del);
digitalWrite(red1, LOW);
digitalWrite(green1,LOW);
digitalWrite(blue1,LOW);
delay(del);
digitalWrite(red2, HIGH);
digitalWrite(green2,HIGH);
digitalWrite(blue2,LOW);
delay (del);
digitalWrite(red2, LOW);
digitalWrite(green2,LOW);
digitalWrite(blue2,LOW);
delay (del);
// digitalWrite(red3, HIGH);
// digitalWrite(green3,HIGH);
// digitalWrite(blue3,LOW);
//
// delay (500);
//
// digitalWrite(red3, LOW);
// digitalWrite(green3,LOW);
// digitalWrite(blue3,LOW);
//
// delay (500);
//
// digitalWrite(red4, HIGH);
// digitalWrite(green4,HIGH);
// digitalWrite(blue4,LOW);
//
// delay (500);
//
// digitalWrite(red4, LOW);
// digitalWrite(green4,LOW);
// digitalWrite(blue4,LOW);
//
// delay (500);
}
tengo las entradas analogicas porque quisiera por medio de un potenciometro poder regular el color o la tonalidad de amarillo y a su vez la velocidad controlar el delay de las rutinas.
mi implementacion del circuito es esa pero como comento me quedo sin pines para continuar agregando solo leds y repitiendo el codigo.
