Un ESC est piloté par un signal de radiocommande (impulsion de 1 à 2ms toutes les 20ms).
Tu vas trouver cette fonction dans la librairie servo, charge l'exemple "knob" qui délivre ce signal en fonction de la position d'un potentiomètre.
Le souci c'est que je sais pas comment lui attribuer le valeur pour varier la vitesse du moteur ?
Je dois jouer sur la PWM ou sur le rapport cyclique ? ou sur les 2 ?
gui175:
Je dois jouer sur la PWM ou sur le rapport cyclique ? ou sur les 2 ?
En fait, avec la librairie Servo, tu n'as pas à t'en soucier.
Un ESC attend le même signal que pour un servo-moteur. Ce qui semble logique puisque les deux sont issus du modélisme et on en commun les même radio-commande.
Pour revenir à nos moutons, un servo de commande de 0degré a 180degrés, ce qui correspond à une commande de 0% à 100%.
Donc les lignes de code:
Servo.write(0); moteur au mini
Servo.write (90); moteur accéléré à 50%
Servo.write (180); moteur à fond
Tu as l'exemple sweep aussi qui va faire accélérer et décélérer ton moteur.
J'ai cherché un peux sur le web, j'ai trouvé un bon de code que j'ai modifié un peux, est-il correct ? varier la vitesse via un potentiomètre ?
Autre question est-il nécessaire de modifier une registre (Exemple registre B) pour avoir une fréquence plus élevé sur une des sortie ?
sachant que le registre A modifie aussi (Delay, ... ) donc j'aimerais éviter de toucher celui la
#include <Servo.h>
Servo esc;
void setup()
{
pinMode(8,OUTPUT);
pinMode(A0,INPUT);
esc.attach(8); //PIN numro 8
esc.writeMicroseconds(1000); // Delais
Serial.begin(9600);
}
void loop()
{
int moteur;
moteur= analogRead(A0); //PIN pour le potentiomtre
moteur= map(moteur,0,1023,0,10000); //2 dernieres valeurs = val mini et maxi tour moteur
esc.writeMicroseconds(moteur);
}