Programme pour commander des leds par une seul voie

Modérateur : Anim'Elec

Répondre
xenon63
Coursier régional
Coursier régional
Messages : 30
Enregistré le : 01 janv. 2009, 19:50
A été remercié : 2 fois

Programme pour commander des leds par une seul voie

Message par xenon63 »

Voici un petit programme fonctionnel que j'ai fait pour un Arduino nano. Le but était de compléter un module led classique de voiture rc qui gère déjà les leds de clignotants, frein et recule comme celui ci : http://www.gt-rc.com/en/pd.jsp?id=345#_pp=129_780. Mon programme rajoute la commande des leds de phares, antibrouillard, gabaries et de plafonniers de cabine (une blanche et une de couleur changeante) sur une voie proportionnel pour commander les leds d'un camion pour pas cher. Le mieux est une voie commandée par un potentiomètre. Je vous laisse ça sur ce forum, si ça intéresse quelqu'un...:


/*
Date:22.02.2021
Ce programme Arduino a été réalisé pour commander différentes leds de mon camion radiocommandé en fonction de la voie équipé d'un potentiomètre sur ma radiocommande.
On peux considérer que le potentiomètre se transforme en un interrupteur à 6 positions
Il me permet d'allumé dans l'ordre:
Les LEDS oranges de gabarit : broche 8 branchée sur un module MOSFET IRF520
Les LEDS phares : broche 9 brachée sur un transistor 2n2222
Les LEDS antibrouillards : broche 10 sur un transistor 2n2222
La LED blanche de la cabine : broche 11 brachée sur un transistor 2n2222
La LED de couleur de la cabine : broche 12 brachée sur un transistor 2n2222 (la LED blanche de la cabine s'éteint)
*/

Code : Tout sélectionner

// Variable:
int CH3 = 900;  //variable CH3 de la voie 3 du recepteur et initialisation a 900

void setup()
{
//Broche entrée:
pinMode(4, INPUT);  //Cable blanc de la voie du recepteur sur la broche 4

//Broches de sortie:
pinMode(8, OUTPUT); //LEDS oranges de gabarit
pinMode(9, OUTPUT); //LEDS phares
pinMode(10, OUTPUT);  //LEDS antibrouillards
pinMode(11, OUTPUT);  //LED blanche de la cabine
pinMode(12, OUTPUT);  //LED de couleur de la cabine
}

// Boucle du programme:
void loop()
{
CH3 = pulseIn(4, HIGH); //mesure PWM de la durée de l'impulsion sur une périodede de la voie CH3

CH3 = map(CH3, 890, 2074, 100, -100); //Changement de la valeur en microsecondes mesurée CH3 en pourcentage


//Etats des LEDS en fonction du pourcentage de CH3 qui varie de -100 à +100
//Si CH3 est inférieur à -66, rien n'est allumé

if (CH3 > -66)    // Allumage des LEDS oranges de gabarit lorsque CH3 est supérieur à -66
{
digitalWrite(8, HIGH);
}
else
{
digitalWrite(8, LOW);
}

if (CH3 > -33)    // Allumage des LEDS phares lorsque CH3 est supérieur à -33
{
digitalWrite(9, HIGH);
}
else
{
digitalWrite(9, LOW);
}

if (CH3 > 0)    // Allumage des LEDS antibrouillards lorsque CH3 est supérieur à 0
{
digitalWrite(10, HIGH);
}
else
{
digitalWrite(10, LOW);
}

if (CH3 >33 && CH3 <66)    //Allumage de la LED blanche de la cabine lorsque CH3 est compris entre 33 et 66
{
digitalWrite(11, HIGH);
}
else
{
digitalWrite(11, LOW);
}

if (CH3 > 66)    // Allumage de la LED couleur de la cabine lorsque CH3 est supérieur à 66
{
digitalWrite(12, HIGH);
}
else
{
digitalWrite(12, LOW);
}
}
Répondre

Retourner vers « le fabuleux destin de l'Arduino »