depuis le début de la semaine je travail sur un projet de module d'éclaire pour le moment
pour le moment j'ai réussi à avoir les fonction comme :
voie 1 = neutre = feux de stop
vers le bas = feux de recul
voie 2 = manche vers la gauche = clignotant gauche
manche vers la droite = clignotant droit
mais pour l'allumage des feux par implusion je n'y arrive pas mal-grès des recherche sur le forum et sur google
pouvez vous m'aider ?
voici mon code pour le moment
int ch1; // Nos deux canaux de RC
int ch2;
int ch3;
int ch4;
void setup() {
//Relier les masses du récepteur et de l'arduino, et
pinMode(7, INPUT); // signal récepteur ch1 sur Arduino pin7 Aile
pinMode(8, INPUT); // signal récepteur ch2 sur Arduino pin8 THrottle
pinMode(6, INPUT); // signal récepteur ch3 sur Arduino pin6 Elev
pinMode(4, INPUT); // signal récepteur ch4 sur Arduino pin6 Rudd
pinMode(13, OUTPUT); // initialise la broche 13 en sortie numérique (stop)
pinMode(12, OUTPUT); // initialise la broche 12 en sortie numérique (arrière)
pinMode(10, OUTPUT); // initialise la broche 10 en sortie numérique (gauche)
pinMode(9, OUTPUT); // initialise la broche 9 en sortie numérique (droite)
pinMode(3, OUTPUT); // initialise la broche 3 en sortie numérique (code)
pinMode(2, OUTPUT); // initialise la broche 2 en sortie numérique (appel de phare)
}
void loop() {
//Pulsin n'est pas très optimisé mais ça fonctionne
//Signaux de largeur modulée (1ms à 2ms) sur cycle 20ms
//Donc 1000 microsec = zéro, 2000 micsec = max et 1500 = neutre
ch1 = pulseIn(7, HIGH, 25000); // Lire ch1 (25 ms)
ch2 = pulseIn(8, HIGH, 25000); // Lire ch2
ch3 = pulseIn(6, HIGH, 25000); // Lire ch3
ch4 = pulseIn(4, HIGH, 25000); // Lire ch4
if (ch1 > 1600 or ch1 <1400){ // gère le feu stop
digitalWrite(13, LOW); // allume la LED
}
else {
digitalWrite(13, HIGH); // éteint la LED
}
if (ch1 <1400){ // gère le feu arrière
digitalWrite(12, HIGH); // allume la LED
}
else {
digitalWrite(12, LOW); // éteint la LED
}
if (ch2 <1300){ // gère le feu gauche
digitalWrite(10, HIGH); // allume la LED
delay(200); // ne fait rien pendant 0.5 seconde (programme arrêté, donc rien d'autre ne fonctionne)
digitalWrite(10, LOW); // éteint la LED
delay(200); // ne fait rien pendant 0.5 seconde
}
else {
digitalWrite(10, LOW); // éteint la LED
}
if (ch2 >1600){ // gère le feu droite
digitalWrite(9, HIGH); // allume la LED
delay(200); // ne fait rien pendant 0.5 seconde
digitalWrite(9, LOW); // éteint la LED
delay(200); // ne fait rien pendant 0.5 seconde
}
else {
digitalWrite(9, LOW); // éteint la LED
}
if (ch3 >1600){ // gère les codes
digitalWrite(3, HIGH); // allume la LED
}
else {
digitalWrite(3, LOW); // éteint la LED
}
if (ch4 >1600){ // gère le appel de phare
digitalWrite(2, HIGH); // allume la LED
}
else {
digitalWrite(2, LOW); // éteint la LED
}
}
