Arduino PWM uln2803apg pour animation led
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Arduino PWM uln2803apg pour animation led



  1. #1
    bypbop

    Arduino PWM uln2803apg pour animation led


    ------

    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

    -----
    Dernière modification par bypbop ; 13/10/2013 à 22h04.

  2. #2
    invite805ff73c

    Re : Arduino PWM uln2803apg pour animation led

    Déjà est-ce que tu sais ce que c'est qu'une PWM et comment ça fonctionne? Si oui recherche "software PWM" (ou MLI en français), c'est bien possible qu'il y ait déjà une bibliothèque Arduino pour ça, sinon faudra s'y mettre soi-même...

    Tiens, premier lien Google, sans l'avoir regardé http://code.google.com/p/rogue-code/...yDocumentation

  3. #3
    bypbop

    Re : Arduino PWM uln2803apg pour animation led

    Merci pour ta réponse grosmatou75001, oui je suis débutant en électronique mais maintenant je sais ce que c'est un pwm (signal de modulation)

    c'est d'ailleurs ce que je crée qd je fais sur mon arduino :

    Code:
    analogWrite(red1, pwmred);
      analogWrite(green1, pwmgreen);   
      analogWrite(blue1, pwmblue);
    Par contre je ne savais pas qu'il y avait un librairie arduino qui pouvait le faire donc apparemment je peux utiliser tte les sorties digitales pour avoir un pwm.

    Je vais refaire mon programme avec cette librairie demain

    Cordialement,
    bypbop

  4. #4
    invite805ff73c

    Re : Arduino PWM uln2803apg pour animation led

    Citation Envoyé par bypbop Voir le message
    mais maintenant je sais ce que c'est un pwm
    Très bien.

    c'est d'ailleurs ce que je crée qd je fais sur mon arduino :
    Certes, mais les librairies Arduino ont pour mauvais effet de "cacher" le fonctionnement du µC avec ses timers, les registres de config qui vont avec etc. Si tu faisais sans il y aurait plusieurs registres à configurer etc.

    Par contre je ne savais pas qu'il y avait un librairie arduino qui pouvait le faire donc apparemment je peux utiliser tte les sorties digitales pour avoir un pwm.
    Je n'ai pas regardé la librairie mais ça doit être ça, du soft-PWM quoi. Par contre selon si c'est bien programmé ou pas ça risque d'occuper le processeur plus ou moins fortement, alors que la PWM hard est implémentée en hardware (dans le timer) (mais peu importe si tu ne fais pas grand-chose d'autre).

  5. A voir en vidéo sur Futura
  6. #5
    bypbop

    Re : Arduino PWM uln2803apg pour animation led

    RE grosmatou75001,

    Voila je viens de tester un petit bout de code tt est parfait j'ai bien les mm couleurs sur ttes mes ledstrips.

    Code:
    #include <SoftPWM.h>
    
    int pwmrouge;
    int pwmvert;
    int pwmbleu;
    
    void setup()
    {
      
      
      // Initialize
      SoftPWMBegin();
    
      // Create and set pin 13 to 0 (off)
      SoftPWMSet(13, 0);
      pwmrouge = 0;
      pwmvert = 0;
      pwmbleu = 0;
    
    }
    
    void loop()
    {
      // Turn on - set to 100%
      
      
      pwmrouge = random(0,100);
      pwmvert = random(0,100);
      pwmbleu = random(0,100);
      
      SoftPWMSetPercent(12, pwmbleu);
      SoftPWMSetPercent(11, pwmvert);
      SoftPWMSetPercent(10, pwmrouge); 
      
      SoftPWMSetPercent(9, pwmbleu);
      SoftPWMSetPercent(8, pwmvert);
      SoftPWMSetPercent(7, pwmrouge);
     
      SoftPWMSetPercent(6, pwmbleu);
      SoftPWMSetPercent(5, pwmvert);
      SoftPWMSetPercent(4, pwmrouge);
      
      SoftPWMSetPercent(3, pwmbleu);
      SoftPWMSetPercent(2, pwmvert);
      SoftPWMSetPercent(1, pwmrouge);
      
      delay(1000);
       
     
    }
    Par contre je suppose que le fait que ce soit de 0 à 100% et avant en utilisant les broches pwm de mon arduino j'avais de 0 à 255 ne change rien.
    En mm tps c'est plus facile de 0 à 255 car pour coder en RGB ... R 255 G 255 B 255 un peu comme du hmtl en fait

    Cordialement,
    bypbop

  7. #6
    invite805ff73c

    Re : Arduino PWM uln2803apg pour animation led

    Par contre je suppose que le fait que ce soit de 0 à 100% et avant en utilisant les broches pwm de mon arduino j'avais de 0 à 255 ne change rien.
    Le seul truc que ça change c'est que (en supposant des nombres entiers) tu perds de la résolution, 100 pas soit à peine 7 bit contre 256 soit 8 bits. Mais pour des LEDs ça doit être sans grande importance... On peut probablement modifier la lib pour revenir sur du 0-255 mais il faudrait regarder la chose de plus près...

Discussions similaires

  1. logiciel pour animation
    Par invitea34aa500 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 04/07/2011, 09h48
  2. besoin d'animation pour la transcription de ADN
    Par invited42ce816 dans le forum Biologie
    Réponses: 1
    Dernier message: 15/01/2009, 16h44
  3. [Biologie Cellulaire] Aide pour une animation...
    Par invite7981ccce dans le forum Biologie
    Réponses: 6
    Dernier message: 24/11/2008, 16h20
  4. des idées pour l'Animation des équipes ....
    Par invitee3d930e7 dans le forum Secourisme spécial Croix-Rouge
    Réponses: 2
    Dernier message: 18/09/2006, 19h52
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...