domingo, 9 de junio de 2019

NORBA LANDERS - 2º ESO

Una vez probado el circuito de motores nos faltaba dar el siguiente paso que consistía en programar el vehículo y añadirle los sensores.
Fase 1: programación de motores para realizar un circuito o recorrido concreto.
Fase 2: instalación de sensor de ultrasonidos para que el vehículo redirija su trayectoria en caso de encontrarse con obstáculos.

Fase 1: Para conectar los motores hemos utilizado un módulo L298N. Este módulo nos permite conectar ambos motores a la alimentación y desde él a la placa programable arduino. Las conexiones son bastante sencillas.
Hemos buscado información sobre él en varias páginas y blogs. Nos gustaría remitiros a este canal de youtube por si necesitáis más detalles:

Bitwise Ar https://www.youtube.com/channel/UC4unPLtykzwO7MB3IvaQZaA


Conexiones de módulo L298N

.
Cuando tenemos las conexiones programamos el movimiento de nuestros motores y probamos varios recorridos para practicar con el lenguaje de programación de Arduino:
int IN1= 7;
int IN2= 6;
int ENA= 5; //conectado a un pin con posibilidad de modulación pwn;
int IN3= 8;
int IN4= 9;
int ENB= 10; //conectado a un pin con posibilidad de modulación pwn;
int VELOCIDAD;

void setup() {
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (ENA, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
pinMode (ENB, OUTPUT);
}

void loop() {
 VELOCIDAD =200; //PUEDE VALER ENTRE 0 Y 255
 Aavance (VELOCIDAD);
 Bavance (VELOCIDAD);
 delay (3000);
 detieneAmbos ();
 delay (2000);
 Aavance (VELOCIDAD);
 delay (1000);
 detieneAmbos ();
 delay (2000);
 Aavance (VELOCIDAD);
 Bavance (VELOCIDAD);
 delay (3000);
 detieneAmbos ();
 delay (2000);
 Aavance (VELOCIDAD);
 delay (1000);
 detieneAmbos ();
 delay (2000);
}
void Aavance (int veloc) { //función para que avance el motor A
 analogWrite (ENA, veloc);
 digitalWrite (IN1, LOW);
 digitalWrite (IN2, HIGH);
}
void Bavance (int veloc) { //función para que avance el motor B
 analogWrite (ENB, veloc);
 digitalWrite (IN3, LOW);
 digitalWrite (IN4, HIGH);
}
void detieneAmbos () { //función para detener ambos motores
 analogWrite (ENA, 0);
 analogWrite (ENB, 0);
}

En este programa conseguimos el giro del vehículo parando uno de los motores durante un tiempo determinado.






No hay comentarios: