led-rgb-flash-fade-10mm

LED RGB con PWM

15 febrero, 2013

Como manejar un LED RGB con un PIC, mediante PWM:

Esto surgió porque a un amigo se le quemó el dispositivo para iluminar su pileta de natación. Constaba de un circuito electrónico, aparentemente con algún microcontrolador que murió quemado por alguna sobrecarga. Los leds y los transistores de potencia se han salvado, asi que aquí les presento la opción PIC para manejar los leds.

Circuito utilizado:

Consta con 3 programas diferentes de juegos de luces. El pulsador sirve para cambiar el programa y pasar al siguiente. El primer programa es un cambio gradual del color mediante 3 rampas triangulares desfasadas 120°. El segundo programa es una secuencia de colores fijos, pasando por ejemplo del azul al rojo al verde con cambios bruscos. El tercer programa es un flash de luz blanca.

El potenciómetro sirve para cambiar la velocidad del cambio de luz.

Programa en lenguaje C utilizado en el proyecto

 

Es bueno saber como se conectan los LEDS RGB:

5 Comments

  1. Johel dice:

    Este mismo circuito podría controlar la base de un transistor de mas potencia para así controlar varios led por color..?

  2. Javier dice:

    Si Joel, esa era la idea original. Esta fue una prueba solo de programación, el resto es electrónica…
    Al comienzo digo que era para iluminar piletas, esto es cierto y no quise entrar en detalles, pero cada artefacto de luz para pileta es una torta de muchos leds rgb.
    Cuando mi amigo lo implemente en la pileta publico las fotos. Saludos!

  3. Johel dice:

    Ni me habia percatado del primer párrafo. Q colgado. Esta bueno, habría que ver el tema de la electrónica y ponerlo en practica…

  4. cesar dice:

    Me marca el error 128 al compilarlo, estoy ocupando ccs

  5. Javier dice:

    cesar, está hecho para el compilador MikroC. Si quieres bajarlo desde la página (http://www.mikroe.com/mikroc/pic/) es gratuito.

    Con otros compiladores dará error porque el manejo de los puertos o el manejo de bits, generalmente no es compatible entre compiladores.

    Por ejemplo #define LEDR GPIO.B0 te dará error en CCS.
    Para eso debes ver como maneja los bits el compilador.
    Tambien puede ser que no esté definido el GPIO que es el registro del puerto del PIC12F.

Leave a Comment