int pwm_a = 9;
int pwm_b = 10;
int dir_a = 7;
int dir_b = 8;
#define BUTTON 4
#define BUT 3
int val = 0;
int vall =0;
#define trigPin 6
 #define echoPin 5
void setup()
{
  Serial.begin (9600);
   pinMode(trigPin, OUTPUT);
   pinMode(echoPin, INPUT);
  pinMode(pwm_a, OUTPUT);
  pinMode(pwm_b, OUTPUT);
  pinMode(dir_a, OUTPUT);
  pinMode(dir_b, OUTPUT);
  pinMode(BUTTON,INPUT);// bouton gauche
  pinMode(BUT,INPUT);
  analogWrite(pwm_a,127);
  analogWrite(pwm_b,127);
  }
  void loop()
  {
   long duration, distance;
   digitalWrite(trigPin, LOW);  
   delayMicroseconds(2); 
   digitalWrite(trigPin, HIGH);
 //  delayMicroseconds(1000); 
   delayMicroseconds(10); // 
   digitalWrite(trigPin, LOW);
   duration = pulseIn(echoPin, HIGH);
   distance = (duration/2) / 29.1;
  val  = digitalRead(BUTTON);
  vall = digitalRead(BUT);
  if (val == HIGH){
    digitalWrite(dir_a,LOW);
    digitalWrite(dir_b,LOW);
 analogWrite(pwm_a,127);
  analogWrite(pwm_b,127);
  }
  else{
    digitalWrite(dir_b,HIGH);
    digitalWrite(dir_a,HIGH);
    delay(250);
    digitalWrite(dir_b,LOW);
    digitalWrite(dir_a, HIGH);
    delay(500);
    
  }
  if (vall == HIGH){
    digitalWrite(dir_a,LOW);
    digitalWrite(dir_b,LOW);
analogWrite(pwm_a,127);
  analogWrite(pwm_b,127);  
}
  else{
    digitalWrite(dir_b,HIGH);
    digitalWrite(dir_a,HIGH);
    delay(250);
    digitalWrite(dir_b,HIGH);
    digitalWrite(dir_a,LOW);
    delay(500);
  }   
   if (distance < 8) {  
     digitalWrite(dir_b,HIGH);
    digitalWrite(dir_a,HIGH);
    delay(500);
    digitalWrite(dir_b,HIGH);
    digitalWrite(dir_a,LOW);
    delay(2000);
 }
   else {
    digitalWrite(dir_a,LOW);
    digitalWrite(dir_b,LOW);
analogWrite(pwm_a,127);
  analogWrite(pwm_b,127);   
   
 }
  }
  
 
Aucun commentaire:
Enregistrer un commentaire