#include <BitbloqSoftwareSerial.h>
/*** Global variables and function definition ***/
uint8_t luzderecha = 53;
uint8_t luziquierda = 51;
uint8_t infrarrojosDerecha = 47;
uint8_t infrarrojosIzquierda = 49;
uint8_t boton = 52;
uint8_t IN1izRetro = 3;
uint8_t IN2izAlante = 4;
uint8_t IN3dchRetro = 5;
uint8_t IN4dchAlante = 6;
uint8_t ENAiz = 8;
uint8_t ENBdch = 9;
bqSoftwareSerial puerto_serie(0, 1, 9600);
float voy = 0;
float izquierda = 1;
float derecha = 1;
void linea() {
derecha = digitalRead(infrarrojosDerecha);
izquierda = digitalRead(infrarrojosIzquierda);
// puerto_serie.print(izquierda);
// puerto_serie.println(derecha);
if (izquierda == 1) {
digitalWrite(luziquierda, HIGH);
digitalWrite(IN3dchRetro, LOW);
digitalWrite(IN4dchAlante, HIGH);
}
else if (izquierda == 0) {
digitalWrite(luziquierda, LOW);
digitalWrite(IN4dchAlante, LOW);
digitalWrite(IN3dchRetro, HIGH);
}
if (derecha == 1) {
digitalWrite(luzderecha, HIGH);
digitalWrite(IN1izRetro, LOW);
digitalWrite(IN2izAlante, HIGH);
}
else if (derecha == 0) {
digitalWrite(luzderecha, LOW);
digitalWrite(IN2izAlante, LOW);
digitalWrite(IN1izRetro, HIGH);
}
}
/*** Setup ***/
void setup() {
pinMode(luzderecha, OUTPUT);
pinMode(luziquierda, OUTPUT);
pinMode(infrarrojosDerecha, INPUT);
pinMode(infrarrojosIzquierda, INPUT);
pinMode(boton, INPUT);
pinMode(IN1izRetro, OUTPUT);
pinMode(IN2izAlante, OUTPUT);
pinMode(IN3dchRetro, OUTPUT);
pinMode(IN4dchAlante, OUTPUT);
puerto_serie.begin(9600);
digitalWrite(IN1izRetro, LOW);
// digitalWrite(IN2izAlante, HIGH);
digitalWrite(IN3dchRetro, LOW);
// digitalWrite(IN4dchAlante, HIGH);
pinMode(ENAiz, OUTPUT);
pinMode(ENBdch, OUTPUT);
analogWrite(ENAiz, 70);
analogWrite(ENBdch, 70);
}
/*** Loop ***/
void loop() {
if (digitalRead(boton) == 1) {
while (digitalRead(boton) == 1) {
}
if (voy == 0) {
voy = 1;
}
else {
voy = 0;
}
}
if (voy == 0) {
digitalWrite(IN2izAlante, LOW);
digitalWrite(IN4dchAlante, LOW);
}
else {
linea();
}
}