Bonjour je travaille en ce moment sur un petit projet lumineux visant à faire une animation avec 4 led strip de 15 cm sur mon quadcopter. Je travaille actuellement avec une arduino uno avec 6 pwm et 2 uln2803apg pour le coté puissance pwm.
Voila j'ai utilisé pour les 2 premiers rubans les 6 pwm (2x3) de mon arduino tt fonctionne parfaitement et pour les 2 autres les autres sorties digitales. Je n'ai quasiment aucune différence de couleurs entre les 2 premiers ledstrip et les autres qd j'utilise des couleurs primaires mais par contre j'ai fait qques test avec un random de couleurs et la les différences sont visibles.
Je voulais savoir comment je pourrais faire pour résoudre et pouvoir avoir les mm couleurs sur mes strip.
Actuellement le cablage est tres simple de mes sorties arduino j'entre sur mon uln2803apg et je vais sur ma couleur correspondante.
Code:int red1 = 3; int green1 = 5; int blue1 = 6; int red2 = 11; int green2 = 9; int blue2 = 10; int red3 = 7; int green3 = 8; int blue3 = 4; int red4 = 13; int green4 = 12; int blue4 = 1; int pwmgreen = 0; int pwmred = 0; int pwmblue = 0; int pwmgreen1 = 0; int pwmred1 = 0; int pwmblue1 = 0; int pwmgreen2 = 0; int pwmred2 = 0; int pwmblue2 = 0; int i=1; void setup() { pinMode(blue1, OUTPUT); pinMode(red1, OUTPUT); pinMode(green1, OUTPUT); pinMode(red2, OUTPUT); pinMode(green2, OUTPUT); pinMode(blue2, OUTPUT); pinMode(red3, OUTPUT); pinMode(green3, OUTPUT); pinMode(blue3, OUTPUT); pinMode(red4, OUTPUT); pinMode(green4, OUTPUT); pinMode(blue4, OUTPUT); } void LedRGBPWM(int pwmred, int pwmgreen, int pwmblue, int strip){ if (strip==1){ analogWrite(red1, pwmred); analogWrite(green1, pwmgreen); analogWrite(blue1, pwmblue); } else if (strip==2){ analogWrite(red2, pwmred); analogWrite(green2, pwmgreen); analogWrite(blue2, pwmblue); } else if (strip==3){ analogWrite(red3, pwmred); analogWrite(green3, pwmgreen); analogWrite(blue3, pwmblue); } else if (strip==4){ analogWrite(red4, pwmred); analogWrite(green4, pwmgreen); analogWrite(blue4, pwmblue); } else { analogWrite(red1, pwmred); analogWrite(green1, pwmgreen); analogWrite(blue1, pwmblue); analogWrite(red2, pwmred); analogWrite(green2, pwmgreen); analogWrite(blue2, pwmblue); analogWrite(red3, pwmred); analogWrite(green3, pwmgreen); analogWrite(blue3, pwmblue); analogWrite(red4, pwmred); analogWrite(green4, pwmgreen); analogWrite(blue4, pwmblue); } } void loop() { pwmred1 = 0; pwmgreen1 = 0; pwmblue1 = 0; pwmred2 = 255; pwmgreen2 = 0; pwmblue2 = 0; for (i=1; i<5 ; i++) { LedRGBPWM(pwmred2,pwmgreen2,pwmblue2,i); delay(25); LedRGBPWM(0,0,0,i); delay(25); LedRGBPWM(pwmred2,pwmgreen2,pwmblue2,i); delay(25); LedRGBPWM(0,0,0,i); delay(25); LedRGBPWM(pwmred2,pwmgreen2,pwmblue2,i); delay(30); LedRGBPWM(0,0,0,i); delay(30); LedRGBPWM(pwmred1,pwmgreen1,pwmblue1,i); } i=1; }
Mon projet final sera fait avec une arduino nano (tjrs 6 pwm)
Cordialement,
bypbop
-----