PWM con microcontrolador

Ok,tranquilo, me has ayudado mucho con el circuito anterior.Estoy intentando entender los codigos para adaptarlos al 16F873 que tengo o al menos coger algo de idea para hacer algo parecido.
La idea es encender un Led de potencia, a diferentes modos, que tenga compensación de intensidad de salida por el tema de la caida de las baterias y que la autonomia sea la mejor posible, ya que es muy importante para el tema de la espedeologia.
El que tú pusistes, lo hace y lo hace con Pic que es lo que yo quería.Ahora si hay algún circuito mas para poder comparar, pues no estaría nada mal.
De todas formas creo que para empezar está muy bien, y que poco a poco, haremos algo decente.
Un saludo.
 
Entiendo, pero el problema es que a tensiones inferiores si que funciona bien. Es cuando le subo la tensión cuando empieza a parpadear.Si mido la tensión de salida del micro, es decir, la onda cuadrada, me da una lectura estable.El problema lo tengo en la etapa de potencia, si mido la tensión si que oscila.
Tambien he medido la tensión de alimentación del micro y se mantiene sobre los 4.85v sin oscilaciones.
La verdad es que no entiendo lo del parpadeo.
El circuito que me colocó fernandaoe me gusta, aunque me está costando de entender.Por lo que veo, generan el pwm poe software, como yo y además compensa la salida que es lo que andaba buscando.
Lo que pasa es que no tengo a mano ningún 12F675 y estoy intentando averiguar si el 16F873 podría hacer lo mismo, que sí tengo a mano.
De todas formas y por los comentarios que realizaís, parece ser, que el problema que tengo con el circuito anterior podría ser de hardware y no software.
Bien, todo será darle al coco a ver si lo conseguimos.
Un saludo.

Te confieso que no estoy muy al tanto de tu proyecto, pero:
Si estás excitando a un MOSFET con onda cuadrada (o como sea) tenés que considerar el consumo de gate (mal dicho, la base), yo creo que es MUY MÍNIMO, pero a tener en cuenta.
Y, otra cosa que seguís pasando por alto:
el problema es que a tensiones inferiores si que funciona
:eek:ESTO!! y...
Es cuando le subo la tensión cuando empieza a parpadear.
:eek:ESTO!! También...
El problema es cuando (sin dudas) exigís al circuito, ya sea mínima la exigencia, pero es.

Haceme caso... Aunque sea, a modo de prueba, alimentá el circuito con una BUENA corriente y con 10VCC. Y verificá resultados.

Saludos, y ÉXITOS! :)
T10
 
Ok,lo he puesto a 10v, pero nada, parpadea.Lo he probado con una fuente de alimentación regulada para no tener problemas con las baterias. sigue haciendo lo mismo.
El consumo de la carga era unos 500mA y el led parpadeaba.

Un saludo.
 
Reydeabastos, que lástima que tengas problemas, dame un tiempo, dejame estudiar un poco tu problema y en lo que pueda te voy a ayudar...

Espero que tu PWM con micro tenga final feliz. Estoy leyendo...
Saludos.
T10
 
Releí todo el thread de vuelta... Ahora entiendo UN POQUITO más. Pero sólo un poco.

Cual es la razón lógica de usar un Microcontrolador como PWM? Es un antojo o algo de indica que debe ser con microcontrolador?

Realmente, nunca, nunca usé un Microcontrolador, así que no te voy a poder ayudar por el lado del SOFT, y con mosfets... Tampoco :cry: (bueno, solo un poco, lo básico)

Por qué no querés usar un PWM hecho para tal fin? Si o si el LED tiene que estar bajo el mando de un Microcontrolador?
Porque si el tema es evitar el consumo, lograr una buena eficiencia, al menos por probar, podrías usar un 555 para hacer un pulso de unos cuantos Hertz y ver que tal el consumo...
(perdona si estoy diciendo burradas, es una idea muy subjetiva)

Sigo leyendo a ver que encuentro de nuevo.
Saludos.
T10
 
Me parece que el problema esta en la subita descarga de la bateria (o la fuente regulada), la fuente de alimentacion pasa de dar 5mA a 500 en unos pocos microsegundos, lo cual pone la alimentacion general practicamente a cero cortocircuitando el 7805 y de paso dañandolo momentaneamente...

Mi recomendacion (si este fuera el caso) es separar la carga por medio de un diodo, y poner un capacitor que alimente al led para compensar, ademas ponerle diodos de proteccion al 7805 para evitar cortocircuitar la entrada ya que eso es uno de los problemas mas fuertes a lo que lo puedes someter... por alguna razon el fabricante lo protegio muy bien a la salida.. pero a la entrada casi no tiene proteccion alguna

7805.gif
 
A ver, lo de realizar el circuito con microcontrolador, a parte de una cabezonería, es un reto.A demás creo que con un microcontrolador, podré añadirle mas funcionalidades al sistema, cambiando el soft.
No entiendo muy bien lo que comentas de evitar el consumo.Lo que quiero realizar es un circuito que tenga 3 o 4 posiciones de luminosidad.
Hasta aquí, creo que lo hemos conseguido y digo hemos porque la verdad en este foro encontré ideas para realizarlo.
El problema reside en 2 problemas que no logro resolver.Uno, sería el parpadeo del Led a una tensión de alimentación, superior a 7.4v y otro problema es que necesitaría una compensación del PWM para que la caída de la batería no afecte la luminosidad.
El consumo no me importa,dentro de unos limites máximos claro está, pero si me importa que la luz sea uniforme y que dure con la misma intensidad el mayor rato posible.
Lo que comenta chico3001, pues la verdad no lo he probado.En cuanto pueda la pruebo.Pero por lo que entiendo en tu post, creo que te refieres a que cuando el Led pide intensidad, la entrada del 7805 queda sin sufieciente corriente como para actuar como tal, dejando sin alimentación al microcontrolador, produciendo un reset del mismo o un funcionamiento inadecuado.
Si te refieres a esto, hace algún tiempo hice una comprobación, con un tester, en la pata de alimentación del micro, cuando el led parpadeaba y me daba una lectura de 4.85v.Pero claro, si la frecuencia es muy alta, pues igual con el tester no le da tiempo a mostrar el fallo.
Intentaré probar lo que comentas y te cuento.
Un saludo y gracias.
 
Pero por lo que entiendo en tu post, creo que te refieres a que cuando el Led pide intensidad, la entrada del 7805 queda sin sufieciente corriente como para actuar como tal, dejando sin alimentación al microcontrolador, produciendo un reset del mismo o un funcionamiento inadecuado.

Tal Cual. Esa es la intención.

Creo que no estás alimentando bien al micro y por eso falla...

Chico3001 y yo vamos para el mismo lado, la alimentación. Tiene que ser constnte y suficiente para mantener al micro "despierto" y trabajando...

Saludos.
T10

PD: En lo que pueda, iré leyendo y ayudándote. (y)
 
Al final te volveremos loco entre todos.

Yo creo que estas excediendo las características del led al aumentar la alimentacion,si pudieras sensar la intensidad del circuito del led y adecuar el pwm a dicha intensidad,matarías dos pájaros de un tiro,por un lado optimizas el foco y por otro evitas el parpadeo, independientemente del estado de las baterías.


Saludos¡¡

Javi
 
Última edición:
si pudieras sensar la intensidad del circuito del led y adecuar el pwm a dicha intensidad,matarías dos pájaros de un tiro
Es EXACTAMENTE lo que hace el circuito del 12F675, y, ademas sensa la tesion de la bateria. Es un AN de microchip asi que su funcionamiento esta asegurado.
De mas esta decir que tiene la funcion dimmer y diferentes secuencias de intensidad, como ser flash... etc.
 
De antemano gracias por vuestras respuestas.
El driver que me propone josejackson, creo que no me serviría.La corriente necesaria excede la máxima de ese componentente, que creo que es de 1.2A y la que yo necesitaría rondaría los 2A, en su punto máximo,claro está.
Lo del tema del senseo de corriente es una cuestión que si me interesa.El circuito que me propuso fernandoae tiene toda la pinta de resolver mis problemas.
Pero he estado realizando pruebas con mplab y los archivos que vienen en el enlace y no me funciona.No logro compilar el codigo para grabar el Pic.
Posiblemente lo esté haciendo mal, no ze.
Si consigo hacerlo os lo comento.
Por otra parte, el circuito que realizé junto con su programa, fué un circuito de pruebas y el principio de todo este lio, poco a poco tengo que ir evolucionando al circuito del 12F675 o algo similar.
Un saludoy os voy comentando el tinglao.
 
Bueno,pues depues de varias pruebas no consigo compilar los codigos del 12F675.El mplab me tira errores.No se si alguno de vosotros ha probado estos codigos y me puede hechar una mano, ya que si no compilo, no puedo grabar el pic y si no grabo el pic, pues no lo puedo probar.
Al circuito que me refiero es al que puso fernandoae, que es un AN874 de Microchip.
Un saludo.
 
Seria bueno que indicaras de que potencia es el led que usas, casi siempre es ahi donde radica el problema, en el foro muchas veces he señalado el pronblema que existe con estos leds y que nadie conidera generalmente, los leds de alta potencia no tienen una resitencia interna fija esta disminuye al aumentar su temperatura, logicamente si aplicas poco voltaje la corriente es poca pero conforme transcurra el tiempo la temperatura aumentara y comenzara a dismunuir la resistencia aumentando con ello el flujo de corriente si tu aumentas el voltaje y hacer fluir los 1600 mA que señalas el led aumentara su temperatura rapidamente y corta el flujo de corriente en forma oscilatoria de acuerdo con la temperatura alcanzada, generalmente se usa una fuente de corriente constante para alimentar el led es decir el circuito de control debe aumentar o disminuir el voltaje opara mantener siempre la misma corriente circulando por el led, generalmente el fabricante de estos leds te da una corriente nominal maxima de trabajo y la minima tu la determinas.

verifica este enlace haber si te da mas idea de lo que te explico


http://www.agspecinfo.com/pdfs/B/BTXC30X.PDF
 
Última edición:
A ver si me se explicar.Utilizo un led de potencia de 10W. Corriente máxima 2800mA.
El primer circuito que realizé funciona, digamos, bien.Lo que pasa es que el sistema que estamos diseñando debe funcionar con baterias, ya que será un circuito que se utilizará para dar luz en espedeologia.Por lo tanto, es importante que sea eficiente,que tenga una larga autonomia y que su tamaño sea reducido.
Como el circuito queremos alimentarlo com 2 baterias de litio de 3.7v, nos encontramos con una tension de 7.4v en total.
En este primer punto radica mi primer problema, a la que alimento el circuito con más de 7.2v, el led de potencia parpadea.
el segundo problema, es la realimentación. En la práctica se ve claramente que si no hay una rectificación de la corriente de salida, a medida que se descarga la batería, ésta varía por lo que la luz del led va variando.La idea es utilizar algún tipo de realimentación para que el Pic modifique el PWM y así compensar esa variación.
Fernandoae, me propuso un circuito, AN874, que a mi parecer es muy semejante a lo que busco, pero estoy intentando compilar los codigos en mplab y me tira errores.
No se exactamente cual es el fallo, ya que he compilado diferentes Pics y no he tenido problema.
En este caso me encuentro con diferentes codigos en .asm que no se bien como colocarlos en el proyecto.
Por lo que deduzco, cada codigo hace una función determinada, es decir, ADC.asm pues se encarga de la conversion analogico/digital, y así etc.. hay un codigo principal que llama a todos los demás flashlite.asm, si no me equivoco.
Cuando realizo el proyecto no compila, me tira errores y no logro realizar el .HEX.
Un saludo.

Fernandoae, el error que me tira es este.

Debug build of project `D:\proyectos mplab\12f675 en pwm\pwm con 12f675.mcp' started.
Language tool versions: MPASMWIN.exe v5.35, mplink.exe v4.35
Preprocessor symbol `__DEBUG' is defined.
Sun May 16 11:10:23 2010
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p12F675 "flashlite.asm" /l"flashlite.lst" /e"flashlite.err" /o"flashlite.o" /d__DEBUG=1
Error[151] D:\PROYECTOS MPLAB\12F675 EN PWM\ADC.ASM 99 : Operand contains unresolvable labels or is too complex
Error[151] D:\PROYECTOS MPLAB\12F675 EN PWM\ASQ.ASM 121 : Operand contains unresolvable labels or is too complex
Error[151] D:\PROYECTOS MPLAB\12F675 EN PWM\ASQ.ASM 125 : Operand contains unresolvable labels or is too complex
Error[151] D:\PROYECTOS MPLAB\12F675 EN PWM\ASQ.ASM 157 : Operand contains unresolvable labels or is too complex
Error[151] D:\PROYECTOS MPLAB\12F675 EN PWM\ASQ.ASM 162 : Operand contains unresolvable labels or is too complex
Error[151] D:\PROYECTOS MPLAB\12F675 EN PWM\CMD.ASM 117 : Operand contains unresolvable labels or is too complex
Error[151] D:\PROYECTOS MPLAB\12F675 EN PWM\CMD.ASM 121 : Operand contains unresolvable labels or is too complex
Error[151] D:\PROYECTOS MPLAB\12F675 EN PWM\KEY.ASM 128 : Operand contains unresolvable labels or is too complex
Error[151] D:\PROYECTOS MPLAB\12F675 EN PWM\KEY.ASM 132 : Operand contains unresolvable labels or is too complex
Halting build on first failure as requested.
----------------------------------------------------------------------
Debug build of project `D:\proyectos mplab\12f675 en pwm\pwm con 12f675.mcp' failed.
Language tool versions: MPASMWIN.exe v5.35, mplink.exe v4.35
Preprocessor symbol `__DEBUG' is defined.
Sun May 16 11:10:25 2010
----------------------------------------------------------------------
BUILD FAILED
 
Última edición:
Estuve probando pero peor, me tira mas errores que a vos... lo que menciona el compañero de que la tension del led no es constante el circuito este lo tiene en cuenta, controla la corriente.
Vamos a ver que podemos hacer, el hardware no tiene problemas...
 
Mira... para resolver tu problema necesitas ir eliminando variables.. no puedes estar cambiando todo al mismo tiempo y esperar a que se resuelva solito...

Primero necesitas definir que codigo quieres usar... todos los codigos son diferentes y pueden ser una causa del error, tambien necesitas estabilizar la alimentacion, aunque estes usando una bateria del voltaje suficiente el led consume tanta potencia que cuando enciende literalmente chupa toda la energia disponible robandole su alimentacion al PIC...

Realiza tus pruebas con un codigo en baja potencia, ajustalo a como quieres que funcione y despues cambia al led de alta potencia... para ir eliminando poco a poco las causas del error...
 
Hola queria preguntarles si tienen un archivo.asm o me pueden dar una idea de como hacerlo que realice la siguiente funcion: pulsando un pulsador aumenta la velocidad del motor (PWM) cuando suelto el pulsador el motor mantiene la velocidad alcanzada y pulsando otro boton la velocidad disminuye, tambien al soltarlo la velocidad se mantiene, estube buscando por varios lados porque pense que era algo simple pero no he encontrado que lo haya hecho nadie y estube probando pero no logro realizarlo, desde ya muchas gracias, saludos (( PD: lo necesitaria para un pic16f84a))
 
Atrás
Arriba