Bonjour, pour mon projet de terminale je compte réaliser un bateau télécommandé, pour cela je réutilise une radiocommande d’hélicoptère de 2,4 GHz où le récepteur est directement connecter à un arduino. Mon problème est que je n'arrive pas à avoir un code correct pour contrôler les moteurs.
J'ai récupéré les donner des différent joystick que je veux utiliser en utilisant ce programme arduino:
Code:int ch1; int ch5; void setup() { pinMode(2, INPUT); pinMode(6, INPUT); Serial.begin(9600); } void loop() { ch1 = pulseIn(2, HIGH, 25000); ch5 = pulseIn(6, HIGH, 25000); Serial.print("Channel 1:"); Serial.println(ch1); Serial.print("Channel 5:"); Serial.println(ch5); delay(1000); }
Stick droit( accélération) = ch5
à 100% ch5=1960
à 50% ch5=1650
à0% ch5=1000
commande du stick droit :
moteurs à l’arrêt entre 40% et 60% de ch5 1700>ch5>1450
moteurs marche avant (50% de la capacité du moteur) au-delà de 60% de ch5 ch5>1700
moteur marche arrière (50% de la capacité du moteur) en dessous de 40% de ch5 ch5<1450
stick gauche( tourner) = ch1
à 100% ch1=1838
à 50% 1200<ch1<1740
à 0% ch1=1148
commande stick gauche :
moteur gauche réduit sa vitesse de 25% et moteur droit augmente sa vitesse de 25% (tourner à gauche) ch1<1200
moteur gauche augmente sa vitesse de 25% et moteur droit réduit sa vitesse de 25% ( tourner à droite) ch1>1750
tout droit 1200<ch1<1750 ( le bateau doivent revenir à cette position pour enchaîner les virages)
Après çà je compte donc utiliser 2 moteur brancher avec 2 régulateur de vitesse moteur brushless pour contrôler le bateau (catamaran)
j'ai donc branché un moteur à un régulateur lui même relier à une batterie et à l'arduino:
IMG_20170407_114233.jpg
Voici donc le début de mon code pour contrôler les moteurs:
s'il vous plait aider moiCode:int ch1; int ch5; byte moteurD; byte moteurG; void setup() { pinMode(2, INPUT); pinMode(6, INPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); Serial.begin(9600); } void loop() { ch1 = pulseIn(5, HIGH, 25000); Serial.println(map(ch1, 1000,2000, 0,255)); ch5 = pulseIn(6, HIGH, 25000); Serial.println(map(ch5, 1000,1960, 0,255)); while(ch5>127) analogWrite(10, 127); analogWrite(11, 127); }
Si vous avez besoin d'autres information n’hésitez pas!
-----