0% encontró este documento útil (0 votos)
6 vistas10 páginas

Programación de Coche 4x4 con Arduino

Prácticas de arduino

Cargado por

Pedro76
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas10 páginas

Programación de Coche 4x4 con Arduino

Prácticas de arduino

Cargado por

Pedro76
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

PROGRAMACIÓN COCHE 4X4:

Para programar el coche en Arduino vamos escribir el siguiente código para que se pueda mover.
Para realizar esta tarea abrimos la aplicación IDE Arduino.

Práctica 1.
Vamos a escribir el primer código para que el coche se mueva hacia adelante y hacia atrás.

A la hora de escribir el código en arduino podemos distinguir dos funciones principales.

void setup(){
// aquí escribimos el código para definir diferentes parámetros de la librería que vayamos a utilizar.
}

void loop(){
// aquí escribimos el código que qeremos que se ejecute.
}

En nuestro caso el código que hay que escribir para que se mueva nuestro coche es el siguiente:

#include<AFMotor.h> // Esta línea indica la librería que vamos autilizar.” Hay que instalarla
previamente”.

AF_DCMotor Motor1(1);
AF_DCMotor Motor2(2);
AF_DCMotor Motor3(3);
AF_DCMotor Motor4(4);
// Con las líneas anteriores estamos definiendo los motores de la Motor Shield.

void setup(){
[Link](9600);
[Link](255); // definimos la velocidad de los motores que va desde 0 a 255
[Link](255);
[Link](255);
[Link](255);
}

void loop(){
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](FORWARD);
[Link](FORWARD);
[Link](FORWARD);
delay (2000); // el tiempo de movimiento es 2 segundos

[Link](RELEASE); // el coche se para, todo los motores


[Link](RELEASE);
[Link](RELEASE);
[Link](RELEASE);
delay (1000) ; // se para durante 1 segundo

[Link](BACKWARD); // el coche se mueve hacia atrás


[Link](BACKWARD);
[Link](BACKWARD);
[Link](BACKWARD);
delay (2000); // durante 2 segundos

Reto: Cambia los tiempos para que el recorrido sea más largo.

Práctica 2.
Ahora vamos hacer que el coche se mueva a izquierda y derecha.
Para hacer esto hacemos que un lado se pare y el otro continue en movimiento el tiempo necesario
para que [Link] más tiempo el giro será más pronunciado.
Escribamos el código.

#include<AFMotor.h>
AF_DCMotor Motor1(1);
AF_DCMotor Motor2(2);
AF_DCMotor Motor3(3);
AF_DCMotor Motor4(4);

void setup(){
[Link](9600);
[Link](255); // definimos la velocidad de los motores que va desde 0 a 255
[Link](255);
[Link](255);
[Link](255);
}

void loop(){
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](FORWARD);
[Link](FORWARD);
[Link](FORWARD);
delay (2000); // el tiempo de movimiento es 2 segundos

[Link](RELEASE); // el coche se para, todo los motores


[Link](RELEASE);
[Link](RELEASE);
[Link](RELEASE);
delay (1000) ; // se para durante 1 segundo

[Link](BACKWARD); // el coche se mueve hacia atrás


[Link](BACKWARD);
[Link](BACKWARD);
[Link](BACKWARD);
delay (2000);
// El coche se mueve hacia la derecha.
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](FORWARD);
[Link](RELEASE);
[Link](FORWARD);
delay (2000); // el tiempo de movimiento es 2 segundos

[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.


[Link](FORWARD);
[Link](FORWARD);
[Link](FORWARD);
delay (2000); // el tiempo de movimiento es 2 segundos
// El coche se mueve hacia la izquierda
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](RELEASE);
[Link](FORWARD);
[Link](FORWARD);
delay (2000); // el tiempo de movimiento es 2 segundos

Reto1: Cambia los tiempos para que los giros sean más pronunciados.
Reto2: Realiza un código para que el coche realice un circuito cerrado.

Práctica 3.
Vamos ahora a intentar simplificar o hacer más accesible nuestro código. Vamos a definir las
funciones que son trozos de código que repite y lo vamoa a utilizar varias veces, por ejemplo la
parte del código que va hacia adelante lo podemos definir en una función y cuando lo necesitemos
sólo debemos invocar o llamar a esa función para entenderlo mejor vamoas al código.

#include<AFMotor.h>
AF_DCMotor Motor1(1);
AF_DCMotor Motor2(2);
AF_DCMotor Motor3(3);
AF_DCMotor Motor4(4);

void setup(){
[Link](9600);
[Link](255); // definimos la velocidad de los motores que va desde 0 a 255
[Link](255);
[Link](255);
[Link](255);
}

void loop(){
adelante();
delay(2000);
derecha();
delay(500);
atras();
delay(2000);
izquierda();
delay(500);
adelante();
delay(2000);

void adelante(){
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](FORWARD);
[Link](FORWARD);
[Link](FORWARD);

void paro(){
[Link](RELEASE); // el coche se para, todo los motores
[Link](RELEASE);
[Link](RELEASE);
[Link](RELEASE);

void atras(){
[Link](BACKWARD); // el coche se mueve hacia atrás
[Link](BACKWARD);
[Link](BACKWARD);
[Link](BACKWARD);

void derecha(){
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](FORWARD);
[Link](RELEASE);
[Link](FORWARD);

void izquierda(){
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](RELEASE);
[Link](FORWARD);
[Link](FORWARD);

}
Práctica 4.

Ahora vamos a programar los leds que tiene incorporado el coche, vamos a programar un pqueño
código para que cuando vaya hacia adelante se encienda los leds delanteros y cuando vaya hacia
atrás se encienda los leds traseros.

Primero debemos averiguar en que pins está conectados los leds a la placa arduino.

Led trasero izquierdo=44


Led trasero derecho=45

led delantero izquierdo=46


led delantero derecho=47

Primero debemos definir en la función setup el modo en que actua el pin con la siguiente línea de
código:

pinMode(44,OUTPUT);

Y en la función loop debemos abrir o cerrar el Pin con la siguiente línea de código:

digitalWrite(44,HIGH); // El led se enciende


digitalWrite(44,LOW); // El led se apaga

Empezamos a programar:

#include <AFMotor.h>
AF_DCMotor Motor1(1);
AF_DCMotor Motor2(2);
AF_DCMotor Motor3(3);
AF_DCMotor Motor4(4);

void setup(){
[Link](9600);
[Link](255); // definimos la velocidad de los motores que va desde 0 a 255
[Link](255);
[Link](255);
[Link](255);
pinMode(44,OUTPUT);
pinMode(45,OUTPUT);
pinMode(46,OUTPUT);
pinMode(47,OUTPUT);
}

void loop(){
adelante();
delay(2000);
derecha();
delay(500);
atras();
delay(2000);
izquierda();
delay(500);
adelante();
delay(2000);

void adelante(){
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](FORWARD);
[Link](FORWARD);
[Link](FORWARD);
digitalWrite(44,HIGH);
digitalWrite(45,HIGH);
digitalWrite(46,LOW); // apagamos los leds
digitalWrite(47,LOW);
}

void paro(){
[Link](RELEASE); // el coche se para, todo los motores
[Link](RELEASE);
[Link](RELEASE);
[Link](RELEASE);

void atras(){
[Link](BACKWARD); // el coche se mueve hacia atrás
[Link](BACKWARD);
[Link](BACKWARD);
[Link](BACKWARD);
digitalWrite(46,HIGH);
digitalWrite(47,HIGH);
digitalWrite(44,LOW); // apagamos los leds
digitalWrite(45,LOW);
}

void derecha(){
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](FORWARD);
[Link](RELEASE);
[Link](FORWARD);

void izquierda(){
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](RELEASE);
[Link](FORWARD);
[Link](FORWARD);
}
Práctica 5.

Ahora vamos aprogramar el Buzzer que tiene incorporado el coche y vamos a hacer que suene
cuando vaya marcha atrás.
Para hacer las lóneas de código hacemos lo mismo que con los leds y utilizamos el mismo código.

Buzzer=49

#include <AFMotor.h>
AF_DCMotor Motor1(1);
AF_DCMotor Motor2(2);
AF_DCMotor Motor3(3);
AF_DCMotor Motor4(4);

void setup(){
[Link](9600);
[Link](255); // definimos la velocidad de los motores que va desde 0 a 255
[Link](255);
[Link](255);
[Link](255);
pinMode(44,OUTPUT);
pinMode(45,OUTPUT);
pinMode(46,OUTPUT);
pinMode(47,OUTPUT);
pinMode(49,OUTPUT);
}

void loop(){
adelante();
delay(2000);
derecha();
delay(500);
atras();
delay(2000);
izquierda();
delay(500);
adelante();
delay(2000);

void adelante(){
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](FORWARD);
[Link](FORWARD);
[Link](FORWARD);
digitalWrite(44,HIGH);
digitalWrite(45,HIGH);
digitalWrite(46,LOW); // apagamos los leds
digitalWrite(47,LOW);
digitalWrite(49,LOW); // apagamos el Buzzer
}

void paro(){
[Link](RELEASE); // el coche se para, todo los motores
[Link](RELEASE);
[Link](RELEASE);
[Link](RELEASE);

void atras(){
[Link](BACKWARD); // el coche se mueve hacia atrás
[Link](BACKWARD);
[Link](BACKWARD);
[Link](BACKWARD);
digitalWrite(46,HIGH);
digitalWrite(47,HIGH);
digitalWrite(44,LOW); // apagamos los leds
digitalWrite(45,LOW);
digitalWrite(49,HIGH);
}

void derecha(){
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](FORWARD);
[Link](RELEASE);
[Link](FORWARD);

void izquierda(){
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](RELEASE);
[Link](FORWARD);
[Link](FORWARD);

Práctica 6.

En esta práctica vamos hacer que los leds parpadeen al hacer un giro, para ello vamos a utilizar una
estructura de control de repetición en este caso la sentencia For.
Su sintaxis sería la siguiente:

For(int i=0;i<3;i++){
//Aquí va el código que quiero que se repita.

Vamos ahora con nuestro código:


#include <AFMotor.h>
AF_DCMotor Motor1(1);
AF_DCMotor Motor2(2);
AF_DCMotor Motor3(3);
AF_DCMotor Motor4(4);

void setup(){
[Link](9600);
[Link](255); // definimos la velocidad de los motores que va desde 0 a 255
[Link](255);
[Link](255);
[Link](255);
pinMode(44,OUTPUT);
pinMode(45,OUTPUT);
pinMode(46,OUTPUT);
pinMode(47,OUTPUT);
}

void loop(){
adelante();
delay(2000);
derecha();
delay(1000);
atras();
delay(2000);
izquierda();
delay(1000);
adelante();
delay(2000);

void adelante(){
[Link](FORWARD) ; // el coche se mueve hacia adelante , todos los motores.
[Link](FORWARD);
[Link](FORWARD);
[Link](FORWARD);
//digitalWrite(44,HIGH);
//digitalWrite(45,HIGH);
//digitalWrite(46,LOW);
//digitalWrite(47,LOW)
}
void paro(){
[Link](RELEASE); // el coche se para, todo los motores
[Link](RELEASE);
[Link](RELEASE);
[Link](RELEASE);
}
void atras(){
[Link](BACKWARD); // el coche se mueve hacia atrás
[Link](BACKWARD);
[Link](BACKWARD);
[Link](BACKWARD);
//digitalWrite(46,HIGH);
//digitalWrite(47,HIGH);
//digitalWrite(44,LOW);
//digitalWrite(45,LOW);

}
void derecha(){
[Link](FORWARD) ;
[Link](FORWARD);
[Link](RELEASE);
[Link](FORWARD);

for(int i=0;i<3;i++){
digitalWrite(44,HIGH);
digitalWrite(46,HIGH);
delay(200);
digitalWrite(44,LOW);
digitalWrite(46,LOW);
}
}
void izquierda(){
[Link](FORWARD) ;
[Link](RELEASE);
[Link](FORWARD);
[Link](FORWARD);
for(int i=0;i<3;i++){
digitalWrite(47,HIGH);
digitalWrite(45,HIGH);
delay(100);
digitalWrite(45,LOW);
digitalWrite(47,LOW);
delay(100);
}

También podría gustarte