Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Pregunta dificil... como controlar un motor de corriente continua (o sea, solo positivo y negativo) tanto en sentido como en velocidad usando i2c. Opciones que he barajado:
* usar un DAC. ¿Problema? No los hay con valor 0 en el medio y los que hay si lo alimento con 5V la salida seria de -2.5 a +2.5, tendria que hacerme un circuito ex-profeso y no es facil (aparte de que me sobrepasa).
* PWM, igual que el anterior: no tiene cambio de sentido
* Combinar uno de los anteriores con un Puente H. Si, es posible, pero demasiados pines que controlar.
Lo ideal seria en mi caso usar un DAC7574 (4x12bits) conectado a medio L293B: un pin para controlar la velocidad, dos para controlar el sentido y el freno de emergencia, y otro para activar o desactivar los motores: el perfecto control en miniatura de un motor CC. ¿Problema? que la alimentacion de las cargas (el control de velocidad) es compartido por las dos mitades del L293B, y usar dos L293B me parece un despilfarro. Pregunto:
a) ¿hay algun chip como el L293B (o parecido a alguno de su familia) con los dos controles de cargas independientes?
b) en caso de que la anterior pregunta tenga respuesta negativa, ¿que opcion tengo que no sea pasar por un PIC (eso es matar moscas a cañonazos)?
Por el momento me he encontrado el PCA9531 que aunque no me permita cambiar el giro son 8 PWM independientes controlados directamente por i2c y los que no se usen se pueden utilizar con GPIO 😈 Ahora que ya tengo casi terminado de diseñar el circuito toca flashear la fonera y ver si consigo tener las piezas a tiempo... 😥
Ningún interfaz es más versátil que el hecho con un pic, pero si no es opción que se le va a hacer.
Y ya, si le metemos un Pentium 4 con 4 GB de Ram... 😀
Otra ventaja del pic es que una vez conectado el mismo puede decir que tipo de objeto es, y establecer sus parametros, cosa que no tendrías que hacer a mano. La verdad que un proyecto así sería bonito construyendo un robot de iniciación como el que se emepzo aquí con todo su hard y soft.
Autoreconocimiento, muy bueno, si señor, no se me habia ocurrido... Y ademas por lo que he visto el i2c no es demasiado pijotero y se podria enchufar en caliente... Habria que hacer que el master preguntara cada X tiempo a los clientes en busca de alguno nuevo o si se ha desconectado alguno, pero no se me habia ocurrido que se podria hacer... Me parece que me voy a ir apuntando todas estas ideas para mas adelante... 😀
El PC8574 es un expansor de bus I2C que funciona como entrada y salida latcheada, aunque si el PCA9531 que nombras, si te deja poner su duty a 0 y 100 puede que no te merezca la pena. Ventaja sobra el adc y el pca es que es bidireccional, si es que estos puedes usarlos así.
Al principio le heche el ojo a un port expander de 16 bits bastante chulo, pero solo me permitia datos en digital, no en analogico como pueden hacerlo el PCA y el ADC procesando las señales por software. Eso si, precisamente por ser bidireccional todavia no lo he descartado, lo unico que no lo puse en el diagrama (tengo que actualizarlo...)
El l298 te permite controlar dos motores en dirección y velocidad independientemente, con seis señales creo recordar, y creo que el 293 tb, no sé echale un ojo a los datasheet.
¡¡¡Bien, justo lo que yo queria!!! 😀 Luego lo buscare porque he mirado por encima y no parece sencillo de manejar del todo (pero al menos se deja...)
Cualquier aparato electrónico lleva n micros así que más tarde o más temprano te tendrás que ver con ellos.
Touche 😛