Programación
Básica en la plataforma Arduino (Parte 5)
Hola nuevamente a
los tutoriales de Artes Electrónicas Pachani, Hoy
continuamos con la serie de tutoriales dedicados a Arduino. Estos
tutoriales estarán dedicados exclusivamente a Arduino.
Programación
en ARDUINO
Dado que la plataforma Arduino incorpora muchas de las salidas del
microcontrolador AVR listas para ser utilizadas para el propósito
que necesitemos, se puede decir que solo basta tener nociones básicas
de electrónica y programación, de ahí la facilidad para
desarrollar nuestros proyectos.
Ejercicios
Resueltos
A modo de practicar vamo a ver algunos ejemplos que nos puede ayudar a realizar proyectos mas adelante, lo interesante y practico de esta placa de desarrollo Arduino es lo facil que se puede implementar un circuito electronico. Veamos que podemos hacer con Arduino Resistencias y diodos LED.
Ejercicio
01: Secuencia de leds.
Ya en el anterior tutorial aprendimos a realizar el encendido de un
led según nuestro criterio, para este tutorial vamos a encender y
apagar 4 leds secuencial mente. Los leds deben estar conectados a los
pines 5,6,7 y 8. Se deben encender y posteriormente apagar los leds
desde el pin 5 al 8, con un tiempo de duración de encendido y
apagado de 1000 milisegundos ( o sea 1 segundo).
Este vendría a ser nuestro esquema circuital:
Este circuito lo esquematizamos con ayuda del software Fritzing para
tener en mente el circuito que vamos a construir , este circuito sin
duda nos ayudara a entender como armar el circuito en protoboar,
ahora en la siguiente imagen veamos como seria este circuito en
protoboard:
Sin duda esta nos da una idea clara como se debe de armar en
protoboard el circuito de nuestra secuencia de leds, ya armándolo
prácticamente debe ser capaz de funcionar:
El código propuesto vendría a ser el siguiente :
/*
------------------------------------------------------
Artes Electrónicas Pachani
Secuencia de Leds, esta secuencia tendrá 1
segundo , de diferencia entre encendido de cada led.
------------------------------------------------------
*/
//----------------------------------------------------
// Función principal
//----------------------------------------------------
int tiempo=1000;
//Declaramos una variable como entero y de valor
1000 que viene a ser el tiempo.
void setup() {
//Comenzamos con la configuración de los pines
pinMode(5,OUTPUT);
// El pin 5 del arduino lo habilitamos como salida digital
pinMode(6,OUTPUT);
// El pin 6
del arduino lo
habilitamos como salida digital
pinMode(7,OUTPUT);
// El pin 7
del arduino lo habilitamos como salida
digital
pinMode(8,OUTPUT);
// El pin 8
del arduino lo habilitamos como salida
digital
}
//----------------------------------------------------
// Función cíclica
//----------------------------------------------------
void loop() {
//Comienza el bucle principal del programa aquí definimos
funciones y otros.
digitalWrite(5,HIGH);
//Tomen nota de que aquí el pin 5
se coloca en HIGH (alto o + 5 V)
delay(tiempo);
//Aquí usamos el tiempo de 1000 ms para indicar el
tiempo en HIGH
digitalWrite(5,LOW);
//Ahora el pin 5 se coloca
en LOW (bajo o 0 V)
delay(tiempo);
//Aquí usamos el tiempo de 1000 ms para indicar el
tiempo en LOW
digitalWrite(6,HIGH);
//Tomen nota de que aquí el pin 6
se coloca en HIGH (alto o + 5 V)
delay(tiempo);
//Aquí usamos el tiempo de 1000 ms para indicar el
tiempo en HIGH
digitalWrite(6,LOW);
//Ahora el pin 6
se coloca en LOW (bajo o 0 V)
delay(tiempo);
//Aquí usamos el tiempo de 1000 ms para indicar el
tiempo en LOW
digitalWrite(7,HIGH);
//Tomen nota de que aquí el pin 7
se coloca en HIGH (alto o + 5 V)
delay(tiempo);
//Aquí usamos el tiempo de 1000 ms para indicar el
tiempo en HIGH
digitalWrite(7,LOW);
//Ahora el pin 7
se coloca en LOW (bajo o 0 V)
delay(tiempo);
//Aquí usamos el tiempo de 1000 ms para indicar el
tiempo en LOW
digitalWrite(8,HIGH);
//Tomen nota de que aquí el pin 8
se coloca en HIGH (alto o + 5 V)
delay(tiempo);
//Aquí usamos el tiempo de 1000 ms para indicar el
tiempo en HIGH
digitalWrite(8,LOW);
//Ahora el pin 8
se coloca en LOW (bajo o 0 V)
delay(tiempo);
//Aquí usamos el tiempo de 1000 ms para indicar el
tiempo en LOW
}
Como habrán notado la secuencia se la puede programar en cascada de
modo que el programa cicló continué con la secuencia hasta que se
le quite la corriente a la placa Arduino, ahora repasemos los puntos
importantes del anterior código:
1.- Básicamente el programa
trata a cada led por estados, es decir alto y luego bajo
de modo que a la vista se tenga una secuencia de encendido y
apagado, con la ayuda de una variable llamada tiempo.
2.- El manejo adecuado tanto en
la programación de los pines de la placa Arduino, es decir el pin
esta en OUTPUT (salida) , como bien
sabrán en los microcontroladores se debe de tener cuidado al momento
de tratar un pin como Salida o Entrada, pues podemos dañar
este pin, de igual manera en la placa Arduino hay que definir bien el
uso del pin de modo que no lo dañemos.
3.- Dado que nuestro ejemplo se
lo realiza con el Arduino conectado a la PC , no es necesario
conectar una fuente externa pues los diodos led no consumen mucha
corriente, cundo se necesite mas corriente vamos a conectarlo según
sea el proyecto que realicemos alimentar.
Ahora escribamos otra manera de resolver nuestra secuencia de leds de
manera mas apropiada,
/*
------------------------------------------------------
Artes Electrónicas Pachani
Secuencia de Leds 2, esta secuencia tendrá 1
segundo , de diferencia entre encendido de cada led.
------------------------------------------------------
*/
//----------------------------------------------------
// Función principal
//----------------------------------------------------
int tiempo=1000;
//Declaramos una variable como entero y de valor
1000 que viene a ser el tiempo.
int
n;
//Aquí declaramos una nueva variable para representar a los pines
que vamos a usar
void setup() {
//Comenzamos con la configuración de los pines
for (n=5;n<9;n++)
{ //Aquí
el ciclo for contara
desde el pin
5 hasta
el pin
8
pinMode (n, OUTPUT);
//Los pines que necesitamos son llamados y configurados como
salida
}
}
//----------------------------------------------------
// Función
//----------------------------------------------------
void secuencia() {
//Aquí
escribimos un programa que se encargue de la
secuencia
for (n=5; n<9;
n++) {
digitalWrite (n,
HIGH); // De igual manera se pone
en pin n, en estado alto (+5V)
delay (tiempo);
// Se mantiene este nivel alto por un t= tiempo
digitalWrite (n, LOW);
// Se pone el pin n, en
estado bajo (0 V)
delay (tiempo);
// Aquí también le damos un t = tiempo
}
}
//----------------------------------------------------
// Función cíclica
//----------------------------------------------------
void loop() { // Aquí viene recién nuestra
función cíclica que se repetirá de manera indefinida.
secuencia();
}
En conclusión, la manera como resolvamos un programa es sin duda
iniciativa y buen criterio de cada programador , lo importantes es
que se tenga en mente el buen funcionamiento del mismo y que cumpla
con los requerimientos que se necesiten. En mi opinión, a medida que
se practique tendremos mejores criterios para escribir el código,
con ello mejorar y reducir las lineas en nuestros códigos que sin
duda solo se logra con practica y mucho esfuerzo.
Para finalizar este tutorial, es muy útil que repases estas
instrucciones. Espero que este tutorial te haya sido de utilidad, en
los próximos tutoriales tendremos programas de manejo de puertos
para ello hasta el próximo tutorial.
Todo el material que aquí se encuentra es de mi autoría, ademas de
una recopilación de información de Internet de recursos que se
pueden descargar como libros los cuales son usados como referencia
para los ejercicios y los ejemplos, los cuales serán mencionados de
modo que puedan consultar. Cualquier consulta la puedes realizar en
la parte de comentarios.
Webgrafia:
2.- EJERCICIOS DE ARDUINO RESUELTOS, Grupo Sabika, descargado de
Internet.
Software
utilizados:
1.- Arduino , descargado de http://arduino.cc/
2.- Fritzing , descargado de http://www.fritzing.org/
No hay comentarios.:
Publicar un comentario
Hola, con tu comentario puedes aportar para mejorar la calidad de mi trabajo