Hello,
I trying to do a project for school, it is a bench test, everything works fine but my servomotor break down and it's the second I bought.
#include <Servo.h>
// crée l’objet pour contrôler le servomoteur
Servo monservo;
// constantes ne change pas. Elles sont utilisées pour donner les pins:
const int BoutonD = 12; //le numéro de la pin du bouton départ
const int BoutonR = 10; //le numéro de la pin du bouton RAZ
const int LedF = 2; //le numéro de la pin de la Led fin de cycle
const int LedV = 6;//le numéro de la pin de la Led verte
const int LedJ = 7;//le numéro de la pin de la Led jaune
const int LedR = 3;//le numéro de la pin de la Led rouge
const int ReedV = 4;//le numéro de la pin du capteur REED vert
const int ReedJ = 5;//le numéro de la pin du capteur REED jaune
// les variables vont changées :
int etatBoutonD = 0;//état du bouton de départ
int etatBoutonR = 0;//état du bouton de RAZ
int etatReedV = 0;//état du capteur reed vert
int etatReedJ = 0;//état du capteur reed jaune
int pos = 0;//variable pour stocker la position du servomoteur
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
// initiliser les LEDs en tant que sortie :
pinMode(LedF, OUTPUT);
pinMode(LedV, OUTPUT);
pinMode(LedJ, OUTPUT);
pinMode(LedR, OUTPUT);
//initiliser les boutons en tant que entrer :
pinMode(BoutonD, INPUT);
pinMode(BoutonR, INPUT);
//capteur Reed en tant qu'entrer :
pinMode(ReedV, INPUT_PULLUP);
pinMode(ReedJ, INPUT_PULLUP);
//initialisation du servomoteur
monservo.attach(9); // utilise la broche 9 pour le contrôle du servomoteur
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
//Contrôle du reed jaune avant cycle (détection capteur bloqué fermé)
{ etatReedJ = digitalRead(ReedJ);
if (etatReedJ == LOW) {
digitalWrite(LedR, HIGH);
}
}
//Contrôle du reed vert avant cycle (détection capteur bloqué fermé)
{ etatReedV = digitalRead(ReedV);
if (etatReedV == LOW) {
digitalWrite(LedR, HIGH);
}
}
//Lit la broche d'entrée du bouton départ
etatBoutonD = digitalRead(BoutonD);
//Si le bouton est HIGH alors...
if (etatBoutonD == HIGH) {
//Demande au servo de se déplacer à ... puis attendre ...
for (pos = 0; pos < 135; pos += 1);
{
monservo.write(pos);
delay(500);
}
//Contrôle du capteur reed vert, on lit la broche puis si elle est LOW alors on allume la Led verte sinon on éteind
{ etatReedV = digitalRead(ReedV);
if (etatReedV == LOW) {
digitalWrite(LedV, HIGH);
} else {
digitalWrite(LedR, HIGH);
}
}
//Demande au servo de se déplacer à ... puis attendre ...
for (pos = 135; pos >= 5; pos -= 1)
{ monservo.write(pos);
delay(20);
}
//Contrôle du capteur reed jaune, on lis la broche puis si elle est LOW alors on allume la Led verte sinon on éteind
{ etatReedJ = digitalRead(ReedJ);
if (etatReedJ == LOW) {
digitalWrite(LedJ, HIGH);
} else {
digitalWrite(LedR, HIGH);
}
}
//Demande au servo de se déplacer à ... puis attendre ...
delay(500);
monservo.write(80); // demande au servo de se déplacer à cette position
delay(200); // attend 1000 ms entre changement de position
//Allumer la led de fin de cycle
digitalWrite(LedF, HIGH); //Allumer la Led en fin de cycle
}
// lire l'état du bouton RAZ
{ etatBoutonR = digitalRead(BoutonR);
//Si le bouton RAZ est HIGH alors éteind les leds
if (etatBoutonR == HIGH) {
digitalWrite(LedF, LOW);
digitalWrite(LedV, LOW);
digitalWrite(LedJ, LOW);
digitalWrite(LedR, LOW);
}
}
}
This is my code and the electrical schematic
Schematic_banc test_2023-07-24-3.pdf (42,9 Ko)
Somebody can help me for find the thing who break my servomotor, please ?
PS : When I say break down, the servomotor just turn all time