Bonjour à tous,
Je débute en montage électronique et Arduino et je rencontre un problème sur mon premier projet.
Je dois pouvoir contrôler trois led différentes (allumer et éteindre progressivement) avec un potentiomètre chacun.
Ce sont des power led 10W.
J'ai utiliser et détourné plusieurs tutoriels et codes, il y a donc peut être des choses inutiles ou mal dimensionnées par rapport au circuit complet.
J'ai réalisé un montage préliminaire sur une breadboard qui fonctionnait mais lorsque j'ai tout soudé ensemble j'ai rencontré un souci; il m'est impossible d'allumer mes trois led en même temps, ce qui était pourtant possible sur le montage précédant.
j'arrive a les allumer une par une ou 2 par 2 mais dès que j'actionne la 3eme, l'une de mes led s'éteint progressivement au rythme du potentiomètre.
je pense qu'alimenter mes led indépendamment avec une pile chacune pourrait régler le problème mais j'aimerai éviter, d'au temps que mon montage préliminaire ayant fonctionné, ça doit être possible.
à noter que la seul chose qui ai changé entre le préliminaire et le définitif c'est le diamètre de mon câblage pour les led, pour lesquels j'ai utiliser du câble hifi.
J'utilise des potentiomètres 10K, résistances 1K, des Transistor TIP122 et des power led de 1W.
voici le diagramme de montage (c'est mon premier, j'espère qu'il est correcte)
Et le code de l'arduino (mega 2500)
// Ardwinner LED-009-Potentiomètre.
// code Arduino pour varier l’intensité d’une LED avec un potentiomètre.
/* note de montage : branchez le Potentiomètre sur la PIN analogique A0, allimentez le en le branchant sur la PIN 5V, et sa troisième broche sur le Ground. La LED est brancée au Ground, à la résistance qui est elle-même branchée sur une PIN numérique, ici la 11 par exemple*/
int potPin1 = A0; // déclare le potentiomètre sur la broche / PIN analogique A0
int ledPin1 = 9; // déclare la LED, crée donc une constante appelé ledPin branchée sur la broche numérique 13
int potValue1 =0; // crée une constante indiquant la valeur de base du potentiomètre, ici 0
int ledValue1 =0; // crée une constante indiquant la valeur de base de la LED, ici 0 donc éteinte.
int potPin2 = A1; // déclare le potentiomètre sur la broche / PIN analogique A0
int ledPin2 = 10; // déclare la LED, crée donc une constante appelé ledPin branchée sur la broche numérique 13
int potValue2 =0; // crée une constante indiquant la valeur de base du potentiomètre, ici 0
int ledValue2 =0; // crée une constante indiquant la valeur de base de la LED, ici 0 donc éteinte.
int potPin3 = A2; // déclare le potentiomètre sur la broche / PIN analogique A0
int ledPin3 = 11; // déclare la LED, crée donc une constante appelé ledPin branchée sur la broche numérique 13
int potValue3 =0; // crée une constante indiquant la valeur de base du potentiomètre, ici 0
int ledValue3 =0; // crée une constante indiquant la valeur de base de la LED, ici 0 donc éteinte.
void setup() {
Serial.begin (9600); // réglage du débit de données entre l’Arduino et certains composants à 9600 bauds (bits par secondes)
pinMode (potPin1, INPUT); // on indique que le potentiomètre est une entrée
pinMode (ledPin1, OUTPUT); // on indique que la LED est une sortie
pinMode (potPin2, INPUT); // on indique que le potentiomètre est une entrée
pinMode (ledPin2, OUTPUT); // on indique que la LED est une sortie
pinMode (potPin3, INPUT); // on indique que le potentiomètre est une entrée
pinMode (ledPin3, OUTPUT); // on indique que la LED est une sortie
}
void loop() {
potValue1 = analogRead (potPin1); // indique que la valeur du potentiomètre (potValue) sera ce que l’arduino lira (analogRead) sur sa broche analogique potPin (A0)
ledValue1 = map (potValue1, 0, 1023, 0, 255); // permet d’étalonner une valeur de 10 bits (0-1023) pour le potentiomètre sur du 8 bits (0-255) puisque l’Arduino est en 8 bits
analogWrite (ledPin1, ledValue1) ; // envoie en PWM l’information de l’état (valeur) du potentiomètre
delay (10) ; // delais d’une seconde
potValue2 = analogRead (potPin2); // indique que la valeur du potentiomètre (potValue) sera ce que l’arduino lira (analogRead) sur sa broche analogique potPin (A0)
ledValue2 = map (potValue2, 0, 1023, 0, 255); // permet d’étalonner une valeur de 10 bits (0-1023) pour le potentiomètre sur du 8 bits (0-255) puisque l’Arduino est en 8 bits
analogWrite (ledPin2, ledValue2) ; // envoie en PWM l’information de l’état (valeur) du potentiomètre
delay (10) ; // delais d’une seconde
potValue3 = analogRead (potPin3); // indique que la valeur du potentiomètre (potValue) sera ce que l’arduino lira (analogRead) sur sa broche analogique potPin (A0)
ledValue3 = map (potValue3, 0, 1023, 0, 255); // permet d’étalonner une valeur de 10 bits (0-1023) pour le potentiomètre sur du 8 bits (0-255) puisque l’Arduino est en 8 bits
analogWrite (ledPin3, ledValue3) ; // envoie en PWM l’information de l’état (valeur) du potentiomètre
delay (10) ; // delais d’une seconde
}
Merci d'avance pour votre aide et vos conseils
EDIT: J'utilise deux piles 9V en série pour alimenter mes led, je le faisais avec une seul sur mon montage test mais la puissance était insuffisante. Le probleme reste cependant présent si je ne met qu'une seul pile sur mon montage définitif.