BLINK la primera práctica en MicroControladores

publicado en: Tutoriales | 0

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).

 

led_blink,jpg
led utilizado en la practicca Blink

 

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á.

 

leds_VRI
corriente de cada tipo de led y sus resistencias de acuerdo a su voltaje de alimetnacion, utilizados en la practica blink

 

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”

}

 

arduino blink
conexiones de arduino para la practica blink

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

}

 

pic blink
conexiones de pic para la practica blink

 

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;

}

 

avr blink
conexiones de avr para la practica blink

 

Visitanos También en Facebook

https://www.facebook.com/GeekbotMexico

BeagleBone con cámara y comunicación con Arduino

publicado en: Tutoriales | 0

En este vídeo se muestra como se puede realizar una fusión entre Beaglebone y Arduino haciendo reconocimiento de imágenes desde una cámara USB y moviendo algunos actuadores (servo motor) desde Arduino. La plataforma Beaglebone utiliza un sistema operativo a 32 Bits (Ubuntu) y el encargado de mover el servo motor y los demás mas actuadores es el Arduino muy popular ya entre los desarrolladores de Hardware, todo esto se logra mediante una comunicación Serial (UART TX y RX) y su respectiva etapa de acoplamiento de tensiones.

Arduino NANO

publicado en: Blog | 0

blog_arduinoNano

 

Arduino Nano es una excelente plataforma para desarrollar proyectos de forma rápida y cómoda, ya que su estructura nos permite conectarlo a la protoboard y armar los circuitos facilmente.

 

Además está construido con el Atmega 328P en encapsulado TQFP, esto nos permite tener 2 ADC adicionales a los que ya tiene el Arduino UNO tradicional, dando un total de 14 I/O ports y 8 ADC de 10 bits. Tiene un regulador interno a 3.3v en caso de que se requiera alimentar algun dispositivo de menor voltaje de entrada.

 

No olvidemos sus 6 puertos con PWM que tiene el Arduino Nano y sus puertos de comunicacion UART, I2C y SPI.

 

Arduino Nano tiene una entrada USB Micro lo cual lo hace compatible con los cables de los smartphone.

 

Los Invitamos a desarrollar sus proyectos con Arduino NANO y compartirlos con la comunidad de GeekBot.