PROGRAMA DE INGENIERA MECATRNICA TALLER PROGRAMACIN ARDUINO DOCENTE: MSC ELKIN YESID VESLIN DAZ TUNJA 05 DE OCTUBRE DE 2012
Qu es Arduino?
Arduino es una plataforma de electrnica abierta para la creacin de prototipos basada en software y hardware flexibles y fciles de usar.
Arduino puede tomar informacin del entorno a travs de sus pines de entrada y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programacin Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). 1
La estructura de programacin es muy sencilla a comparacin de otros compiladores, los cuales trabajan a travs de lenguaje assembler o ensamblador que es una secuencia digital combinada con funciones. Este lenguaje no es fcil de entender y generalmente constituye un impedimento para comenzar a trabajar con Microcontroladores. Arduino facilita este aspecto, permitiendo el desarrollo de programas en lenguaje estructurado que se pueden entender.
El Microcontrolador Atmega 328P
ATMEGA 328P es el Microcontrolador que se implementa en el Kit Arduino Uno, consta de una memoria flash de 32KB la cual tiene la posibilidad de leer y escribir al mismo tiempo, una memoria RAM EEPROM de 1024 Bytes y 2KB de memoria SRAM. Fsicamente consta de 14 pines de entrada/salida digital para propsito general, es decir que un pin puede ser utilizado tanto como para entrada como para salida, un puerto de comunicacin serial, 6 canales analgicos con capacidad para convertir datos en formato digital, 5 canales digitales funcionan como salidas PWM que permiten controlar servomotores y otro sensores que requieran salidas de este tipo, adems de eso posee otras bondades para programacin de alto nivel, que involucra Watch Dogs, registros, interface serial, entre otros.
1 Extrado del sitio oficial: www.arduino.cc/es La Figura 1 describe como estn ubicados fsicamente los elementos mencionados en el prrafo anterior.
Figura 1. Mapeado de los pines del Microcontrolador ATMEGA 328P-PU
Sin embargo, si se desea realizar una instalacin del Microcontrolador ATMEGA fuera de la estacin de desarrollo Arduino es posible, lo importante es administrar correctamente la alimentacin elctrica y configurar otros elementos como el cristal, el reset y el led de encendido, para esto se recomienda visitar el siguiente Link donde se describe paso a paso cmo se puede realizar dicha tarea.
http://arduino.cc/en/Main/Standalone
Descripcin Fsica de la Tarjeta Arduino UNO
La estacin de trabajo Arduino UNO reorganiza la localizacin de los pines descritos en la Figura 1, cuenta tambin con un mdulo de comunicacin que facilita la comunicacin serial a travs de la USB, un mdulo de alimentacin externa en caso de que no se pueda conectar a un computador, botn de Reset para reiniciar el Microcontrolador en caso de bloqueo, un led Indicador de encendido ON y los leds de comunicacin Rx, Tx que indican cando se est haciendo comunicacin con el computador. La organizacin de los pines se distribuye en tres grupos: Se entiende a Arduino como una estacin de desarrollo que conecta al micrcontrolador con el PC, para editar, compilar y cargar el programa realizado por el usario. Fsicamente, la estrucutra de Arduino contiene elementos clsicos para el funcionamiento del chip, como lo son la alimentacin regulada a 5 V y el cristal de cuarzo que proporciona el reloj, adems cuenta con puertos de conexin que facilitan la interaccin con otros componentes electrnicos, mejorando as la experiencia del usuario. Nota
Figura 2. Arquitectura Estacin de desarrollo Arduino 1.
Entorno de trabajo Arduino
El entorno de trabajo del programa de computador que controla a Arduino UNO es bastante simple, bsicamente consta de tres secciones muy bien diferenciadas descritas en la
Para crear un nuevo programa, bsicamente basta con dar clic en el espacio de trabajo y aparecer el cursor titilante de texto
Cuenta con conexin fsica para extraer 5V, 3,3 V, GND y el voltaje de alimentacin para el microcontrolador (el cual no se usa porque es suministrado a travs del cable USB). Power proporciona estas seales elctricas para ser usadas en los proyectos, si se requiere de 5V se conecta en el pin sealado. Power Cuenta con 6 pines de tipo analgico, descritas anteriormente que proporcionan una interfaz I/O con dispositivos de las mismas caractersticas como sensores, potencimetros, entre otros. Analog In (AI) Proporciona 14 entradas digitales de tipo I/O que permiten la interfaz con dipositivos de similares caractersitcas tales como interruptores, leds, algunos sensores digitlales, entre otros. Tambin cuenta con pines denominados PWM~ que permiten enviar seales de este tipo para controlar servomotores. Digital (PWM~) P o w e r A I D i g i t a l P W M ~
Figura 3. Descripcin del espacio de trabajo de ARDUINO.
Estructura de Programacin Arduino
El siguiente programa presenta una estructura ejemplo que muestra cmo se ordena un cdigo de programacin en Arduino, posteriormente se explicarn ciertas particularidades.
int pinLed=13;
void setup( ) { pinMode(pinLed, OUTPUT); }
void loop( ) { digitalWrite(pinLed, HIGH); // Enciende un Led delay(1000); // Espera un segundo digitalWrite(pinLed, LOW); // Apaga el Led delay(1000); // Espera un segundo }
Libreras: Son archivos del programa que guardan funciones exclusivas con determinados propsitos. Existen libreras para controlar servomotores (Servo.h), para controlar pantallas de Espacio de trabajo donde el usario edita el programa que se cargar en el micrcontolador. Iconos de accin que en orden realizan las siguientes acciones: Compilar Programa, Cargar Programa, Crear Nuevo Programa, Abrir Programa y Salvar Programa. Men de opciones generales, tomar nota del men Tools y File/Example que contiene informacin suficiente para ser autodidacta en el aprendizaje de programacin atravs de ARDUINO 1 2
3 Encabezado: Aqu van libreras si son necesarias y se definen las variables que usar el programa Void Setup: configura al Microcontrolador de acuerdo con las especificaciones del usuario. Void Loop: cuerpo del programa, es una estructura que se repite indefinidamente mientras el Microcontrolador est alimentado. cristal lquido (LiquidCrystal.h), para controlar la conexin del Microcontrolador con Ethernet (Ethernet.h), entre otras. Las libreras se editan de la misma forma que en C++, utilizando la estructura #include<librera donde el trmino librera hace hincapi en una librera especfica >, que se usar en el programa. Algunas veces Arduino no viene preinstalado con todas las libreras por lo que a veces se tienen que descargar desde men por Sketch/Import Library
Configuracin: A travs del Void Setup es posible configurar elementos del Microcontrolador, por ejemplo los 14 pines I/O se pueden configurar como entradas (INPUT) para recibir seales de un interruptor o sensor digital, o salidas (OUTPUT) para controlar dispositivos digitales. Esta configuracin es nica para cada programa, por lo que no se pueden realizar cambios de este tipo durante el desarrollo del programa.
Void Loop: Durante su ejecucin los Microcontroladores repiten indefinidamente el cdigo en l escrito. El void loop realiza esa analoga dentro del programa, y hace entender al usuario que el cdigo en l contenido ser ejecutado repetitivamente.
Configuracin de Salidas Digitales
El Programa anterior ejecuta una instruccin que permite al Microcontrolador encender y apagar el led durante un segundo para cada caso. Para esto se establece en el encabezado que dicho led estar conectado en el Pin 13 a travs de la constante pinLed. Para este ejemplo, la constante se define desde el encabezado igual a 13, esto quiere decir que el pin I/O digital nmero 13 del Microcontrolador se encargar de controlar la activacin del dispositivo.
pinLed=13; //Crea la constante pinLed con un valor de 13
Para definir que el pin 13 ser una salida, desde el void setup se configura como tal con la instruccin pinMode(pin,modo), donde pin se encarga de definir numricamente cual elemento ser configurado de acuerdo con modo, el cual slo tiene dos casos INPUT (entrada) u OUTPUT (salida).
pinMode(pinLed, OUTPUT); //Configura al pin 13 denominado pinLed como salida
Figura 4. Diagrama de Conexiones. Modo Fsico, modo de Esquemas. Ejercicios:
Realizar el esquema electrnico descrito en Figura 4. Escribir el programa descrito en el entorno de programacin Arduino. Una vez escrito el programa en Arduino, utilizar el botn para verificar el programa si no tiene un error de sintxis, si esto llega a suceder, consultar con el docente para analizar que sucede. Si la sintaxis est correcta, se puede cargar el programa al Microcontrolador a travs del botn . Este se encarga de compilar el programa y enviarlo al microcontrolador. Durante este proceso es importante verificar si los leds Tx y Rx titilan, esto quiere decir que se est escribiendo el programa en el dipostivo.
Modificar el programa y el diagrama electrnico de forma que el Microcontrolador pueda encender el led desde el Pin 6. Modificar el programa de tal forma que el led permanezca encendido por 2 segundos y apagado por 500 milisegundos. Desarrolle el siguiente esquema:
Desarrollar un programa que controle dos leds conectados a los pines 13 y 4 de forma que primero encienda el led 4 durante dos segundos, se apaga, luego encienda el led 13 durante dos segundos y luego se apague. Cree un programa Libremente que ejecute diferentes estrategias de encendido para los Leds. Si existen problemas en el momento de cargar el programa es imporante verificar si el entorno de Arduino est configurado para la plataforma Arduino Uno, esto se hace en el men Tools/Board/Arduino Uno. Si el problema persiste posiblemente el entorno de programacin est conectado a un puerto serial equivocado, para esto en el men Tools/Serial Port/... y se selecciona el puerto correspondiente. La nica forma de conocer en que puerto est conectado el Arduino es atravs del Administrador de Dispositivos de Windows. Nota