#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>
float distance = 0;
int EA = 9; // choisir le pin speed motor A
int IN1 = 8; // choisir le pin sens 1 motor A
int IN2 = 7; // choisir le pin sens 2 motor A
int IN3 = 5; // choisir le pin sens 1 motor B
int IN4 = 4; // choisir le pin sens 2 motor B
int EB = 3; // choisir le pin speed motor B
unsigned char speed = 0; // choisir le speed
float getDistance(int trig,int echo){
pinMode(trig,OUTPUT);
digitalWrite(trig,LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
pinMode(echo, INPUT);
return pulseIn(echo,HIGH,30000)/58.0;
}
void _delay(float seconds) {
long endTime = millis() + seconds * 1000;
while(millis() < endTime) _loop();
}
void setup() {
pinMode(3, OUTPUT); // declarer pin EA comme sortie
pinMode(4, OUTPUT); // declarer pin IN1 comme sortie
pinMode(5, OUTPUT); // declarer pin IN2 comme sortie
pinMode(6, OUTPUT); // declarer pin IN3 comme sortie
pinMode(7, OUTPUT); // declarer pin IN4 comme sortie
pinMode(8, OUTPUT); // declarer pin EB comme sortie
pinMode(13,OUTPUT);
while(1) {
distance = getDistance(10,11);
if(distance > 15){
digitalWrite(13,1);
// marche avant a vitese max
analogWrite(EA,255); // maitre la srtie EA=255 OU LE MAX
digitalWrite(IN1,LOW ); // maitre la srtie IN1=0
digitalWrite(IN2,HIGH ); // maitre la srtie IN2=1
digitalWrite(IN3,LOW ); // maitre la srtie IN3=0
digitalWrite(IN4,HIGH ); // maitre la srtie IN4=1
analogWrite(EB,255); // maitre la srtie EB=255 OU LE MAX
}else{
digitalWrite(13,0);
// marche ariere vitese max
analogWrite(EA,127); // maitre la srtie EA=255 OU LE MAX
digitalWrite(IN1,HIGH ); // maitre la srtie IN1=1
digitalWrite(IN2,LOW ); // maitre la srtie IN2=0
digitalWrite(IN3,HIGH ); // maitre la srtie IN3=1
digitalWrite(IN4,LOW ); // maitre la srtie IN4=0
analogWrite(EB,127); // maitre la srtie EB=255 OU LE MAX
}
// STOP
digitalWrite(EA,LOW ); // maitre la srtie EA=0 OU LE MAX
digitalWrite(IN1,LOW ); // maitre la srtie IN1=0
digitalWrite(IN2,LOW ); // maitre la srtie IN2=0
digitalWrite(IN3,LOW ); // maitre la srtie IN3=0
digitalWrite(IN4,LOW ); // maitre la srtie IN4=0
digitalWrite(EB,LOW ); // maitre la srtie EB=0 OU LE MAX
_loop();
}
}
void _loop() {
}
void loop() {
_loop();
}