Todos los lenguajes de programación tienen su famoso programa de iniciación en la materia. En los lenguajes gráficos como lo son Java, C, C++, Python, etc., tienen el famoso “¡hola mundo!”, el programa que muchos de nosotros hemos realizado alguna vez, o que lo realizaremos al entrar en la materia. El mundo de la electrónica programada y diseño de hardware no se queda lejos de este programa de iniciación en la materia, ya que tenemos nuestro propia forma de inicializar a los nuevos con un emotivo y rápido programa llamado “BLINK”.
Blink es el programa en el que logramos hacer que un LED encienda y se apague intermitentemente, controlando el tiempo de ambos estados.
Esto puede ser maravilloso para muchos, ¡claro! “Ya somos programadores expertos, ya podemos encender y apagar un LED” -al menos eso pensé la primera vez que hice mi primer Blink-. Pero estoy seguro que es muy motivador y mágico hacer esto, ya sea en Arduino, AVR, PIC, Beaglebone, Raspberry, o cualquier plataforma de micro controladores y ARM que estemos aprendiendo a usar.
Pero para los que todavía estamos perdidos en el tema nos preguntaremos ¿qué es un LED?, un LED es un diodo emisor de luz que funciona polarizando de forma adecuada sus terminales “ánodo” y “cátodo”. El “ánodo” es la terminal donde se conecta el voltaje positivo y el “cátodo” es la terminal donde se conecta el negativo (Gnd, 0V).

Ya que se tenga identificado las terminales del led, se tendrá que tomar en cuenta otro factor antes de iniciar con el programa, la “corriente”, “tensión” y “resistencia” de consumo de nuestro led.
La “tensión” es el voltaje nominal que necesita el led para funcionar, si se alimenta con una tensión menor a su voltaje nominal el led no encenderá y si se sobrepasa este voltaje es necesario colocar una resistencia para regular su “corriente”.
La “corriente” se puede conseguir con el fabricante, vendedor o con la hoja de datos, la corriente es el consumo energético que tiene el led, esa corriente es para que el led trabaje a su 100% de eficiencia, la corriente se puede limitar usando una resistencia. Ojo si polarizamos un led directo sin utilizar una resistencia, el led consumirá toda la corriente posible hasta llegar a quemarse.
Y con tantos valores de resistencias ¿que valor debo colocar a mi led?.
La «Resistencia» de un dispositivo o de un led se calcula con la ley de ohm, en la cual ya se debiera saber los datos anteriores, tensión con que alimentaremos el led y la corriente que consume.
La formula para calcular la resistencia es la siguiente:
R= V-Vled/I → resistencia=tensión / corriente.
Ejemplo de aplicación con un micro controlador.
La tensión que un micro controlador proporciona por sus puertos es= 5V. Esta seria nuestra tensión.
La corriente nominal de nuestro led es de 15mA (este valor es para un led Rojo difuso).
Con estos datos aplicamos la formula:
R=5V -1.2V/ 0.015 A = 253.33 ohm.
Este valor comercial no existe asi que tendremos que buscar el mas próximo, el cual seria 330 ohm.
Ahora calcularemos la corriente que recibe nuestro led con la nueva resistencia.
I = V / R → I = 5V / 330 ohm = 0.01515 A
Si a 0.015Amp el led trabaja a su 100% entonces a 0.01515 nuestro led sobre pasa su eficiencia lo cual provocará que nuestro led se caliente un poco, pero de ahí no pasa. El led no se quemará.

Ahora que se tiene el conocimiento eléctrico del blink el cual ha sido tedioso si lo vemos matemáticamente, se pasa a lo divertido, a la programación.
El programa de Blink se explicará para Arduino, PIC y AVR
Arduino – Blink
// declaramos una variable y se igualara al numero //del pin donde se conectara el led
//en este caso Arduino tiene un led conectado //directo al pin 13 asi que se ocupara ese para la //prueba
int led = 13;
// se incia la funcion setup en la cual se configurara //los registros de arduino
void setup() {
//se declara el pin de la variable “led” como salida //para hacer Blink utilizando la funcion pinMode
pinMode(led, OUTPUT);
}
// se cierra la función setup y se inicia la función //loop
//la función loop es la que se repetirá durante el //tiempo que el arduino este energizado
void loop() {
// con la funcion ”digitalWrite” se establece el //estado electrico del led “HIGH” = encendido
digitalWrite(led, HIGH);
//con la funcion “delay” se ingresa un retardo en //miliSegundos en el programa
//esto permitira observar el led encendido ese //tiempo
delay(1000);
// con la funcion ”digitalWrite” se establece el //estado electrico del led “LOW” = apagado
digitalWrite(led, LOW);
// se ingresa otro delay para ver el led apagado
delay(1000);
//si se desea que el blink sea mas rapido o lento se //pueden cambiar los tiempos de “delay”
}

PIC – Blink
//se importa la biblioteca del micro controlador que //se va a ocupar
#include <16f84a.H>
//se declara la frecuencia a la que trabajara el micro //controlador
#use delay( clock = 4000000 ) // reloj de 4 MHz
void main( void ){
// se declara todo el registro A como salida para //hacer blink
// 0 igual a salida
// 1 igual a entrada
set_tris_a( 0x00 );
//se inicia el ciclo del programa también conocido //como LOOP
while(TRUE){
output_a(0x01); // enciende el led RA0
delay_ms( 1000 ); // retardo de 1seg.
output_a(0X00); // apaga el led
delay_ms( 1000 ); // espera 1 ms
}

AVR – Blink
//se declaran las bibliotecas que se ocuparan
#include <avr/io.h> //biblioteca para utilizar las //entradas y salidas de AVR
#include <util/delay.h> //biblioteca para utilizar los //retardos
//se inicia la funcion principal
int main(void)
{
//se configura el registro C como salida para hacer //Blink
// 1 igual a salida
// 0 igual a entrada
DDRC=0xff;
//se inicia el ciclo del programa también conocido //como LOOP
while(1) {
// se enciende el led PC0 o pin 23
PORTC=0x01;
//retardo de 1seg.
_delay_ms(1000);
//se apaga el led del pin PC0 o pin 23
PORTC=0x00;
//retardo de 1seg.
_delay_ms(1000);
}
return 0;
}

Visitanos También en Facebook
Deja un comentario