RobotPower MultiMoto Control protector guía (2 / 3 paso)

Paso 2: programación

La programación parece más confusa de lo que realmente es, hay sólo un montón de variables a ser inicializado. Una vez que todo es control es fácil.

Este código ejecuta el setup luego mueve los actuadores y a media velocidad y velocidad máxima.

Lo importante tener en cuenta al controlar la MultiMoto:

-Utilizar digitalWrite() para permitir que los motores, bajo = habilitado, alto = inhabilitado

-Utilice digitalWrite() sobre los pivotes de dirección para establecer la dirección de los motores. 1 o 0 como extensión o contracción depende de cómo la conexión del actuador a los terminales M1-M4.

-Utilice analogWrite() los pines PWM para la velocidad (0-255)

 /* Example code to control up to 4 actuators,using the Robot Power MultiMoto driver. Hardware: - Robot Power MultiMoto - Arduino Uno Wiring: - Connect actuators to the M1, M2, M3, M4 connections on the MultiMoto board. - Connect the negative (black) to the right connection, positive (red) to the left. - Connect a 12 volt source (minimum 1A per motor if unloaded, 8A per motor if fully loaded)to the BAT terminals. Ensure that positive and negative are placed in the correct spots. Code modified by Progressive Automations from the example code provided by Robot Power <a href="http://www.robotpower.com/downloads/" rel="nofollow"> http://www.robotpower.com/downloads/</a> Robot Power MultiMoto v1.0 demo This software is released into the Public Domain */ // include the SPI library: #include <SPI.h> // L9958 slave select pins for SPI #define SS_M4 14 #define SS_M3 13 #define SS_M2 12 #define SS_M1 11 // L9958 DIRection pins #define DIR_M1 2 #define DIR_M2 3 #define DIR_M3 4 #define DIR_M4 7 // L9958 PWM pins #define PWM_M1 9 #define PWM_M2 10 // Timer1 #define PWM_M3 5 #define PWM_M4 6 // Timer0 // L9958 Enable for all 4 motors #define ENABLE_MOTORS 8 int pwm1, pwm2, pwm3, pwm4; boolean dir1, dir2, dir3, dir4; void setup() { unsigned int configWord; // put your setup code here, to run once: pinMode(SS_M1, OUTPUT); digitalWrite(SS_M1, LOW); // HIGH = not selected pinMode(SS_M2, OUTPUT); digitalWrite(SS_M2, LOW); pinMode(SS_M3, OUTPUT); digitalWrite(SS_M3, LOW); pinMode(SS_M4, OUTPUT); digitalWrite(SS_M4, LOW); // L9958 DIRection pins pinMode(DIR_M1, OUTPUT); pinMode(DIR_M2, OUTPUT); pinMode(DIR_M3, OUTPUT); pinMode(DIR_M4, OUTPUT); // L9958 PWM pins pinMode(PWM_M1, OUTPUT); digitalWrite(PWM_M1, LOW); pinMode(PWM_M2, OUTPUT); digitalWrite(PWM_M2, LOW); // Timer1 pinMode(PWM_M3, OUTPUT); digitalWrite(PWM_M3, LOW); pinMode(PWM_M4, OUTPUT); digitalWrite(PWM_M4, LOW); // Timer0 // L9958 Enable for all 4 motors pinMode(ENABLE_MOTORS, OUTPUT); digitalWrite(ENABLE_MOTORS, HIGH); // HIGH = disabled / /******* Set up L9958 chips ********* ' L9958 Config Register ' Bit '0 - RES '1 - DR - reset '2 - CL_1 - curr limit '3 - CL_2 - curr_limit '4 - RES '5 - RES '6 - RES '7 - RES '8 - VSR - voltage slew rate (1 enables slew limit, 0 disables) '9 - ISR - current slew rate (1 enables slew limit, 0 disables) '10 - ISR_DIS - current slew disable '11 - OL_ON - open load enable '12 - RES '13 - RES '14 - 0 - always zero '15 - 0 - always zero */ // set to max current limit and disable ISR slew limiting configWord = 0b0000010000001100; SPI.begin(); SPI.setBitOrder(LSBFIRST); SPI.setDataMode(SPI_MODE1); // clock pol = low, phase = high // Motor 1 digitalWrite(SS_M1, LOW); SPI.transfer(lowByte(configWord)); SPI.transfer(highByte(configWord)); digitalWrite(SS_M1, HIGH); // Motor 2 digitalWrite(SS_M2, LOW); SPI.transfer(lowByte(configWord)); SPI.transfer(highByte(configWord)); digitalWrite(SS_M2, HIGH); // Motor 3 digitalWrite(SS_M3, LOW); SPI.transfer(lowByte(configWord)); SPI.transfer(highByte(configWord)); digitalWrite(SS_M3, HIGH); // Motor 4 digitalWrite(SS_M4, LOW); SPI.transfer(lowByte(configWord)); SPI.transfer(highByte(configWord)); digitalWrite(SS_M4, HIGH); //Set initial actuator settings to pull at 0 speed for safety dir1 = 0; dir2 = 0; dir3 = 0; dir4 = 0; // Set direction pwm1 = 0; pwm2 = 0; pwm3 = 0; pwm4 = 0; // Set speed (0-255) digitalWrite(ENABLE_MOTORS, LOW);// LOW = enabled } // End setup void loop() { dir1 = 1; pwm1 = 255; //set direction and speed digitalWrite(DIR_M1, dir1); analogWrite(PWM_M1, pwm1); // write to pins dir2 = 0; pwm2 = 128; digitalWrite(DIR_M2, dir2); analogWrite(PWM_M2, pwm2); dir3 = 1; pwm3 = 255; digitalWrite(DIR_M3, dir3); analogWrite(PWM_M3, pwm3); dir4 = 0; pwm4 = 128; digitalWrite(DIR_M4, dir4); analogWrite(PWM_M4, pwm4); delay(5000); // wait once all four motors are set dir1 = 0; pwm1 = 128; digitalWrite(DIR_M1, dir1); analogWrite(PWM_M1, pwm1); dir2 = 1; pwm2 = 255; digitalWrite(DIR_M2, dir2); analogWrite(PWM_M2, pwm2); dir3 = 0; pwm3 = 128; digitalWrite(DIR_M3, dir3); analogWrite(PWM_M3, pwm3); dir4 = 1; pwm4 = 255; digitalWrite(DIR_M4, dir4); analogWrite(PWM_M4, pwm4); delay(5000); }//end void loop 

Artículos Relacionados

Descripción de escudo MegaMoto Control RobotPower

Descripción de escudo MegaMoto Control RobotPower

El puente H Plus MegaMoto y los controladores de motor de GT MegaMoto son protectores para el Arduino controlar motores. La MegaMoto Plus tiene un voltaje de entrada de 5-28V y puede salida 20A de corriente, con picos de 40A. La MegaMoto GT, con el a
Usando tablas de relé para controlar actuadores lineales

Usando tablas de relé para controlar actuadores lineales

En este Instructable, a aprender cómo utilizar las tablas de relé para controlar actuadores lineales. Todos los relés actúan igual, la única diferencia es cuántos están en el tablero.Cuatro relais pueden combinarse con la MegaMoto de mandos para perm
Controlar el tiempo de un movimiento de actuadores

Controlar el tiempo de un movimiento de actuadores

En este Instructable, vamos a aprender cómo controlar el momento de un actuador lineal, usando un escudo de control del motor MegaMoto.Para este proyecto necesitarás:-1 x tablero RobotPower MegaMoto-1 x Arduino Uno-x 1 actuador lineal-1 x fuente de a
Control de alimentación periférica con protector de pantalla

Control de alimentación periférica con protector de pantalla

primero: este proyecto se enchufa en el puerto de impresora de una computadora. Yo no se hará responsable por alguien quemando su Motherboard, Tarjeta madre. Por favor, por favor, tenga cuidado y triple verificación todas sus conexiones si vas a inte
Control de una cámara con un Arduino y el RS232 protector

Control de una cámara con un Arduino y el RS232 protector

Este tutorial le mostrará cómo puede controlar diferentes aspectos de una operación de las cámaras con un Arduino. Operación de estos puede ser el pan y tilt de la cámara, el zoom y el enfoque de la lente y las características RGB. Arduino utiliza un
Control remoto cualquier dispositivo a través de SMS usando Arduino, tableros de relés y protectores de c-uGSM o d-u3G

Control remoto cualquier dispositivo a través de SMS usando Arduino, tableros de relés y protectores de c-uGSM o d-u3G

Algunas veces hace, sentí la necesidad de tener control remoto interruptor de encendido y apagado de la iluminación exterior de algunos. En el patio de mi casa, elegir algunos de los componentes y construir este paquete SMS controlado por relé (S).Aq
D-Motor conductor protector (para control de velocidad)

D-Motor conductor protector (para control de velocidad)

«D-Motor Driver escudo v1.0»-Escudo de controlador de motor de bajo costo para placas arduinoEl propósito de este proyecto es animar a los aficionados de robot para reducir los gastos al hacer robotsporque cada parte de un robot debe ser idealmente b
Control de un Arduino con el teléfono

Control de un Arduino con el teléfono

Hola a todos! En este instructible mostraré cómo controlar y leer sensores con arduino y blynk. Blynk es una aplicación que permite el control completo sobre arduino, rasberry pi y chispa base. Con tu smartphone! Y es tan fácil como subir algo de cód
Bluetooth control LED portátil con Intel Edison

Bluetooth control LED portátil con Intel Edison

¿Que nunca imaginó un mundo donde se puede cambiar el patrón de un vestido con un empuje del botón? ¿O a poder cambiar la altura de un dobladillo con un golpe de dedo? Tecnología permite control y personalización en lugares donde normalmente no lo ha
WiFi controló tira de LED RGB

WiFi controló tira de LED RGB

Los utiliza para controlar tiras de LED RGB control remoto IR a veces puede llegar a ser irritante debido a su gama limitada y buscando el control remoto cuando no las encuentra. Este proyecto simple, pero eficaz puede resolver un problema mediante e
Gesture controlled robot

Gesture controlled robot

Desea controlar desde un simple gesto de sus dedos. Quieres algo que se mueve o detener según los dedos. Si es el caso, entonces estás en el lugar correcto. Estos gestos de días son de gran importancia. En nuestra vida diaria utilizamos muchos gestos
Control remoto de TV mesa de centro

Control remoto de TV mesa de centro

¡ Hola!Así que tuvo esta idea hace un tiempo y pensé que sería encontrar cosas similares en línea, pero vueltas por ahí son un montón de información sobre ese tipo de proyecto. Hace unas semanas encontré el Instructable de mesa remoto por russm313 (
Módulo de Control de fuegos artificiales

Módulo de Control de fuegos artificiales

Hace unos años me encontré con un módulo de control de fuegos artificiales construido por el usuario de Instructables: systemf92. Su módulo era un gran diseño (encontrado aquí) y sabía que un día tendría que construir algo similar porque combina dos
Control remoto vía GSM/GPRS SMS(Arduino)

Control remoto vía GSM/GPRS SMS(Arduino)

control remoto, especialmente cuando este no ethernet o Wifi en el exterior, ha sido una cosas muy profundas en el pasado. Cuando era un niño, siempre imagen que yo tengo un equipo que puede controlar todos los electrodomésticos. Ahora, esto se convi