//Contrôle commande de moteur brushless "aviation" //Mesure sur AN0 de la tension du potentiomètre de 10 kilo ohm. // C'est l'accélérateur du moteur. //Sortie des impulsions vers le contrôleur par D9. // // Commentaires supprimés pour ne garder que la structure du programme /****************************************************/ int distance=0; unsigned int temps_pulse; int sortie_servo=9; unsigned long debut_periode; int pinDistance =0; void mesures(void) { distance=0; for(int ii=0; ii<16; ii++) { distance += analogRead(pinDistance); } distance = (distance >>4); // Serial.print("Distance :");// Affichage éventuel pour vérifier la mesure // Serial.println(distance); } void faire_pulse(int commande) { temps_pulse = (990 + constrain(commande,0,1023)); digitalWrite(sortie_servo,HIGH); delayMicroseconds(temps_pulse); digitalWrite(sortie_servo,LOW); } /*******************************************/ // Début du programme du langage Arduino /*******************************************/ void setup() { pinMode(sortie_servo,OUTPUT); digitalWrite(sortie_servo,LOW); Serial.begin(9600); analogReference(DEFAULT); } void loop() { while(1) { debut_periode = micros(); mesures(); faire_pulse(distance); while( (micros()-debut_periode) < 19999); } }