Hola a todos
mi nuevo proyecto (a ver si este lo acabo y no me atranco).
Es un sistema programable para rodar motores.
Estoy hablando de motores para coches de Scalextric para competición
Normalmente los rodamos, ya sea en vacío o montados en el coche para que se suavicen y ajusten las escobillas al colector. Con ello ganamos en dulzura y unas 2000 RPM.
Son motores de 12-15 volt y menos de 3 Amp.
El sistema que estoy planteando es un sistema en el que le programamos varios programas de rodaje que consisten en poner el motor a un voltaje durante un tiempo.
El sistema debe de alimentarse con menos de 20V para el motor y lo suyo para el arduino.
asi que lo primero es que debe saber leer el voltaje de entrada para luego calcular el porcentaje que hay que aplicarle para conseguir el voltaje que queremos. Es decir a priori no sabemos que alimentacion se le va a aplicar, pero nos dara igual porque calcularemos los parámetros a pasarle a un L293D para que suministre lo que nos haga falta.
Al final después de programar unos cuantos programas le damos a ejecutar y se pone a trabajar unas cuantas horas , pero he pensado controlar la temperatura del motor por si acaso parar.
Los programas podrían ser del tipo
P1 1,5 volt 15 min
descanso 3 min
P2 -1,5 volt 15 min
descanso 3 min
P3 3 vol 15 min
descanso 3 min
P4 -3 volt 15 min
descanso 3 min
P5 6 volt 15 min
descanso 3 min
P6 9 volt 15 min
descanso 3 min
P7 12 volt 30 min
descanso 3 min
P9 9 volt 30 min
y asi.
Espero poder tener resultados pronto.
De momento estoy con la lectura inicial de la corriente suministrada
y con el suministro del voltaje.
Tambien la implementación de botones (posteriormente teclado) y LCD
aun no he empezado con lo de que permita varios programas y que los guarde para siguientes usos
Se admiten sugerencias sobre todo el proceso harware uso y todo lo demás.
Has dado con mi pasión cuando tenía 18 años y ya tengo mas de 30 que sumo a esos 18.. jaja.
Siempre me quedé con ganas de hacer muchas cosas y ahora que tengo sobrinos es el momento. Bueno hay que buscar el tiempo.
Te iba a sugerir este esquema porque tiene o permite sensar la corriente del puente H pero veo que es para uso de la realimentación aunque nada quita que lo conectes a un pin analógico del Arduino.
Usar un L293 implica control por PWM del puente H, asi que si lo alimentas con 20V, el valor medio de esa PWM te dará las diferentes tensiones.
Solo me preocupa el valor de la tensión media a baja ciclo de trabajo porque aunque se trata de una carga inductiva la tension va a variar considerablemente. Habra que considerar la constante RL que permita minimizar esa fluctuación, y justamente con ese parámetro determinar la frecuencia de la PWM.
Supongo me comprendes.
Yo digo que el valor medio si usas una frecuencia baja va a tener variaciones importantes. Y que hay que jugar con la frecuencia PWM para minimizarlo.
De lo contrario, tal vez sea mas facil considerar armar una fuente de tensiones fijas 1.5, 3, 6, 9, 12 mas algun plus que tenga en cuenta perdidas del puente H, que permitan que la prueba se haga con valores medios como los que has indicado.
SI esto no es tan estricto entonces el diseÑo permite mas libertad.
No se si te ayuda o no mi comentario.
Veo que el problema no es tener controlada la corriente sino, la tensión de prueba, es asi?
:o Coincidimos en pasiones Surbyte! Yo la tengo desde hace 30 años y no me la he quitado nunca... jajaja
Yo personalmente hacia el rodaje de los motores utilizando una fuente de PC y sus diferentes voltages, recuerdo que monte una base para anclar el coche y unos pequeños switches para cambiar desde 3.3v hasta 12v, el temporizado lo hacia con una alarma xDD (cutre, pero entonces no conocia Arduino), por lo que mi opinion, (aunque simplista) seria utilizar una salida PWM con un transistor NPN (con suficientes A) y alimentar directamente el motor.
Un consejo -no Arduino- que si te puedo dar es que hagas el rodaje sumergiendo el motor (desmontado del coche) en Agua Destilada, esta no es conductora de la electricidad y permite el rodaje del motor sin apenas problemas de temperatura y con menos friccion.
al ser mi primera incursion en arduino voy perdidisimo, a parte que no tengo ni idea de programar en arduino, lo poco que se es de macroensamblador y de eso ya hace mas de 20 años, jajaja.
De momento he hecho una lista de todas las entradas y salidas del arduino, en concreto es el Nano.
entrada para 5 encoders, solo uno llevara la funciona push activada, 11 entradas digitales.
entrada pantalla Oled, SCL y SDA
entrada analogica lectura hall sensor
entrada analogica para lectura tension entrada mando
5 enconders?
tema a evaluar.
cada encoder tiene 2 salidas. 2x5 = 10 pines. Normalmente esos pines deben ser interrupciones y solo tenemos 2.
Para averiguar si el encondr simple de 20 pulsos/rev puede leerse sin errores con los pines clásicos del NANO, creo que si pero.... hay que programar bien. Sin uno solo delay.
El Oled usa A4 y A5
entrada analogica lectura hall sensor
Porque entrada analógica para sensor de efecto hall si solo querrás ver que pasó un auto? Un digital será suficiente.
entrada analogica para lectura tension entrada mando
Con el divisor de tensión corresondiente. Seguro usarás 12 o mas voltios.
salida PWM para atacar circuito potencia.
van 11 pines entonces o 12 si usas el sensor hall como digital
A0 para tensión de mando
A4 y A5 para el OLED
demas enconders, hall y salida PWM
A confirmar lo de los enconders entonces
EDITO:
Enconder: Parece que no habría problemas para este caso, pero empezaría probando los 5.
Aca un ejemplo
mejor entonces tienes todo el tiempo del mundo para verificar su estado, me comprendes, como cada ciclo del loop debe ocurrir en pocos milisegundos, en 1 ciclo lees su estado sin problemas.
Bien, otra cosa. ayer leí algo muy interesante en un foro de arduino distinto de este... (jaja mi deseo de consultas/respuestas se queda chico con este foro, jajaja) la cosa es que un profesor de microcontroladores dijo palabras mas palabras menos, " yo repruebo a cada alumno que quiere conectar un enconder a las interrupciones (YO sería uno) en lugar de usar un timer y en cada periódo de muestro consultar el estado de las salidas A y B" y tiene muchísima razón.
Pero por ahora no lo tomaré como una verdad absoluta pero si diré que es la solución a tu problema con 5 enconders.
Traduzco: pones un timer que genera una rutina que se activa cada 1 mseg. Cuando eso pasa voy y leo los 10 estados de los enconders, y determino si estoy contando up o down y por ende el sentido de giro.
Se ve? ya se que puede resultarte complicado pero no lo es.
Un timer es una herramienta muy poderosa que tienen los microcontroladores. Puedes hacer que manejen un pin por PWM o puedes hacer que activen una rutina a ese ritmo. Entonces cada 1 mseg leo las 10 salidas de los enconders 2 x cada uno de los 5. (luego me dices porque tantos).