You are on page 1of 14

1 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

INTRODUCCIN ARDUINO

Ilustracin 1 Arduino UNO.

Ilustracin 2Arduino MEGA 2560

Objetivos
Describir las caractersticas bsicas de la placa Arduino One y Arduino Mega 2560 y se brinden las condiciones necesarias para realizar la programacin de las mismas. Acercar al diseo y desarrollo de proyectos basados en Arduino. Brindar opciones de simulacin para las tarjetas Arduino.

||cristhian.riano@unipamplona.edu.co

cristhianivanrj@gmail.com

2 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

Caractersticas Generales
La plataforma Arduino es una plataforma open-hardware con ideologa de electrnica libre, basada en una sencilla placa con entradas y salidas (E/S), analgicas y digitales por lo que su diseo es de libre acceso. La filosofa de software libre permite: Estudiar el Hardware para entender cmo funciona. Hacer modificaciones al Hardware. Poder compartir modificaciones con la comunidad. Tener acceso a una comunidad activa de usuarios y desarrolladores. Gran cantidad de software y hardware disponible para autoconstruir. Precios bajos. Arduino puede adquirir variables de su entorno mediante sus entradas por medio de sensores y puede generar acciones que alteren el entorno mediante la manipulacin de sus salidas. A continuacin se mencionan algunos de los campos de aplicacin: Robtica Mvil. Instrumentacin y sensrica. Control de Proceso. Domtica.

Hay muchos otros microcontroladores y plataformas microcontroladoras similares a la plataforma Arduino disponibles como, Parallax Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard, y muchas otras. La principal caractersticas de estas herramientas es facilitar la programacin del Microcontrolador y hacer ms verstil y factible para distintos proyecto. Selecciona Arduino trae las siguientes ventajas respecto a las otras: Barato: Las placas Arduino son baratas comparadas con otras plataformas micro controladoras. La versin menos cara del mdulo Arduino puede ser ensamblada a mano, e incluso los mdulos de Arduino preensamblados cuestan menos de 50$. Multiplataforma: El software de Arduino se ejecuta en sistemas operativos Windows, Macintosh OSX y GNU/Linux. La mayora de los sistemas microcontroladores estn limitados a Windows. Entorno de programacin simple y claro: El entorno de programacin de Arduino es fcil de usar para principiantes, pero suficientemente flexible para que usuarios avanzados puedan aprovecharlo tambin. Cdigo abierto y software extensible: El software Arduino est publicado como herramientas de cdigo abierto (open-source), disponible para extensin por programadores experimentados. El lenguaje puede ser expandido mediante libreras C++, y la gente que quiera entender los detalles tcnicos pueden hacer el salto desde Arduino a la programacin en lenguaje assembler.

||cristhian.riano@unipamplona.edu.co

cristhianivanrj@gmail.com

3 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

Cdigo abierto y hardware extensible: El Arduino est basado en microcontroladores ATMEGA8 y ATMEGA168 de Atmel. Los planos para los mdulos estn publicados bajo licencia Creative Commons, por lo que diseadores experimentados de circuitos pueden hacer su propia versin del mdulo, extendindolo y mejorndolo. Incluso usuarios relativamente inexpertos pueden construir la versin de la placa del mdulo para entender cmo funciona y ahorrar dinero.

Arduino UNO y MEGA es una tarjeta electrnica basada en el Microcontrolador Atmega328 y ATmega2560 respectivamente. Arduino UNO Dispone de 14 entradas/salidas digitales, 6 de las cuales se pueden emplear como salidas PWM (modulacin de anchura de pulsos). Dispone tambin de 6 entradas analgicas, un oscilador de 16MHz, una conexin USB, un conector de alimentacin, un conector ICSP y un pulsador para el reset. Arduino Mega 2560 es una versin ampliada de la tarjeta original de Arduino y est basada en el Microcontrolador Atmega2560. Dispone de 54 entradas/salidas digitales, 14 de las cuales se pueden utilizar como salidas PWM (modulacin de anchura de pulso). Adems dispone de 16 entradas analgicas, 4 UARTs (puertas series), un oscilador de 16MHz, una conexin USB, un conector de alimentacin, un conector ICSP y un pulsador para el Reset. Una de las diferencias principales de la tarjeta Arduino MEGA 2560 es que no utiliza el convertidor USB-serie de la firma FTDI. Por lo contrario, emplea un Microcontrolador Atmega8U2 programado como actuar convertidor USB a serie. La tarjeta Arduino MEGA2560 es compatible con la mayora de los shield o tarjetas de aplicacin/ampliacin disponibles para las tarjetas Arduino UNO original. Las caractersticas ms relevantes se resumen a continuacin: Arduino Uno Microcontrolador ATmega328 Voltaje de 5V Operacin Alimentacin 7-12V (Recomendado) Pines lneas de 14 entradas/salidas Digitales Salidas PWM 6 Entradas Analgicas 6 Corriente Mxima 40mA por Pin Comunicacin serial Memoria Flash 32 Kb Memoria SRAM, 2Kb Memoria EEPROM 1 Kb (para variables de datos no voltiles) Frecuencia del Reloj 16 MHz Arduino Mega Microcontrolador ATmega2560 Voltaje de 5 V Operacin Alimentacin 7-12V (Recomendado) Pines lneas de 54 entradas/salidas Digitales Salidas PWM 14 Entradas Analgicas 16 Corriente Mxima 40mA por Pin Comunicacin Serial Memoria Flash 256Kb 8Kb Memoria EEPROM 4Kb (para variables de datos no voltiles) Frecuencia del Reloj 16 MHz

||cristhian.riano@unipamplona.edu.co

cristhianivanrj@gmail.com

4 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

Descripcin Fsica
La tarjeta Arduino UNO Y Mega puede ser alimentada a travs de la conexin USB o con un suministro de energa externo. La alimentacin externa (no USB) puede venir o desde un adaptador AC-a-DC o desde una batera. El adaptador puede ser conectado mediante un enchufe centro-positivo en el conector de alimentacin de la placa. Los cables de la batera pueden insertarse en las cabeceras de los pines Gnd y Vin del conector POWER ya que la tarjeta cuenta con un regulador de voltaje de buena eficiencia. El rango recomendado es de 7 a 12 voltios.

Pin POWER
Pin VIN: La entrada de tensin a la placa Arduino cuando est usando una fuente de alimentacin externa (al contrario de los 5 voltios de la conexin USB u otra fuente de alimentacin regulada). Puedes suministrar tensin a travs de este pin, o, si suministra tensin a travs del conector de alimentacin, acceder a l a travs de este pin. Pin 5V. El suministro regulado de energa usado para alimentar al Microcontrolador y otros componentes de la placa. Este puede venir o desde VIN a travs de un regulador en la placa, o ser suministrado por USB u otro suministro regulado de 5 V. Pin 3.3V. Un suministro de 3.3 V generado por el chip FTDI de la placa. La corriente mxima es de 50mA. Pin GND. Pines de Tierra.

Ilustracin 3 Distribucin Pines Arduino UNO

||cristhian.riano@unipamplona.edu.co

cristhianivanrj@gmail.com

5 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

PIN Digital (PWM~)


Cada uno de los 14 pines digitales de la Arduino Uno al igual que los 54 de la Arduino Mega puede ser usado como entrada o salida, usando funciones pinMode(), digitalWrite() y digitalRead()2. Operan a 5 voltios. Cada pin puede proporcionar o recibir un mximo de 40 mA y tiene una resistencia interna pull-up (desconectada por defecto) de 20-50 KOhms. Adems, algunos pines tienen funciones especiales: Pin Serial: 0 (Rx) y 1 (Tx). Usados para recibir (Rx) y transmitir (Tx) datos TTL en serie. Estos pines estn conectados a los pines correspondientes del chip FTDI USB-a-TTL Serie. Pin 2 y 3. Interrupciones Externas Estos pines pueden ser configurados para disparar una interrupcin interna, con flanco de subida o flanco de bajada. Mirar la funcin attachInterrupt(). Pin PWM: 3, 5, 6, 9, 10 y 11. Proporcionan salida PWM de 8 bits con la funcin analogWrite() Pin SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estos pines soportan comunicacin SPI (Serial Peripheral Interface), la cual, aunque proporcionada por el hardware subyacente, no est actualmente incluida en el lenguaje Arduino. Pin LED: 13. Hay un LED empotrado conectado al pin digital 13. Cuando el pin est a valor HIGH, el LED est encendido, cuando el pin est a LOW, est apagado.

Pines Analog Input


El Arduino UNO tiene 6 entradas analgicas, cada una de las cuales proporciona 10 bits de resolucin (por ejemplo 1024 valores diferentes). Por defecto miden 5 voltios desde tierra, aunque es posible cambiar el valor ms alto de su rango usando el pin ARF y algn cdigo de bajo nivel. Adems, algunos pines tienen funcionalidad especializada: Pin TWI: A4 o SDA and A5 o Pin SCL. Soportan comunicacin IC (TWI) usando la libreria Wire5. Hay otro par de pines en la placa. Pin AREF. Voltaje de referencia para las entradas analgicas. Usado con analogReference(). Pin Reset. Pone esta linea a LOW para resetear el Microcontrolador. Tpicamente usada para aadir un botn de reset a dispositivos que bloquean a la placa principal. Sistemas de Identificacin: Es una aproximacin experimental. Se desarrollan algunos experimentos en el proceso y se determina un modelo, con unos parmetros asignados que no tiene un significado fsico.

||cristhian.riano@unipamplona.edu.co

cristhianivanrj@gmail.com

6 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

Comunicacin
La Arduino UNO y Mega tiene un nmero de infraestructuras para comunicarse con un ordenador, otro Arduino, u otros microcontroladores. El ATmega 328 provee comunicacin serie UART TTL(5V), la cual est disponible en los pines digitales 0 (Rx) y 1 (Tx). Un ATmega16U2 en la placa canaliza esta comunicacin serie al USB y los drivers (incluidos con el software Arduino) proporcionan un puerto de comunicacin virtual al software del ordenador. El software Arduino incluye un monitor serie que permite a datos de texto simple ser enviados a y desde la placa Arduino. Una libreria SoftwareSerial permite comunicacin serie en cualquiera de los pines digitales de la Unos.

Programacin
Para iniciar hay que conectar la placa Arduino al ordenador y cargar una primera rutina para lo cual seguiremos los siguientes pasos. 1. 2. 3. 4. 5. 6. Descargar el entorno Arduino. Lo podemos descargar del siguiente enlace. Download. Instalar los Drivers Usb. Tan pronto conectemos el dispositivo saldr una viso el dispositivo no se reconoce por lo que debemos direccionar en el equipo. Conectamos la placa Arduino si es por primera vez observamos como parpadea un led. Luego de descargar el entono Arduino descomprimimos la carpeta no necesita instalacin y realizamos doble click en la aplicacin Arduino. Abrimos una Rutina que nos proporciona como ejemplo que es el parpadeo de un Led en la siguiente ruta arduino-1.0.5-windows\arduino-1.0.5\examples\01.Basics\Blink. El Arduino Unos y Mega puede ser programado con el software Arduino. Seleccione el tipo de Board o tarjeta con la que se cuenta como se muestra en la Ilustracin 44.

||cristhian.riano@unipamplona.edu.co

cristhianivanrj@gmail.com

7 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

Ilustracin 4. Seleccionar Board. 7. Seleccionar el dispositivo serie de la placa Arduino desde el menu Herramientas > Puerto Serie. En Windows, este debera ser COM1 o COM2 para la placa serie Arduino, o COM3, COM4 o COM5 para la placa USB. Para estar seguro de la eleccin nos dirigimos Administrador de Dispositivos de Windows (En la pestaa Hardware o en el Panel de Control de Sistema). Buscar puertos (COM y LPT) identificamos el COM de la placa Arduino para nuestro caso COM4 como se pareca en la Ilustracin 5.

Ilustracin 5 Seleccin Puerto Serie.

||cristhian.riano@unipamplona.edu.co

cristhianivanrj@gmail.com

8 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

8.

Luego de tener seleccionada la tarjeta y el puerto procedemos a verificar el programa y por ltimo en archivo cargar despus de unos pocos segundos se encendern los leds TX y RX que indican que la comunicacin serie se estableci. como se muestra en la Ilustracin 6.

Ilustracin 6 Cargar Programa en Tarjeta Arduino.

Simulacin
Trabajar con las tarjetas Arduino brinda ciertas ventajas pues trabaja con los Chips ATmega de la empresa Atmel cuyas libreras se encuentran presentes en distintos simuladores. Simular nos permitir observar el comportamiento de los chips con componentes virtuales (Resistencias, Leds, Motores) por lo que nos permite realizar cambios, probar rutinas, perfeccionar el desempeo y reducir costos. Para cumplir con este objetivo se propone Labcenter Electronics Proteus a la que pertenece el programa Isis, que permite la simulacin de chips ATmega y la usaremos para probar los circuitos que necesitemos en los proyectos. 1. Si abrimos el esquema correspondiente a tarjeta Arduino UNO con el Proteus, nos mostrara el diagrama que se muestra la Ilustracin 7. Se aprecia con los elementos que componen la placa:

||cristhian.riano@unipamplona.edu.co

cristhianivanrj@gmail.com

9 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

Ilustracin 7 Diagrama Arduino UNO. 2. Para simular el cdigo, debemos cargar el programa de la misma forma que lo haramos con el programador solo que en este caso direccionamos el archivo resultante de la compilacin al Microcontrolador. Para acceder al Microcontrolador combinamos click mas la teclas Ctrl +C y haciendo doble clic sobre el Microcontrolador se nos abrir la ventana de configuracin del ATmega328P como se muestra en Ilustracin 8.

3.

Ilustracin 8 Diagrama ATmega 328P Para simular el cdigo, debemos generar el archivo .hex el cdigo compilado se guarda en una carpeta temporal. Para conocer la ruta en donde se guarda el .hex habilitamos la opcin para mostrar la salida del compilador. Para ello vamos dentro del software de Arduino a Archivo - Preferencias y activamos la opcin mostrar resultado detallado durante compilacin como se muestra en la Ilustracin 9 .

||cristhian.riano@unipamplona.edu.co

cristhianivanrj@gmail.com

10 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

Ilustracin 9. Mostrar Resultado detallado durante Compilacin. 4. Es recomendable crear un acceso directo para la ruta que nos proporciona el software Arduino en la parte inferior para acceder al archivo hex rapidamente.

Ilustracin 10. Ruta de archivo *.Hex 5. Luego que conocemos la ruta del archivo *.Hex generado en la compilacin lo cargamos al microcontrolador realizando doble click sobre l nos aparece la ventana Edit Component y en Program File seleccionamos el archivo como se muestra en la Ilustracin 11

||cristhian.riano@unipamplona.edu.co

10

cristhianivanrj@gmail.com

11 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

Ilustracin 11 Cargar Archivo Hex en el Microcontrolador. 6. El Microcontrolador ya tiene la rutina a ejecutar, por lo que salimos de la ventana aceptando los cambios, pulsamos CTRL+X para volver al circuito del Arduino y hacemos clic sobre el boton de play para iniciar la ejecucin del cdigo, observando su comportamiento.

Estructura Bsica de un Programa.


La estructura de programacin de Arduino es simple y divide la ejecucin en por lo menos dos partes o funciones que encierran bloques de declaraciones setup y Loop:

void setup() { statements; } void loop() { statements; }

int led = 13; void setup() { pinMode(led, OUTPUT); //Ajusta Led como salida }

void loop() { digitalWrite(led, HIGH); delay(1000); // wait for a second digitalWrite(led, LOW); delay(1000); // wait for a second

} Ambas funciones son requeridas para que el programa funcione. setup()

||cristhian.riano@unipamplona.edu.co

11

cristhianivanrj@gmail.com

12 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

La funcin setup debe contener la declaracin de variables al comienzo del programa. Es la primera funcin a ejecutar en el programa, es ejecutada una vez y es usada para asignar pinMode o inicializar las comunicaciones serie.

loop()
La funcin loop se ejecuta luego de setup() e incluye el cdigo que se ejecuta continuamente leyendo entradas, activando salidas, etc. Esta funcin es el ncleo de todos los programas Arduino y soporta la mayor parte del trabajo.

Funciones
Una funcin es un bloque de cdigo que tiene un nombre y un grupo de declaraciones que se ejecutan cuando se llama a la funcin. Podemos hacer uso de funciones integradas como void setup() y void loop() o escribir nuevas. Las funciones se escriben para ejecutar tareas repetitivas y reducir el desorden en un programa. En primer lugar se declara el tipo de la funcin, que ser el valor retornado por la funcin (int, void...). A continuacin del tipo, se declara el nombre de la funcin y, entre parntesis, los parmetros que se pasan a la funcin como se muestra a continuacin. int delayVal() { int v; //crea una variable temporal 'v' v = analogRead(pot); //lee el valor del potencimetro v /= 4; //convierte 0-1023 a 0-255 return v; //devuelve el valor final de v }

type functionName(parameters) { statements; } Llaves {}

Las llaves definen el comienzo y el final de bloques de funcin y bloques de declaraciones como void loop() y sentencias for e if. Las llaves deben estar balanceadas (a una llave de apertura { debe seguirle una llave de cierre }). Las llaves no balanceadas provocan errores de compilacin. El Software Arduino incluye una prctica caracterstica para chequear el balance de llaves. Slo se debe seleccionar una llave y su compaera lgica aparecer resaltada.

void loop() { statements; }


1. Completar la siguiente Tabla

Trabajo en Clase

||cristhian.riano@unipamplona.edu.co

12

cristhianivanrj@gmail.com

13 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013 Ejemplo

Instruccin
; (punto y coma) /* */ (bloque de comentarios) // lnea de comentarios

Descripcin

2. Describir como se realiza la declaracin de variables en el software de programacin de Arduino y completar la siguiente tabla.

Instruccin
byte int long float arrays

Descripcin

Ejemplo

3. Describir como se realiza las operaciones aritmticas (Suma, Resta, Multiplicacin, Division) y completar la siguiente tabla.

Instruccin
x ++ x -x += y x -= y x *= y x /= y x == y x != y x<y x>y x <= y x >= y

Descripcin

Ejemplo

||cristhian.riano@unipamplona.edu.co

13

cristhianivanrj@gmail.com

14 de 14

UNIVERSIDAD DE PAMPLONA
Facultad de Ingenieras y Arquitectura Ingeniera Mecatrnica Docente Cristhian Ivan Riao Jaimes

PROGRAMACIN MECATRNICA Introduccin Arduino 20 de Mayo 2013

Bibliografa http://arduino.cc/en/Main/arduinoBoardUno http://arduino.cc/en/Main/arduinoBoardMega2560

||cristhian.riano@unipamplona.edu.co

14

cristhianivanrj@gmail.com

You might also like