Bonsoir, je vous écrit car j'ai eu problème sur mon projet, je programme une partie ou je fais monter un plateau jusqu'à qu'il se situe à 12cm de mon capteur à ultrason, sur une Arduino UNO. Voici le programme :
#include <NewPing.h>
Code:#define TRIGGER_PIN 9 #define ECHO_PIN 8 #define MAX_DISTANCE 200 #define RelaisA digitalRead (13) // pin 13 #define RelaisB digitalRead (12) // pin 12 #define Fin_C_Bas digitalRead (10) #define CapteurBasOn digitalRead (Fin_C_Bas) NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); void cm() { delay(5); Serial.print("Ping: "); Serial.print(sonar.ping_cm()); Serial.println("cm"); } void monte() { digitalWrite(RelaisA,LOW); // mettre pin 13 a low digitalWrite(RelaisB,HIGH); // mettre pin 12 a high } void descend() { digitalWrite(RelaisA ,HIGH); // Mettre pin 13 a high digitalWrite(RelaisB, LOW); // Mettre pin 12 a low } void stop() { digitalWrite(RelaisA, LOW); // Mettre pin 13 a high digitalWrite(RelaisB, LOW); // Mettre pin 12 a low } void setup() { // set all the other pins you're using as outputs: pinMode(13,OUTPUT); pinMode(12,OUTPUT); Serial.begin(9600); // initialistaion des capteurs qui sont de preference fermé au repos pinMode(Fin_C_Bas, INPUT); // Capt2 est une broche d'entree digitalWrite(Fin_C_Bas, HIGH); stop(); // si au debut on est entre les deux capteur donc on monte if (( ("cm") > (12) )) monte(); } void loop() // boucle principal { //contenu du programme // Si fin de course bas ateint if(CapteurBasOn) { stop(); delay(500); monte(); delay(500); } // Si fin de course haut ateint if (( ( "cm" ) <= ( 12 ) )) { stop(); delay(500); descend(); delay(500); } } //fin
Mon moteur tourne puis s'arrête 1 seconde après, sauriez vous pourquoi?
-----