Bonjour !
Voici mon probleme :
Lorque j'appuie sur un bouton relie a la broche 12 de mon arduino , cela doit eteidre des lazers , ecrire un message dans la console et allume une led en broche 2 . Or lorsque j'appuie sur le bouton mon arduino ono s'éteint completement .
voici mon code :
#include <Arduino.h>
#include <Servo.h>
#define LaserPin 7
// Broches pour les capteurs laser
int Lazer1 = A5;
int Lazer2 = A4;
int Lazer3 = A3;
int Lazer4 = A2;
int Lazer5 = A1;
int Lazer6 = A0;
// Broches pour les LEDs
int led1 = 9; // S'allume si l'un des lazers est < 200
int led2 = 10; //s'allume si aucun lazer coupe
int led3 = 11; // Vous pouvez utiliser cette broche pour une autre indication si nécessaire
// Broche pour alimenter les lasers
int LaserPowerPin = 7;
// Broche pour indiquer la fin du minuteur
int TimerEndPin = 13;
// Durée à soustraire au minuteur si l'une des variables est inférieure à 200
const unsigned long SUBTRACTION_TIME = 30000; // 30 secondes en millisecondes
// Durée du minuteur en millisecondes
const unsigned long TIMER_DURATION = 600000; // 10 minutes en millisecondes
// Variables pour stocker le temps de début et le temps écoulé
unsigned long startTime = 0;
unsigned long elapsedTime;
int compteur = 0;
int btstate;
Servo bg;
void setup() {
pinMode (LaserPin, OUTPUT);
pinMode(LaserPowerPin, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(TimerEndPin, OUTPUT);
digitalWrite(7, HIGH);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
pinMode(A4, INPUT);
pinMode(A5, INPUT);
Serial.begin(115200);
// Initialiser le servo moteur
bg.attach(11);
pinMode(12,INPUT);
pinMode(2,OUTPUT);
}
void loop() {
btstate=digitalRead(12);
Serial.println(compteur);
Serial.println(compteur);
Serial.println(compteur);
while((btstate==0) && (compteur==0)){
btstate=digitalRead(12);
unsigned long currentMillis = millis();
digitalWrite(8, HIGH);
digitalWrite(LaserPin, HIGH);
Lazer1 = analogRead(A5);
Lazer2 = analogRead(A4);
Lazer3 = analogRead(A3);
Lazer4 = analogRead(A2);
if (startTime == 0) {
startTime = currentMillis;
}
// Vérifier si l'un des capteurs laser est déclenché
if (Lazer1 < 200 || Lazer2 < 200 || Lazer3 < 200 || Lazer4 < 200) {
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
elapsedTime = currentMillis - startTime;
// Soustraire 30 secondes du temps écoulé si nécessaire
elapsedTime += SUBTRACTION_TIME;
startTime -= SUBTRACTION_TIME;
delay(150);
}
else {
digitalWrite(led2, HIGH);
digitalWrite(led1, LOW);
}
// Calculer le temps écoulé depuis le début du minuteur
elapsedTime = currentMillis - startTime;
if (elapsedTime <= TIMER_DURATION){
unsigned long remainingTime = (TIMER_DURATION - elapsedTime) / 1000;
Serial.print("Temps restant : ");
Serial.print(remainingTime / 60);
Serial.print(" minutes ");
Serial.print(remainingTime % 60);
Serial.println(" secondes");
}
// Vérifier si le minuteur est écoulé
if (elapsedTime >= TIMER_DURATION) {
// Déclencher le servo moteur pour faire tourner de 90 degrés
bg.write(180);
digitalWrite(TimerEndPin, HIGH);
Serial.println("temps ecoule ");
}
}
while(btstate==1){
digitalWrite(7,LOW);
Serial.println("code bon");
compteur = compteur + 1;
digitalWrite(2,HIGH);
}
}
voila merci beaucoup pour votre future aide ! :slight_smile: