Hecho con Arduino
Simulado en Tinkercad
Diseño innovador
int MA1=11;
int MA2=10;
int MB1=6;
int MB2=5;
const int pingPin = 3; // pin connected to Echo Pin in the ultrasonic distance sensor
const int trigPin = 2; // pin connected to trig Pin in the ultrasonic distance sensor
void setup() {
// put your setup code here, to run once:
pinMode(MA1,OUTPUT);
pinMode(MA2,OUTPUT);
pinMode(MB1,OUTPUT);
pinMode(MB2,OUTPUT);
pinMode(trigPin,OUTPUT);
pinMode(pingPin,INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int cm = ping(pingPin) ;
if (cm >= 100){
analogWrite(MA1,150);
analogWrite(MA2,0);
analogWrite(MB1,200);
analogWrite(MB2,0);
}
if(cm < 100){
analogWrite(MA1,0);
analogWrite(MA2,0);
analogWrite(MB1,0);
analogWrite(MB2,0);
delay(1000);
analogWrite(MA1,150);
analogWrite(MA2,0);
analogWrite(MB1,0);
analogWrite(MB2,200);
delay(500);
analogWrite(MA1,0);
analogWrite(MA2,0);
analogWrite(MB1,0);
analogWrite(MB2,0);
delay(1000);
}
delay(50);
}
int ping(int pingPin)
{
// establish variables for duration of the ping,
// and the distance result in inches and centimeters:
long duration, cm;
// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(5);
digitalWrite(trigPin, LOW);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
// convert the time into a distance
cm = microsecondsToCentimeters(duration);
return cm ;
}
long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}