2. Movimiento por Código¶
En el proyecto anterior, intentamos controlar el funcionamiento del motor utilizando diferentes señales de nivel para la entrada del módulo L9110.
Si modificamos las señales de nivel a través del programa, entonces podremos controlar el movimiento del coche de manera flexible.
Componentes Necesarios
Para este proyecto, necesitaremos los siguientes componentes.
Definitivamente es conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ELEMENTOS DE ESTE KIT |
ENLACE |
---|---|---|
3 in 1 Starter Kit |
380+ |
También puedes comprarlos por separado en los enlaces a continuación.
INTRODUCCIÓN DEL COMPONENTE |
ENLACE DE COMPRA |
---|---|
- |
|
- |
Cableado
Conecta los cables entre el módulo L9110 y la placa R3 de acuerdo con el diagrama a continuación.
Módulo L9110 |
Placa R3 |
Motor |
---|---|---|
A-1B |
5 |
|
A-1A |
6 |
|
B-1B(B-2A) |
9 |
|
B-1A |
10 |
|
OB(B) |
Cable negro del motor derecho |
|
OA(B) |
Cable rojo del motor derecho |
|
OB(A) |
Cable negro del motor izquierdo |
|
OA(A) |
Cable rojo del motor izquierdo |
Código
Nota
Abre el archivo
2.move.ino
bajo la ruta de3in1-kit\car_project\2.move
.O copia este código en Arduino IDE.
Después de subir el código, el coche se moverá hacia adelante, hacia atrás, a la izquierda y a la derecha durante dos segundos respectivamente.
¿Cómo funciona?
Este proyecto es esencialmente el mismo que el anterior, implica hacer que el coche se mueva hacia adelante, hacia atrás, a la izquierda y a la derecha, así como detenerse proporcionando diferentes niveles de señal a los pines de entrada del módulo L9110.
Inicializar los pines del módulo L9110.
const int A_1B = 5; const int A_1A = 6; const int B_1B = 9; const int B_1A = 10; void setup() { pinMode(A_1B, OUTPUT); pinMode(A_1A, OUTPUT); pinMode(B_1B, OUTPUT); pinMode(B_1A, OUTPUT); }
Establecer los pines de entrada en diferentes niveles alto o bajo para controlar la rotación de los motores izquierdo y derecho, y luego encapsularlos en funciones individuales.
void moveForward() { digitalWrite(A_1B, LOW); digitalWrite(A_1A, HIGH); digitalWrite(B_1B, HIGH); digitalWrite(B_1A, LOW); } void moveBackward() { digitalWrite(A_1B, HIGH); digitalWrite(A_1A, LOW); digitalWrite(B_1B, LOW); digitalWrite(B_1A, HIGH); } ...
Llamar a estas funciones en
loop()
.void loop() { moveForward(); delay(2000); stopMove(); delay(500); moveBackward(); delay(2000); stopMove(); delay(500); ...
-
pin
: el número de pin de Arduino.valor
: HIGH o LOW.
Escribe un valor HIGH o LOW en un pin digital. Si el pin ha sido configurado como
OUTPUT
conpinMode()
, su voltaje se establecerá en el valor correspondiente: 5V (o 3.3V en placas de 3.3V) para HIGH, 0V (tierra) para LOW. -
pin
: el número de pin de Arduino para establecer el modo.modo
: INPUT, OUTPUT, o INPUT_PULLUP.
Configura el pin especificado para comportarse ya sea como una entrada o una salida.
-
ms
: la cantidad de milisegundos a pausar. Tipos de datos permitidos: unsigned long.
Pausa el programa durante la cantidad de tiempo (en milisegundos) especificada como parámetro. (Hay 1000 milisegundos en un segundo.)