Hello, j'essaye en ce moment de réaliser un programme simple pour un projet d'électronique :
Je souhaite détecter la position d'un bateau qui vient manoeuvrer contre le quai : si le bateau avance trop par rapport à sa position ( bouton de gauche ) il est détecté et doit reculer, de meme si il est trop en arrière. Si il est en position au bout de 3 secondes la lumière verte indique "En position" et encore 3 secondes plus tard si le bateau est toujours bien en place (sécurité) la rampe (servo moteur) se baisse de 90° pour laisser les véhicules descendre du navire. Si le navire avance ou recule la rampe se replie et le navire n'est plus "en position".
Problème : je souhaite ajouter du texte qui s'afficherais aux différentes étapes : "Reculez" "Avancez" "En position" "Attention ouverture de la rampe", lorsque j'ajoute mon Serial.begin(9600); et mes Serial.Println("TEXTE"); mes leds se dérèglent comme si le serial avait une influence, je ne comprend pas.
Voici mon code :
#include <Servo.h>
Servo moteur;
unsigned long prevMillis = 0;
int delai = 2000;
int delai2 = 3000;
void setup(){
moteur.attach(5);
pinMode(13, OUTPUT); //
pinMode(12, OUTPUT); //
pinMode(8, OUTPUT); //
pinMode(2, INPUT); //
pinMode(1, INPUT); //
moteur.write(180);
Serial.begin(9600);
}
void loop(){
if (digitalRead(1)==HIGH){
digitalWrite(13,HIGH);
prevMillis=millis();
moteur.write(180);
Serial.println("Reculez"); //
}
else{
digitalWrite(13,LOW);
}
if (digitalRead(2)==HIGH){
digitalWrite(8,HIGH);
prevMillis=millis();
moteur.write(180);
Serial.println("Avancez"); //
}
else{
digitalWrite(8,LOW);
}
if (millis() - prevMillis > delai){
if (digitalRead(13) == LOW && digitalRead(8) == LOW ){
digitalWrite(12, HIGH);
Serial.println("En position"); //
if (millis() - prevMillis > delai2){
moteur.write(90);
Serial.println("Ouverture de la rampe"); //
}
else{
moteur.write(180);
}
}
else {
digitalWrite (12, LOW);
}
}
else {
digitalWrite (12, LOW);
}
}
Une photo du montage :
Je suis débutant débutant, si vous pouvez m'aider c'est avec plaisir !!