start:projet:arduino:variateur

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
start:projet:arduino:variateur [2015/01/20 14:34] – [III - Programmation] jcanostart:projet:arduino:variateur [2015/01/20 15:11] (Version actuelle) – [Réalisation : Variateur 12 V] jcano
Ligne 1: Ligne 1:
 +====== Réalisation : Variateur 12 V ======
 +<note warning> Page non-finie, mais lisez quand même !!</note>
 +===== I - Introduction =====
  
 +Cette mini-réalisation est faite pour voir (ou revoir) une application du PWM dans un cas concret : \\
 +Nous allons créer un **variateur** c'est à dire un circuit permettant d'alimenter un dipôle de puissance (lampe, moteur à courant continu) avec une tension variable par hacheur (PWM). \\
 +=== Mise en situation ===
 +  * Le variateur sera commandé par deux boutons poussoirs, un permettant d'augmenter la tension (UP) et un permettant de la diminuer (DOWN)
 +  * On va créer un variateur pouvant commander un dipôle consommant **0.5A**, mais il est possible de commander de plus grand (en modifiant les transistors et avec des dissipateurs)
 +<note important>**Il faudra donc faire attention**  à la température des transistors qui pourraient griller !</note>
 +=== Qui est qui ? ===
 +== les entrées ==
 +  * On dira que la pin digitale 1 est connectée à UP
 +  * De même pour la pin 2 qui sera connectée à DOWN
 +== les sorties ==
 +  * Il n'y en a qu'une, il faudra que cette pin de sortie **soit équipée du PWM** , dans mon exemple je prendrais la pin digitale 3, mais il **faudra vérifier**... cela dépend du modèle de carte que vous utilisez.
 +===== II - Ressources Électronique ===== 
 +==== A/ Un problème de conversion de puissance ====
 +Bien sûr, **l'Arduino** ne peut pas délivrer plus de **30mA**, il faudra qu'elle demande assistance à un collègue costaud, j'ai nommé le **transistor de puissance** ! \\
 +Pour cela, il faudra le connecter en sortie de l'arduino, sur la patte qui délivrera le pas de PWM, avec quelques précautions (résistance protectrice de 10K par exemple).
 +<note>**Bon à savoir : ** le PWM n'est pas continu... il est composé de créneaux d'une fréquence environ égale à 500Hz, pour ce montage, cela ne pose pas de problème car :
 +  - Le __moteur à courant continu__ est un **dipôle inductif**, un bon vieux circuit RL, ayant pour propriété de lisser la tension quand il est en série.
 +  - L'__ampoule à incandescence__ quant à elle n'est **pas affectée** par ces phénomènes de fréquence relativement haute (il est impossible de les voir à l’œil nu : c'est l'intensité lumineuse moyenne qu'on perçoit) 
 +</note>
 +<note tip>Si l'on veut lisser **le courant**, on pourra utiliser un circuit RC mais c'est inutile ici...
 +</note>
 +==== B/ Le montage Darlington ====
 +
 +Afin de pouvoir alimenter votre moteur CC, il faut utiliser un montage amplificateur qui permet de travailler avec des courants assez élevés. Je vous propose donc d'utiliser ... \\ \\
 +
 +** Le montage Darlington !!! ** 8-)
 +
 +{{:start:projet:arduino:darlington_configuration.png |}}
 +
 +\\ \\
 +Ce montage est composé de 2 transistors : \\
 +  * T1 est un **petit transistor** qui est doté d'un grand gain mais il ne peut supporter une grande charge...
 +  * T2 est un **GRAND transistor** qui est pourvu d'un petit gain mais il peut supporter des grandes intensités.
 +Bref, en combinant les deux, on obtient un transistor équivalent qui dispose d'un **GRAND gain** et qui peut supporter **une GRANDE intensité** en bref, qui peut alimenter un **moteur CC** !! 
 +\\
 +\\
 +On ajoutera néanmoins une résistance en amont de la base pour protéger votre Arduino adorée ;-)
 +
 +==== C/ Schéma électronique ====
 +{{ :start:projet:arduino:schema_variateur.jpg |}}
 +
 +On prendra T1 (le transistor faible) qui est un BC547.
 +\\
 +** Brochage : **
 +{{ :start:projet:arduino:bc_547b_brochage.png |}}
 +On prendra T2 (le transistor fort) qui est un BUT11A.
 +\\
 +** Brochage : **
 +{{ :start:projet:arduino:but_11_a.png |}}
 +===== III - Programmation =====
 +
 +// Vu que je n'ai pas encore testé ce programme faute de boutons-poussoirs (honte à moi !) je mets ici un programme alternatif n'ayant pas de boutons poussoirs... //
 +**NB**: j'ai prévu trois sorties pour LEDS pour me faire pardonner^^
 +
 +  int sortie = 3;
 +  int rouge = 8;
 +  int jaune = 9;
 +  int vert = 10;
 +  void setup () {
 +    pinMode(sortie, OUTPUT);
 +    pinMode(rouge, OUTPUT);
 +    pinMode(jaune, OUTPUT);
 +    pinMode(vert, OUTPUT);
 +  }
 +  void loop () {
 +    digitalWrite( rouge, LOW);
 +    int i = 10;
 +    while ( i<50) {
 +    
 +      analogWrite( sortie, i*5);
 +      i++;
 +     if( i < 20) {
 +      digitalWrite( vert, HIGH); }
 +    if( (i>20)&&(i<30)){
 +      digitalWrite( vert, LOW);
 +      digitalWrite( jaune, HIGH);
 +    }
 +    if(i>30) {
 +      digitalWrite( jaune,LOW);
 +      digitalWrite( rouge, HIGH);
 +      }
 +    delay(1000);
 +     }
 +  
 +  }