Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Seguidor Linea Evita Obstaculo Final 3
Seguidor Linea Evita Obstaculo Final 3
#include<NewPing.h>
// Motor A - Derecho
int ENA = 10; // ENA connectado al pin digital 10
int IN1 = 4; // connectado al ping digital 4
int IN2 = 5; // connectado al ping digital 5
// Motor B - Izquierdo
int ENB = 9; // ENB connectado al pin digital 9
int IN3 = 6; // connectado al ping digital 6
int IN4 = 7; // connectado al ping digital 7
void setup() {
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(RIGHT, INPUT);
pinMode(LEFT, INPUT);
void loop() {
delay(70);
int distance = sonar.ping_cm();
if (distance == 0) {
distance = 30;
}
if(distance <=15) { // Se define la distancia para detectar un obstaculo y las
acciones a tomar
Stop();
delay(100);
turnRight();
delay(580);
moveForward();
delay(450);
turnLeft();
delay(550);
moveForward();
delay(700);
turnLeft();
delay(500);
moveForward();
delay(480);
turnRight();
delay(500);
}
if (analogRead(RIGHT)<=35 && analogRead(LEFT)<=35) { // en el Centro de la linea
negra avanza de Frente
analogWrite(ENA, 80); // Setea la velocidad a 80 en el rango posible de 0~255
analogWrite(ENB, 80);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
Stop();
}
}
void Stop() { // Detiene los motores
analogWrite(ENA, 0);
analogWrite(ENB, 0);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}