TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Cossworth en 10 de Diciembre de 2010, 23:03:43
-
Hola, hace rato que vengo molestando por acá y es hora de aportar algo que quizás a alguien le pueda servir para iniciarse en el tema.
La idea era aprender algo de PWM y hacer algo medianamente útil :D
La lámpara muestra colores fijos y realiza una transición por todos los colores posibles implementando 3 rutinas de PWM por software. Se utilizó un micro pequeño pero potente para dejar lugar a futuras mejoras (audiorrítmico, etc.), el 12F675.
En la imagen se muestra la forma en la que van colocados los componentes, y adjunto el archivo "Lampara.hex" ya compilado para grabar en el Pic, en caso de querer modificarlo tambien se encuentra el codigo fuente "Lampara.c"
(http://i.imgur.com/BSBxQ.png)
El archivo PCB.pdf es el que hay que transferir en la plaqueta, está repetido 6 veces porque hice varias.
En el código como verán solo se usa el Botón 2, el resto de los botones solo los puse para utilizar todos los pines y dejar el circuito abierto a futuras ampliaciones de código.
Los BD139 sirven para cargas de hasta 500mA y las resistencias R10, R11, y R12 están calculadas para consumos de 300mA y 350mA respectivamente, el led utilizado es el siguiente:
http://www.dealextreme.com/details.dx/sku.4530
creo que no hay nada mejor en relacion precio/calidad y encima con envío gratis.
Lista de componentes:
| C1 0.33uF
| C2 0.1uF
| Q1 BD139
| Q2 BD139
| Q3 BD139
| R1 1k
| R2 1k
| R3 1k
| R7 1k
| R8 1k
| R9 1k
| R10 5.6 Ohm
| R11 3.9 Ohm
| R12 3.9 Ohm
| SW1 BTN_1
| SW2 BTN_2
| SW3 BTN_3
| U1 7805
| U2 PIC12F675
Cada vez que tuve un problema con este tema acá me dieron una mano, gracias! Saludos :)
-
Hola!!!
Uno aca pretendiendo entenderme con la generación de una señal PWM.... Perfecto para iniciar....
Gracias a ti, a este FORO que abre las puertas para tomarselo con ganas y no hacer de este "mundillo" tan lindo un pasaje oscuro.
Un saludo
-
Ola.
Me gostaria saber se es possible quitar la rotina de colores aleatorios e mantener solo el pulsador
para cambiar asta 8 colores.
Gracias a todos
-
Gracias por compartir Cossworth. ((:-))
Saludos.
Jukinch
-
Ola.
Me gostaria saber se es possible quitar la rotina de colores aleatorios e mantener solo el pulsador
para cambiar asta 8 colores.
Gracias a todos
Si, es posible. En el primer mensaje se está disponible para bajar el código fuente del microcontrolador. Solo debes borrar la función que produce el barrido de colores.
Gracias por compartir Cossworth. ((:-))
Saludos.
Jukinch
No hay por qué, me había olvidado de este post ya, este circuito lo mejoré a pedido de mis amigos y mandé a fabricar a SeeedStudio los PCB's. Actualizo el código con el PWM optimizado por si a alguien le interesa.
-
Este tipo de LEDs no se le deberia hacer dimming variando la corriente? Mas no con PWM?? Rayos!
Porcierto, se ve que le has puesto muchas ganas. Ojala puedas subir un video :P
-
Este tipo de LEDs no se le deberia hacer dimming variando la corriente? Mas no con PWM?? Rayos!
Porcierto, se ve que le has puesto muchas ganas. Ojala puedas subir un video :P
Si, sería más eficiente manejarlo por Control de Corriente, más aún aprovechando que el 12F675 tiene ADC y sería facil poner una resistencia de sensado. Este fue mi primer proyecto con microcontroladores y fui aprendiendo mientras lo hacía, la primer versión llevaba un 16F628A, luego pasé al 12F para que sea más compacto, finalmente optimicé el código (la versión original tenía destellos de colores no deseados) y ahí abandoné el "desarrollo" tengo un par armadas para cuando hay fiestas en casa y nada más.
Aquí dejo un video de la lámpara en funcionamiento:
Y adjunto una Application Note de Microchip por si deseas investigar más acerca del control de corriente:
http://www.mediafire.com/view/?s8jrk1wnkfnjbce
Saludos
-
Se ve bien, felicidades!
-
te felicito buen proyecto (((:-)))
-
Ahora que lo pienso... El 7805 te está quedando muy corto, estas a las justas. Deberías usar uno que te entregue por lo menos 2A.
-
Ahora que lo pienso... El 7805 te está quedando muy corto, estas a las justas. Deberías usar uno que te entregue por lo menos 2A.
Si, el 7805 estaría entregando 1Amp pero solo cuando el color Blanco está encendido (todos los LED's al 100), eso se puede "cuidar" reduciendo el ciclo de trabajo a un 90%. En los 2 años que está funcionando la lámpara nunca se quemó un 7805 o cortó por exceso de temperatura o corriente. Igualmente las últimas que armé las equipé directamente con una fuente de 5v (cargador de celular) para no utilizar regulador de tensión.
Saludos!
PD: Aumentando las resistencias limitadoras de cada led a 8.7 Ohm se reduce el consumo de corriente y no es apreciable la diferencia de iluminación.
-
buenas noches
tengo un problema con el pic 12f675,,,, no entiendo porque cuando quiero grabar el programa me bloquea el pic??????
con el programador e programado barios pic y no e tenido problema.
si alguien ha hecho este proyecto por favor una ayuda mil gracias
-
buenas noches
tengo un problema con el pic 12f675,,,, no entiendo porque cuando quiero grabar el programa me bloquea el pic??????
con el programador e programado barios pic y no e tenido problema.
si alguien ha hecho este proyecto por favor una ayuda mil gracias
Con qué programador lo estás grabando? yo tenía un JDM y lo tuve que modificar para que acepte el 12F675, parece que tiene algun conflicto con el pin de MCLR.
-
es este http://cristpalma.blogspot.com/2009/05/pickit-2-clone.html
muchas gracias de antemano
-
es este http://cristpalma.blogspot.com/2009/05/pickit-2-clone.html
muchas gracias de antemano
que raro che, por lo que se ve tiene un Jumper para programar los 12F . Fijate al momento de grabarlo si podés ver los fuses y corroborar que el PWRTE no esté activado.
-
ot
-
:)Hola amigo buenas noches soy de Colombia y te doy muchas gracias por compartir tus experiencias con todos nosotros ya que me mate como 15 días buscando como entender pwm y gracias a ti entendí por fin y puedo desarrollar my proyecto
Que Dios te bendiga y te multiplique este buen gesto
:-/