PICs y LEDs, una pareja perfecta
<keywords content="TTL 74Ls164N, electronica, circuito, pic, NE555, PIC BASIC, PIC SIMULATOR IDE, esquema, circuito impreso, proyecto, gratis, download, programa, CMOS, pin, e/s, i/o, ucontrol, PIC, 16F628a, 16f84a" /> <center>
| Inicio | Foro | Revista uControl | Circuiteca | Microcontroladores | Electrónica Básica | Herramientas y Software | Tutoriales | Colaboradores | Enlaces |
|
¿Ya descargaste los ejemplares GRATUITOS de la Revista uControl? ¡No te los pierdas!. | |||||||||
|
wikipage=Dado electrónico con PIC
tooltip=Dado electrónico con PIC
img_src=Image:dado100.jpg
img_width=150px
img_alt=Dado electrónico con PIC
</linkedimage> |
wikipage=Como trucar un servo
tooltip=Como trucar un servo
img_src=Image:trucaservo150.jpg
img_width=150px
img_alt=Como trucar un servo
</linkedimage> |
wikipage=Comunicación inalámbrica entre PICs
tooltip=Comunicación inalámbrica entre PICs
img_src=Image:TXRX150.jpg
img_width=150px
img_alt=Comunicación inalámbrica entre PICs
</linkedimage> |
wikipage=CCS - Libreria de gráficos para GLCD K0108
tooltip=CCS - Libreria de gráficos para GLCD K0108
img_src=Image:GLCD-100.gif
img_width=150px
img_alt=CCS - Libreria de gráficos para GLCD K0108
</linkedimage> |
wikipage=Funcionamiento de una matriz de LEDs
tooltip=Funcionamiento de una matriz de LEDs
img_src=Image:GNUxx.jpg
img_width=150px
img_alt=Funcionamiento de una matriz de LEDs
</linkedimage> |
![]() |
Todos los articulos y proyectos de uControl tienen su lugar en el foro. Si tienes dudas o comentarios, busca o crea el hilo correspondiente, y tendrás una rapida respuesta.
|
![]() |
|
PICs y LEDs, una pareja perfecta
| ||||||||||||||
IntroducciónLos diodos LED son seguramente la forma más popular de señalización de estados en los equipos electrónicos. En este pequeño artículo, veremos la manera de sacar todo el provecho posible a estos coloridos componentes.
Una resistencia en serie con el LED limita la corriente que lo atraviesa.
![]() Esta fórmula permite calcular el valor de la resistencia limitadora.
Bien, si aplicamos la formula anterior, obtenemos que
![]() Reemplazamos los valores, y calculamos R.
A menudo es necesario colocar dos o más LEDs en serie, entre sí. En ese caso, debemos asegurarnos que todos funcionan con la misma corriente, para evitar que alguno resulte dañado. Luego, simplemente reemplazamos en la formula que hemos visto el valor de V(LED) por la suma de las tensiones de cada uno de los LEDs implicados. Por supuesto, el valor de esta suma no debe ser mayor a la tensión suministrada por la fuente. LEDS y PICSPor supuesto, los LEDs resultan ser la lámpara ideal para los microcontroladores. Su bajo consumo de corriente hace que puedan manejarse directamente con sus pines (casi siempre) sin necesidad de etapas intermedias. Pero antes de realizar cualquier diseño electrónico, debemos asegurarnos que la corriente suministrada por las salidas del microcontrolador en cuestión es suficiente para el modelo de LED que vamos a emplear. La figura siguiente ilustra la forma en que podemos conectar un LED a un PIC. Vamos a suponer que la tensión disponible en el pin del PIC es de 5V, que la corriente que atravesara el LED es de 15 mA, y que la caída de tensión en este es de 2V. Eso nos da un valor para R de 200 Ohms, por lo que utilizaremos una de 220 Ohms, valor disponible comercialmente, más cercano.
LED conectado entre PORTB.7 y GND.
SoftwareEl siguiente programa en CCS permite probar el funcionamiento del circuito de ejemplo:
#include <16f628a.h> //PIC utilizado
#use delay (clock=4000000) //Oscilador a 4Mhz
#use fast_io(b) //Optimizamos E/S del PORTB
//------Programa principal--------------------------------------------------------
void main(void)
{
set_tris_b(0x7F); // RB7como salida, el resto como entrada.
do{
output_low(PIN_B7); //Apago el LED
delay_ms(500); //Espero 500ms.
output_high(PIN_B7); //Enciendo el LED
delay_ms(500); //Espero 500ms.
}while(TRUE); //Repito el bucle
}
AllDigital ‘Desabilitamos comparadores
TRISB = %01111111 ‘RB7como salida, el resto como entrada.
loop:
PORTB.0 = 0 ‘Apago el LED
WaitMs 500 ‘Espero 500ms.
PORTB.0 = 1 ‘Enciendo el LED
WaitMs 500 ‘Espero 500ms.
Goto loop
END
LED conectado entre PORTB.7 y Vcc.
Nada impide manejar más de un LED a la vez. De hecho, se trata simplemente de repetir el esquema “resistencia limitadora – LED” tantas veces como sea necesario:
8 LEDs conectados al puerto B del PIC16F628A
AllDigital 'Desabilitamos comparadores TRISB = %00000000 'Todo el puerto b como salida. Dim i As Byte For i = 1 To 255 PORTB = i 'Enciendo leds WaitMs 500 'Espero 500ms. Next i End También podemos ver un ejemplo en CCS. El programa siguiente consiste en un bucle infinito, que en cada repetición cambia el estado de las salidas del puerto B, encendiendo uno de los LEDs a la vez. Cuando llega a uno de los pines del extremo del puerto, realiza el efecto inverso hasta llegar nuevamente al otro. Luego se repite todo el ciclo. Se han empleado los operadores “<<” y “>>” para desplazar el contenido del puerto en uno y otro sentido.
#include <16f8627a.h> //PIC utilizado
#use delay (clock=4000000) //Oscilador a 4Mhz
#use fast_io(b) //Optimizamos E/S del PORTB
#byte portb = 0x6 //Direccion del PORTB
//------Programa principal-----
void main(void)
{
int i; //Declaro la variable del for
set_tris_b(0x00); //Todo PORTB como salida.
disable_interrupts(GLOBAL); //todas las interrupciones desactivadas
do{ //Bucle infinito
portb = 0x01; //Estado inicial del puerto
//----Bucle de "ida" ---------
for (i=0;i<7;i++) { //i cuenta de 0 a 6
portb = portb << 1; //Desplazo valor de PORTB una pos. a la izq.
delay_ms(500); //Espero medio segundo y...
}
//----Bucle de "regreso" -----
for (i=7;i>0;i--) { //i cuenta de 7 a 0
portb = portb >> 1; //Desplazo valor de PORTB una pos. a la der.
delay_ms(500); //Espero medio segundo y...
}
} while(TRUE); //...repito el bucle
}
Hay casos en que se necesitan manejar un número elevado de LEDs, y los pines disponibles en el microcontrolador de turno resultan insuficientes. La solución es utilizar alguna técnica de multiplexado. Próximamente veremos cómo hacerlo.
Artículos relacionados
Autor
| ||||||||||||||
|
Este contenido se rige por la licencia de Creative Commons "Licencia Creative Commons Atribución-No Comercial-Sin Obras Derivadas 3.0". Para más información, véase la licencia en su forma reducida y completa. |



