Modding de un tanque para control inalámbrico (6 / 9 paso)

Paso 6: Las funciones que controlan mis motores de la C.C.

Motores de corriente continua son el tipo más común que puede encontrarse en los aparatos. Voy a empezar con una breve descripción de las funciones que escribí para habilitar el control de motor DC en mi tablero:

INIT_DC()
Inicializa el generador de señal motor DC PCA9635, restablece las clavijas del ciclo de deber hasta el 0% y pone el perno de dirección 0. Los dos ceros en los pines de entrada de control de puente de H dejan el motor giro motriz y libre.

DC_drivers()
se modifica el estado de controladores de salida. Hay cuatro modos, los controladores de salida pueden trabajar en:
00 - controlador de LED x está apagado (estado por defecto de encendido).
01 - LED driver x es totalmente en (brillo individual y grupo atenuación/intermitente no controlada).
10 - LED driver x brillo individual puede ser controlado a través de su registro PWMx.
11 - LED driver x brillo individual y grupo atenuación/parpadeo puede controlarse a través de su registro PWMx y la GRPPWM registros.
El modo de cada controlador de salida se almacena en dos bits. Cuatro Estados del conductor se agrupan en un solo registro, el nombre de registro es el driver_id parámetro de la función DC_drivers. El segundo parámetro es driver_mode, el usuario debe proporcionar un valor de 8 bits con el modo de controlador de salida deseado a su lugar.
Por ejemplo, si hay necesidad de un interruptor de "totalmente en" a "Control PWM" modo de salida LED 1, bits 3:2 de LEDOUT0 tiene que cambiarse de 01 a 10. En el código de tablero de Control Motor IMP por defecto esto se hace en la función DC_command().
Aquí está un ejemplo sobre esto:

...
Temp = I2C_ReadByte (PCA9635, LEDOUT0);       leer el contenido de los registros
Temp = temp & 0xF3;                          eliminar los bits que se encuentran en campos de bits 3:2
Temp = temp | 0x08;                          establecer los bits de 3:2 a 10
DC_drivers (0, temp);                         llamar al DC_drivers() con los dos parámetros, LEDOUTx-en nuestro caso x es 0, y el actualizado registro valor
...

Leyendo el registro previamente al cambio de datos es necesario, porque los otros bits en el registro pueden tener efecto en las otras salidas que utilizamos. Para evitar esto, he leído en primer lugar, cambió los dos bits usados y escribió hacia atrás otra vez.

DC_command()
la función permite cambiar la velocidad y dirección del motor DC seleccionado. El primer parámetro id indica la función, que salida de la C.C. para modificar con los siguientes dos parámetros: Dirección y duty_cycle. Los dos últimos parámetros es sencilla. El ciclo de trabajo se limita a 99.6%, cualquier valor más grande se traducirá en cambio el ciclo de trabajo al 100%, cambiando el estado del controlador de salida a "totalmente en" modo.
Diferentes aplicaciones tendrá diferentes carga en los motores, para llegar detrás de esto, un algoritmo de rampa-para arriba puede utilizarse para aumentar gradualmente el ciclo de trabajo.

SleepMode()
Aprovecha de la característica del modo de sueño de la DRV8835. Puesto que este puente H extrae muy poca corriente de la fuente de la lógica (normalmente 450 μA, máximo 2 mA), puede ser alimentado directamente desde un pin del PCA9685, que puede fuente de un máximo de 10 mA. Esto es útil cuando uno de los puentes no se utiliza, ponerlo a dormir modo reducirá la corriente de la carga de alimentación a ~ 10 na. El primer parámetro "puente" selecciona uno de los dos puentes a bordo y puede tomar "AB" o "CD" como valor. Estos desactivar el puente marcado del mismo modo, visible en la serigrafía del tablero. El segundo parámetro es baja activa, activa o desactiva el modo de dormir en el puente seleccionado por el primer parámetro de la función.

Artículos Relacionados

SMS control inalámbrico sistema de riego

SMS control inalámbrico sistema de riego

Actualización 13/02/11: la votación ha comenzado para el concurso de microcontrolador de Sparkfun. Por favor voten por mi!ACTUALIZACIÓN 26/02/11: gané un segundo premio!!!! Huzzah! Gracias por los votos!ACTUALIZACIÓN 17/03/11: me encantaría ganar un
Agregar Control inalámbrico a mono luz M232

Agregar Control inalámbrico a mono luz M232

este instructable le guía a través de cómo agregar un control remoto inalámbrico para las luces de bicicleta mono M232 de luz existentes. Me encanta estas luces - rad 42 patrones, cargas de diferentes colores, dos ajustes de brillo y bajo consumo de
Acelerómetro Tilt control inalámbrico RGB LED-luces

Acelerómetro Tilt control inalámbrico RGB LED-luces

este es el video de mi instructable acelerómetro Tilt control inalámbrico RGB LED-luces. Muestra el transmisor inclinado en diferentes direcciones y la correspondiente luz de la lámpara.Instructivo
Alarma barata trampa para ratones inalámbrico usando un ATtiny85

Alarma barata trampa para ratones inalámbrico usando un ATtiny85

Un par de semanas hice la expedición anual hasta nuestra buhardilla a buscar las decoraciones de Navidad. Mientras iba pasando las cajas hasta mi esposa de que me di cuenta que teníamos algunos huéspedes no convidadas, evidentes por sus excrementos q
Convertir cualquier control remoto a un control inalámbrico interruptor ON/OFF

Convertir cualquier control remoto a un control inalámbrico interruptor ON/OFF

al construir un cronómetro de Toastmaster, necesitaba un interruptor para actuar como un interruptor de arranque/parada. Primero construí con un cable coaxial flexible larga, pero como pasaba el tiempo, resultó para ser impracticable: podría ser dema
Tiras de LED de Phone Remote-Controlled inalámbrico: RasPi con conductor Fadecandy con WS2811/WS2812 direccionable LED tiras con TouchOSC Smartphone App con el Iphone o el Droid

Tiras de LED de Phone Remote-Controlled inalámbrico: RasPi con conductor Fadecandy con WS2811/WS2812 direccionable LED tiras con TouchOSC Smartphone App con el Iphone o el Droid

Aquí va un resumen de diseño cada vez más amplia de mi último proyecto. A continuación, un vídeo que he subido mostrando algunas funciones:La progresión de la idea original fue algo como lo siguiente:Tira de LED direccionable (s siempre queremos más
Robot tanque de monitor inalámbrico basado en frambuesa pi

Robot tanque de monitor inalámbrico basado en frambuesa pi

DIY un tanque monitor sin hilos no es difícil basado en el pi de frambuesa, que se muestra en la siguiente imagen.Paso 1: Materiales para el monitor de frambuesa pi base tanque rc 1.Tablero de frambuesa pi:http://www.smartarduino.com/original-RPI-Ras
Cómo hacer un robot de control inalámbrico en unos simples pasos

Cómo hacer un robot de control inalámbrico en unos simples pasos

1) perf board (pcb simulada)2) los cables de3) codificador ht12e y decodificador ht12d ic, controlador de motor l293d4) módulos rf5) resistencias de 1 m y 51 k6) de led7) regulador de voltaje ic78058) 2 interruptores de dpdt9) motores del engranaje 4
Sencillo mando a distancia inalámbrico para Robot

Sencillo mando a distancia inalámbrico para Robot

Se trata de simple control remoto de 4 canales para el control de dos motores de corriente continua en dirección hacia adelante y reversa.Paso 1: Diseño transmisorTransmisor se construye usando el codificador HT12E, módulo inalámbrico de 433MHz y los
ESP8266 Inalámbrico indicador de uso higiénico (Smart Home)

ESP8266 Inalámbrico indicador de uso higiénico (Smart Home)

Como ingeniero, es suerte de trabajar para una empresa que con un grupo de fabricante. Porque a menudo nos encontramos con algunos problemas en nuestra vida, nuestro pesebre nos permite poner nuestra creatividad en juego completo debido a la atmósfer
Cardán mando inalámbrico con Google Glass

Cardán mando inalámbrico con Google Glass

Este instructivo sirve como una versión acortada de un documento más largo en la instalación y operación de un sistema de control inalámbrico de cardán con Google Glass.Los métodos y los resultados suelen ser en fase de pruebas beta y no será necesar
Nunchuck Wii inalámbrico controlado por Arduino

Nunchuck Wii inalámbrico controlado por Arduino

Utilizar un sin modificar totalmente inalámbrico Wii Nunchuck como un sistema de control para cualquier proyecto basado en Arduino. No pares de transmisor/receptor de radio mayor etc..Este instructable asumir alguna experiencia con el microcontrolado
Inalámbrico de consumo de energía eléctrica de monitoreo y registro de

Inalámbrico de consumo de energía eléctrica de monitoreo y registro de

son conocidos muchos consumo eléctrico monitoreo o medición de dispositivos - industrial realizado, basado en Arduino etc..En general no lo han hecho capacidades - pantalla Mostrar datos de monitoreo de datos remotos. Algunos de ellos pueden ser util
ESP8266-12 blynk temperatura inalámbrico, sensor de humedad DHT 11

ESP8266-12 blynk temperatura inalámbrico, sensor de humedad DHT 11

en este proyecto usando un esp8266, para mostrar la temperatura y la humedad DHT11 sensor en tu smartphone o tablet.------------------------esp8266-12 funciona a 3.3V pero muchos sensores operan a 5v, vamos a utilizar un convertidor de nivel lógico b