Hallo liebes Forum,
ich hab schon einige Erfahrung mit dem Arduino jetzt habe ich folgendes Problem.
Ich steuere mit einem Arduino MEGA mit den ersten 3 PWM über 3 Darlington Array des ULN2803 (TTL-Version) 3 RGB LED die gegeneinander verschaltet sind
1 Kanal LED1 R, LED2 G, LED3 B,
2 Kanal LED1 G, LED2 B, LED3 R
3 Kanal LED1 B, LED2 R, LED3 G,
Ich steuer das mit folegenem Code an und Fade damit zwischen den einzelnen Kanälen hin und her. Es Funktioniert solange Zähler T< 500 ist sobald der Zähler >500 bekommt Der Arduino ein Pulsen im ca 1 Sekunden Takt auf allen PWM´s den man mit dem Auge wahrnimmt (Es ist aber kein blinken sondern Pulsen. Ausgeschlossen ist die Stromversorgung ich hab max 100mA beim dimmen. Mit USB bzw 1,6A Netzteil gleiches Bild.)
Die Programm kann doch nicht mit der Geschwindigkeit des Mega 1280 liegen. DIe ULN2803 Array haben eine anstiegszeit von max 1µs laut datenblatt das wären 100kHZ.
Ich brauche ein paar anstöße von euch.Ich will einen "Sternenhimmel" bauen mit diesem Fadeeffekt kann das aber mit dem Pulsen nicht gerbauchen.
int Rval=250;
int Gval=5;
int Bval=5;
int Rout=2;
int Gout=3;
int Bout=4;
unsigned long interval=120;
unsigned long pMillis;
int T=0;
void setup (){
pinMode(Rout,OUTPUT);
pinMode(Gout,OUTPUT);
pinMode(Gout,OUTPUT);
}
void loop(){
if(millis()-pMillis > interval){
pMillis=millis();
T++ ;
if (T>=0 && T<=250){
Rval--;
Gval++;
}
if(T==250){
delay(1000);
}
if (T>=251 && T<=500){
Gval--;
Bval++;
}
if(T==500){
delay(1000);
}
if (T>=501 && T<=750){
Rval++;
Bval--;
}
if(T==750){
delay(1000);
}
if (T>=751){
Rval=250;
Gval=5;
Bval=5;
T=0;
}
}
analogWrite(Rout,Rval);
analogWrite(Gout,Gval);
analogWrite(Bout,Bval);
}