Muy buenas, tengo una rueda trifásica tipo scooter y un controlador genérico para la misma sin sensores hall que quiero manejar desde arduino con un joystick. Estoy en fase de pruebas y de compras tecnológicas, y si no afino bien el segundo item probablemente entraré en fase de divorcio con mi mujer, por eso apelo a la ayuda y experiencia del foro. Este es el controlador:
Intento explicarme:
Antecedentes:
el controlador, una vez alimentado con 24 V y conectadas las tres fases del motor, va perfecto siempre que sea manejado por el potenciómetro que el controlador lleva incorporado, en ese caso la rueda va como si fuera de Alonso. Cuando en vez de usar el potenciómetro uso la entrada pwm que trae el propio controlador y que manejo desde mi arduino, la rueda va pero ya no tan bien, gira mas o menos a la velocidad que debe pero con un pequeño margen de inestabilidad (acelera-desacelera, como si lo condujera mi mujer). El joystick-chan que tengo trabaja con tres potenciómetros dos de los cuales bailan un poco al arrojar resultados y el tercero directamente me da los número de la lotería, por lo que me he conformado trabajando en dos rangos de movimiento de la palanca que darán como salida velocidad uno o velocidad dos (algo mas rápida). Es decir el programa arduino detecta perfectamente que le estoy indicando velocidad uno o velocidad dos desde el joystick y la parte pwm de salida (aunque puede que me equivoque) creo que también va correctamente (no es la primera vez que la utilizo) me parece que el problema es del controlador que no va fino con pwm y no tiene datasheet (se lo he pedido al fabricante y me ha mandado una foto con un gato dorado).
Este es un fragmento del código que uso para incrementar el pwm y que no me ha dado problemas:
//adelante recto velocidad uno-------------------------------
if((frenoreg == 0) && (x >= 400) && (x < 600) && (y >= 600) && (y < 1000)){
//si venimos de velocidad uno no hará nada
//while para ir incrementando paulatinamente la velocidad
if (outputValue == 0){
while (outputValue < 80){ //velocidad uno es 80
analogWrite(pwmPin, outputValue);
delay(10);
outputValue++;
}}
if (outputValue > 80){ //partimos de velocidad dos
while (outputValue > 80){
analogWrite(pwmPin, outputValue);
delay(10);
outputValue--;
}}
//-----------------------------------------------------
¿Que quiero?:
dado que el potenciómeto incorporado en el controlador va muy bien, pretendo utilizarlo y manipularlo directamente desde mi arduino, para que así el controlador ponga la rueda en velocidad uno o dos de manera estable según le indique la entrada del joystick.
Duda:
sé que algunas de las opciones que tengo para manejar un potenciómetro desde arduino son 1) pwm + filtro, pero tengo entendido que para voltajes altos no es buena solución, 2) potenciómetro digital, al igual que antes he leido que no va para grandes cargas, y 3) DAC esa creo que es la única opción viable, pero necesitaría un DAC que pueda controlar desde arduino y que permita manejar en sus (por lo menos) dos salidas, dos o tres valores de voltaje entre 0 y 24 V.
¿Alguien conoce alguno o tiene experiencia con uno así? ¿Se me escapa alguna otra solución? Quisiera evaluar mis posibilidades antes de ponerme a comprar compulsivamente para nada, además de evitar un posible sartenazo (los importes de compra salen en el extracto de la tarjeta).
P.D:
es posible que metiéndome a variar la frecuencia del pwm (490 Hz) consiga alguna mejora en mi primer programa que usa pwm (me encantaría usar pwm) pero lo dudo, aunque no estoy seguro, no tiene pinta de ir por ahí la solución, también he cargado algún código de prueba únicamente con la instrucción analogWrite(pwmPin, 80) y persiste la inestabilidad por lo que deduzco que no es tema de programación sino de controlador. También podría optar por probar usar un controlador con sensores hall (la rueda los tiene) que en teoría responden mejor en la etapa de inicio de la rueda que el que yo tengo (por fuerza contraelectromotriz) pero el mío rompe la teoría y va perfecto al arranque. También podría directamente comprar un controlador mejor (duelen mucho) y ver si gestionan mejor el pwm (suponiendo que ese sea el problema). En definitiva estoy abierto a evaluar cualquier opción que me pueda sugerir la gente que sabe, incluida la de no comprar nada e irme de vacaciónes. Gracias.