Ejemplo seguidor de linea con DRIVER L298N
Enviado por pepino1924 • 29 de Enero de 2019 • Práctica o problema • 655 Palabras (3 Páginas) • 625 Visitas
/* Programacion de SEGUIDOR DE LINEA con PWM usando ARDUINO, CNY70, DRIVER L298N.
Realizado por:THEFENIX-THE FENIX-EMIC TRON.*/
int infraPin1 = 7; // pin del infrarrojos utilizado como entrada digital en el lado derecho(#1).
int infraPin2 = 12; // pin del infrarrojos utilizado como entrada digital en el lado izquierdo(#2).
int valorInfra1 = 0; // Valor inicial de la lectura digital del infrarrojo #1.
int valorInfra2 = 0; // Valor inicial de la lectura digital del infrarrojo #2.
int ENB = 5; //ENB conectado al pin 5 con señal PWM
int ENA = 9; //ENA conectado al pin 9 con señal PWM
int OUTPUT4 = 8; // Output4 conectada al pin 4.
int OUTPUT3 = 9; // Output3 conectada al pin 3.
int OUTPUT2 = 11; // Output2 conectada al pin 6.
int OUTPUT1 = 12; // Output1 conectada al pin 7.
void setup() {
Serial.begin(9600); // Comenzamos comunicacion serial.
pinMode(infraPin1, INPUT); // Inicializa el pin 1 como entrada digital.
pinMode(infraPin2, INPUT); // Inicializa el pin 2 como entrada digital.
pinMode (ENA, OUTPUT); // Inicializa el pin 7 como salida digital.
pinMode (ENB, OUTPUT); // Inicializa el pin 6 como salida digital.
pinMode (OUTPUT1, OUTPUT); // Inicializa el pin 7 como salida digital.
pinMode (OUTPUT2, OUTPUT); // Inicializa el pin 6 como salida digital.
pinMode (OUTPUT3, OUTPUT); // Inicializa el pin 3 como salida digital.
pinMode (OUTPUT4, OUTPUT); // Inicializa el pin 4 como salida digital.
}
void loop() {
valorInfra1 = digitalRead(infraPin1); // Lee el valor de la entrada 10, esto es, el valor que lee el infrarrojo #1.
Serial.print("SENSOR1 "); //Imprimimos el texto "SENSOR1 "
Serial.println(valorInfra1); //Imprimimos la lectura del infrarrojo #1.
valorInfra2 = digitalRead(infraPin2); // Lee el valor de la entrada 11, esto es, el valor que lee el infrarrojo #2.
Serial.print("SENSOR2 "); //Imprimimos el texto "SENSOR2 "
Serial.println(valorInfra2); //Imprimimos la lectura del infrarrojo #2.
if(valorInfra1==0) // Si la lectura del infrarrojo #1 es 0, entonces se cumplira una de las siguientes condiciones:
{
if(valorInfra2==0){ // Si la lectura del infrarrojo #2 es 0, es decir los dos sensores estan sobre la linea negra, entonces los dos motores avanzaran en linea recta.
digitalWrite(OUTPUT1,0);
digitalWrite(OUTPUT2,1);
digitalWrite(OUTPUT3,1);
digitalWrite(OUTPUT4,0);
analogWrite(ENA,150); // El pin ENA maneja los pines output1 y output2
analogWrite(ENB,150); // El pin ENA maneja los pines output3 y
...