Usando el TB6612FNG Dual Sparkfun Motor Driver 1A - guía del principiante (9 / 9 paso)

Paso 9: El código

Por último, aquí está el código que he utilizado para controlar el conductor del motor.  Esperanza ha comentado suficiente claridad al sentido, y disculpas que no pude trabajar la manera de proporcionar una descarga link a él!

Disfrutar.

/*
Código de ejemplo para ejecutar el Sparkfun TB6612FNG 1A doble conductor del Motor utilizando Arduino UNO R3

Este código realiza algunas maniobras sencillas para ilustrar las funciones:
-motorDrive (motorNumber, motorDirection, motorSpeed)
-motorBrake(motorNumber)
-motorStop(motorNumber)
-motorsStandby

Conexiones:
-Pin 3---> PWMA
-Pin 8---> AIN2
-Pin 9---> AIN1
-Pin 10---> STBY
-Pin 11---> BIN1
-Pin 12---> BIN2
-Pin 5---> PWMB

-Motor 1: A01 y A02
-Motor 2: B01 y B02

*/

Definir los pines

Motor 1
int pinAIN1 = 9; Dirección
int pinAIN2 = 8; Dirección
int pinPWMA = 3; Velocidad

Motor 2
int pinBIN1 = 11; Dirección
int pinBIN2 = 12; Dirección
int pinPWMB = 5; Velocidad

Modo de espera
int pinSTBY = 10;

Constantes para ayudar a recordar los parámetros
Static boolean turnCW = 0;  para la función motorDrive
Static boolean turnCCW = 1; para la función motorDrive
Static boolean motor1 = 0;  para motorDrive motorStop, introduce funciones
Static boolean motor2 = 1;  para motorDrive motorStop, introduce funciones

void setup()
{
Establecer los modos PIN
pinMode (pinPWMA, salida);


pinMode (pinAIN1, salida);
pinMode (pinAIN2, salida);

pinMode (pinPWMB, salida);
pinMode (pinBIN1, salida);
pinMode (pinBIN2, salida);

pinMode (pinSTBY, salida);

}

void loop()
{

Unidad de ambos motores de CW, máxima velocidad
motorDrive (motor1, turnCW, 255);
motorDrive (motor2, turnCW, 255);

Seguir conduciendo durante 2 segs
Delay(2000);

Girar hacia motor1: parada Motor1, Motor2 lento
motorStop(motor1);
motorDrive (motor2, turnCW, 192);

Girando durante 2 segs
Delay(2000);

Gire en dirección opuesta: pare Motor2, Motor1 lento
motorDrive (motor1, turnCW, 192);
Delay(250);
motorStop(motor2);

Girando durante 2 segs
Delay(2000);

Enderece para arriba
motorDrive (motor2, turnCW, 192);
Delay(500);

Poner motores en modo de espera
motorsStandby();
Delay(1000);

Hacer una vuelta apretada hacia motor1: adelante, reversa de Motor1 Motor2
motorDrive (motor1, turnCCW, 192);
motorDrive (motor2, turnCW, 192);

Girando durante 2 segs
Delay(2000);

Aplique los frenos, luego en modo de espera
motorBrake(motor1);
motorBrake(motor2);
motorsStandby();

Reposar todavía 5 segundos, entonces que hacer todo de nuevo...
Delay(5000);

}

void motorDrive (booleano motorNumber, boolean motorDirection, motorSpeed int)
{
/*
Esto conduce un motor especificado en una dirección específica, a una velocidad especificada:
-motorNumber: motor1 o motor2---> 1 Motor o 2 motores
-motorDirection: turnCW o turnCCW---> en sentido horario o antihorario
-motorSpeed: 0 a 255---> 0 = parada / 255 = rápido
*/

pinIn1 Boolean;  Se refiere a AIN1 o BIN1 (dependiendo del número de motor especificado)

Especificar la dirección para girar el motor
Derecha: AIN1/BIN1 = alta y AIN2/BIN2 = baja
Agujas: AIN1/BIN1 = baja y AIN2/BIN2 = alta
Si (motorDirection == turnCW)
pinIn1 = alto;
otra cosa
pinIn1 = bajo;

Seleccione el motor para girar y fijar la dirección y la velocidad
if(motorNumber == motor1)
{
digitalWrite (pinAIN1, pinIn1);
digitalWrite (pinAIN2,! pinIn1);  Esto es lo contrario de la AIN1
analogWrite (pinPWMA, motorSpeed);
}
otra cosa
{
digitalWrite (pinBIN1, pinIn1);
digitalWrite (pinBIN2,! pinIn1);  Esto es lo contrario de la BIN1
analogWrite (pinPWMB, motorSpeed);
}

Por último, asegúrese de que está desactivada STBY - tire alta
digitalWrite (pinSTBY, HIGH);

}

void motorBrake(boolean motorNumber)
{
/*
Este "Freno corto" s el motor especificado, mediante el establecimiento de velocidad cero
*/

Si (motorNumber == motor1)
analogWrite (pinPWMA, 0);
otra cosa
analogWrite (pinPWMB, 0);

}

void motorStop(boolean motorNumber)
{
/*
Esto detiene el motor especificado estableciendo ambos pasadores IN baja
*/
Si (motorNumber == motor1) {}
digitalWrite (pinAIN1, bajo);
digitalWrite (pinAIN2, bajo);
}
otra cosa
{
digitalWrite (pinBIN1, bajo);
digitalWrite (pinBIN2, bajo);
}
}

void motorsStandby()
{
/*
Esto pone los motores en modo de espera
*/
digitalWrite (pinSTBY, bajo);
}

Artículos Relacionados

Velocidad control de motor de la c.c. del ordenador portátil utilizando arduino y procesamiento

Velocidad control de motor de la c.c. del ordenador portátil utilizando arduino y procesamiento

Hola a todosSoy vignesh raja. aquí me gustaría compartir el control de velocidad de motor de la c.c. del ordenador utilizando arduino y software de procesamiento. en este proyecto, el software de procesamiento de ejecutar una ventana de aplicación si
Paso a paso Motor Driver fácil

Paso a paso Motor Driver fácil

En este instructable le proporciono un ejemplo de código y el diseño para conectar un motor de pasos Nema 17 formulario factor a un tablero de regulador del motor de conductor fácil y luego controlar el motor con un Arduino Uno.Paso 1: Los componente
Proyecto Arduino: Giroscopio/acelerómetro MPU-6050 y Adafruit Motor Driver escudo

Proyecto Arduino: Giroscopio/acelerómetro MPU-6050 y Adafruit Motor Driver escudo

Hola chicos, si usted está planeando usar el módulo del MPU 6050 giroscopio/acelerómetro o L329D adafruit moter conductor protector con Arduino para su próximo proyecto luego te están en el lugar correcto, porque en el artículo estoy compartiendo un
Flash Drive cubierta de cinta del conducto

Flash Drive cubierta de cinta del conducto

amo mis memorias, pero la gota y pierden mucho. Una funda de cinta de conducto hace tu memory stick único, llamativo y un poco más resistente a la planta.Nota: sólo he hecho estos para discos que se pueden abrir con un control deslizante. El concepto
BaW-Bot parte 2: Construir el controlador de motor y cuerpo

BaW-Bot parte 2: Construir el controlador de motor y cuerpo

esta es la segunda parte de nuestra fabricación de BaW-Bot (Bot de campanas y silbatos) – 5 Separe instructables que mire de diferentes tecnologías relacionadas con Arduino, combinan para crear un Bot con todas las campanas-y-silbidos.Parte 1: Constr
Controlar un camión de juguete sobre WiFi remoto - usando un LinkIt

Controlar un camión de juguete sobre WiFi remoto - usando un LinkIt

Aquí es un proyecto de fin de semana! que incluye modificar un carro/coche de juguete y Mediatek LinkIt un tableroroto.Siga las instrucciones siguientes, que incluyen recuperación de componentes de la carretilla de juguete que puede utilizar como un
Arduino Uno y Visuino: controlar Robot coche Smart con Joystick y L298N controlador de Motor

Arduino Uno y Visuino: controlar Robot coche Smart con Joystick y L298N controlador de Motor

Que coche elegante se establece cuando se combinan con Los módulos de controladores Motor L298N, ofrecen una de las maneras más fáciles de fabricar coches robot. El Módulo del controlador Motor L298N es fácil de controlar con Arduino, y con la ayuda
Crear un Robot controlado por Wi-Fi, utilizando un LinkIt

Crear un Robot controlado por Wi-Fi, utilizando un LinkIt

Aquí está una guía paso a paso que ayudará a construir el primer robot y añadir complejidad, siguiendo a lo largo. Además de construir un obstáculo básico evitando el robot con un sensor de ultrasonidos y Sparkfun motor driver , también aprenderá a c
Rover de monitoreo ambiental - impulsado por Intel Edison

Rover de monitoreo ambiental - impulsado por Intel Edison

Se trata de un instructable inspirado por la Curiosidad de Marciano , no espero este rover a Marte!! pero lo imitan e implementar algunas características interesantes con Edison de Intel. Dicho esto, a la madre tierra puede encontrar aplicaciones ind
Clusterbot!

Clusterbot!

¿Qué es Clusterbot?  Él es un robot Arduino powered pequeño, asequible, autónomo.  Él puede moverse, ver, evitar obstáculos y hace un canto melódico sonido a veces.Clusterbot fue mi primer proyecto de Arduino, y creo que hace un gran proyecto para un
Robot de combate de Sumo autónomo con aleta neumática - cómo

Robot de combate de Sumo autónomo con aleta neumática - cómo

Bot Sumo este fue diseñado, construido, programado y probado durante un período de 12 semanas para uno de mi último año de clases de ingeniería. El objetivo fue diseñar y construir un ligero sumo totalmente autónoma lucha contra el robot para una cla
Hacer un Robot hormiga

Hacer un Robot hormiga

construir una hormiga robot que puede ser remota controlado o funcionar de forma autónoma. Usando un detector infrarrojo, se puede encontrar y recoger objetos. Es controlado por un microcontrolador de Picaxe 20 x-2.Mientras que esto es un robot basta
3D impreso Sumo Robot con ruedas de alta tracción

3D impreso Sumo Robot con ruedas de alta tracción

El objetivo fue diseñar y construir un ligero sumo totalmente autónoma lucha contra el robot para una competencia de robot de Sumo de la Universidad en. El robot fue necesaria para empujar o levantar el robot del oponente fuera de la arena.Restriccio
El Longboard eléctrico bricolaje presupuesto

El Longboard eléctrico bricolaje presupuesto

Hey yall! CoolRextreme aquí con otro post DIY Longboard...Sí, le daré una descripción detallada de mi fabricación. De la frustración en fascinación. ¿Por qué?Causa que todos sabemos son no sólo va suavemente y que se unen perfectamente.No, no voy a h