bonjour je suis en terminal sti2d et j ai un projet a effectuer avant la fin de l année mais voici que je suis bloquer depuis au moins 7 h pour assembler ces deux programmes pouvez vous m'aider merci.
1 er programme :
const int vitesseA = 3;
const int boutonPin = A0; // Broche du bouton poussoir
const int moteurPin = 9; // Broche de contrôle du moteur
bool moteurEnMarche = false;
bool etat=false;
bool etat_precedent=false; // Suivi de l'état précédent du bouton poussoir.
int valeurBouton; // Stocke la valeur lue sur la broche analogique du bouton poussoir.
void setup()
pinMode(vitesseA,OUTPUT);
pinMode(vitesseB,OUTPUT);
Serial.begin(9600);
pinMode(moteurPin, OUTPUT);
}
void loop() // c'est une boucle
{
int valeurBouton = analogRead(boutonPin); // Lit la valeur de la broche analogique du bouton poussoir
Serial.println(valeurBouton);
if (valeurBouton>500) // Si la valeur lue est supérieure à 500 (ce qui signifie que le bouton est enfoncé)
{
etat=true;
moteur();
allumereteindre();
}
else
{
etat=false;
}
}
void moteur(){
if ((moteurEnMarche==false)&&(etat_precedent==false) )
{
digitalWrite(moteurPin, LOW);
Serial.println("Le moteur est en marche");
digitalWrite(vitesseA,HIGH);
Serial.println();
Serial.println();
}
else
{
digitalWrite(moteurPin, LOW);
Serial.println("Le moteur est arrêté");
digitalWrite(vitesseA,LOW);
Serial.println();
Serial.println();
}
}
void allumereteindre(){
if ((moteurEnMarche==false)&&(etat_precedent==false) )
{
moteurEnMarche=true;
etat_precedent=true;
delay(1000);
}
else
{
moteurEnMarche=false;
etat_precedent=false;
delay(1000);
et le deuxième :
const int trigPin = 9;
const int echoPin = 6;
const int ledPin = 13; // Facultatif - peut être utilisé pour une sortie visuelle
// Déclaration des variables
long duration;
int distance;
void setup() {
// Initialisation des broches
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
// Initialisation de la communication série
Serial.begin(9600);
}
void loop() {
// Envoi d'une impulsion ultrasonique
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Lecture de la durée de l'écho
duration = pulseIn(echoPin, HIGH);
// Calcul de la distance en centimètres
distance = duration * 0.034 / 2;
// Affichage de la distance dans le moniteur série
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Facultatif - contrôle d'une LED en fonction de la distance
if (distance < 20) {
digitalWrite(ledPin, HIGH); // Allume la LED si la distance est inférieure à 20 cm
} else {
digitalWrite(ledPin, LOW); // Éteint la LED sinon
}
// Attente avant la prochaine mesure
delay(500);
}