You are on page 1of 70

Arduino, plataforma de hardware libre

Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares. El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Los microcontroladores ms usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programacin Processing/Wiring y el cargador de arranque (boot loader) que corre en la placa. Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser conectado a software del ordenador (por ejemplo: Macromedia Flash, Processing, Max/MSP, Pure Data). Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente. Al ser open-hardware, tanto su diseo como su distribucin es libre. Es decir, puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia. Consta de 14 entradas digitales configurables entrada i/o que operan a 5 voltios. Cada pin puede proporcionar o recibir como mximo 40 mA. Los pines 3, 5, 6, 8, 10 y 11 pueden proporcionar una salida PWM (Pulse Width Modulation). Si se conecta cualquier cosa a los pines 0 y 1, eso interferir con la comunicacin USB. Diecimila tambin tiene 6 entradas analgicas que proporcionan una resolucin de 10 bits. Por defecto miden de 0 voltios (masa) hasta 5 voltios, aunque es posible cambiar el nivel ms alto, utilizando el pin Aref y algn cdigo de bajo nivel. Existen numerosos modelos de Arduino con direferentes tamaos y caractersticas: Arduino UNO, Duemilanove (Nano), Mega 2560, ATmega1280, Mini, Fio, BT w/ ATmega328, BT w/ ATmega168, LilyPad Arduino w/ ATmega328, LilyPad Arduino w/ ATmega168, Pro, Pro Mini, NG, etc. Mostramos una foto de Arduino, en concreto del modelo UNO, en una mano para apreciar la escala:

Vista en detalle de Arduino UNO en su parte superior:

Frontal del Arduino UNO (conector USB y alimentacin elctrica):

Parte trasera del Arduino UNO:

Algunos sensores que se pueden conectar a Arduino: temperatura, humedad, baromtrico, acelermetro, alcoholmetro, infrarojos, comps, giroscopio, capacitivo, corriente, distancia, fuerza, movimiento, proximidad, ptico, sonido, etc.

Por supuesto, tambin se le pueden conectar a Arduino una serie de mdulos para dotarlo de funcionalidades extra como: mdem GPRS (conectando una tarjeta SIM podremos enviar SMS, hacer llamadas y conectarnos a Internet desde Arduino), Ethernet Shield (para conectar Arduino a una red LAN), mdulo Bluetooth, mdulo GPS, control de rels, RGB LED, pantalla OLED, conectividad Wifi, sintonizador digital FM, etc. En la imagen un mdulo GPRS Quadband:

La parte de atrs del mdulo GPRS acoplable para Arduino UNO:

Conectar Arduino UNO a un PC con W7, instalar y configurar Arduino IDE


Adquisicin del hardware necesario: Arduino UNO, cable USB tipo A-B y LED
Como ejemplo en este artculo conectaremos Arduino UNO a un PC con cable USB y enviaremos un programa a Arduino para que encienda un LED. A continuacin indicamos el hardware necesario para realizar este proyecto de ejemplo. En primer lugar necesitaremos, obviamente, adquirir el Arduino UNO, lo podremos adquirir va web en cualquier proveedor, por ejemplo desdehttp://www.cooking-hacks.com (Libelium Comunicaciones Distribuidas S.L.). En concreto, Arduino UNO cuesta unos 22,00 euros:

Por otro lado, para este proyecto hardware de ejemplo con Arduino UNO usaremos un LED que cuesta unos 0,20 euros:

Para la conexin del Arduino UNO con el PC usaremos un cable USB de tipo A-B:

Si no usramos el pin digital 13 de Arduino para conectar el LED necesitaramos una resistencia de unos 200 ohmios (el valor estndar ms cercano es de 220 ohmios), el clculo:

Un LED normal necesita de entre 5 y 20 mA para encenderse, por lo que necesitaremos unos 15mA para que el LED luzca bien. La alimentacin del Arduino UNO es de 5 voltios. En el LED caern 2 voltios. En la resistencia deben caer unos 3 voltios.

Por lo tanto: 5 - 2 = 3 voltios de tensin Aplicando la ley de Ohm (Tensin = Intensidad * Resistencia): V=I*R Puesto que conocemos V e I podremos calcular R: R=V/I Con los valores: R = 3 / 0.015 = 200 ohmios (donde "0.015" sern los 15mA que necesita el LED pasados a amperios) Por lo tanto necesitaremos la resistencia del mercado que ms se aproxime a 200 ohmios, que es una de 220 ohmios:

La resistencia ira conectada a la pata ms larga del LED, la positiva (ctodo), algo as:

Pero en nuestro caso no usaremos una resistencia externa pues conectaremos el LED al pin digital 13 de Arduino que ya incorpora en placa dicha resistencia:

Instalacin software IDE de desarrollo y controladores para conectar Arduino con un PC con Windows 7
Para poder programar el Arduino UNO usaremos el propio IDE que proporciona Arduino, podremos descargar la ltima versin desde: http://arduino.cc/en/Main/Software

Actualmente podremos descargar la versin 0022 de Arduino IDE, para el caso de Windows el fichero arduino-0022.zip de 86 MB. Descomprimiremos el fichero descargado en una carpeta. Esta carpeta contiene tanto el IDE de desarrollo de Arduino como los drivers (controladores) para la conexin USB en Windows. Tras descargar el fichero y descomprimirlo, en el caso de Linux no ser necesario instalar drivers, pero en el caso de Microsoft Windows 7 deberemos instalar los controladores para el emulador de puerto USB a puerto serie. Aunque Arduino se conecta al PC mediante el puerto USB en realidad, internamente, emula un puerto serie, por ello, en Microsoft Windows 7 realizaremos los siguientes pasos para instalar los drivers: 1. Conectaremos Arduino UNO al PC mediante el cable USB de tipo A-B:

2. Microsoft Windows 7 detectar el dispositivo e intentar instalar los drivers:

3. No encontrar los drivers, por lo que dar error. No ser problema, lo ignoraremos:

4. Accederemos al botn "Inicio" - "Panel de control":

5. Pulsaremos en "Hardware y sonido":

6. Pulsaremos en "Administrador de dispositivos":

7. En la ventana del Administrador de dispositivos, en "Otros dispositivos" nos mostrar con admiracin "Arduino Uno", pulsaremos con el botn derecho del ratn y seleccionaremos "Actualizar software de controlador":

8. Pulsaremos en "Buscar software de controlador en el equipo. Buscar e instalar el software de controlador de forma manual":

9. Pulsaremos en el botn "Examinar" para seleccionar la carpeta donde se encuentran los drivers:

10. Seleccionaremos la carpeta "arduino-0022" (descomprimida anteriormente) y, dentro de esta, la carpeta "drivers":

11. Pulsaremos "Siguiente":

12. El asistente para instalar un nuevo controlador nos mostrar un aviso de seguridad, pulsaremos "Instalar este software de controlador de todas formas":

13. Si todo es correcto, el asistente nos habr instalado el controlador para Arduino UNO y nos mostrar la siguiente ventana:

14. En el Administrador de dispositivos de Microsoft Windows 7 nos mostrar el nuevo controlador instalado, en "Puertos (COM y LPT)". Es importante que anotemos el nombre asignado al puerto COM para Arduino, en nuestro caso COM3, pues lo necesitaremos seleccionar en el IDE de Arduino:

Primera ejecucin del IDE de Arduino y configuracin inicial para desarrollar proyectos hardware
Tras instalar el controlador de Arduino, ahora realizaremos una primera ejecucin para configurar el IDE de desarrollo, pulsaremos con el botn derecho del ratn sobre el ejecutable "arduino.exe" de la carpeta descomprimida anteriormente y seleccionaremos "Ejecutar como administrador" (no es necesario, pero as evitamos posibles problemas de limitaciones de Microsoft Windows 7):

En el IDE de desarrollo de Arduino, en primer lugar seleccionaremos el tipo de dispositivo (Board). Para ello pulsaremos en el men "Tools" - "Board" y seleccionaremos "Arduino Uno" (o el que hayamos adquirido):

Seleccionaremos tambin el puerto serie asignado al controlador de Arduino (en nuestro caso COM3), para ello accederemos al men "Tools" - "Serial Port" - "COM3":

Primer proyecto hardware con Arduino UNO, encender un LED


Una vez adquirido Arduino, conectado al PC y configurado el IDE, vamos a explicar cmo realizar una primera aplicacin en Arduino IDE y cmo enviarla al dispositivo y testearla. Como ya hemos comentado encenderemos un LED, si no disponemos de un LED no es problema pues la placa de Arduino UNO incorpora un LED que nos servira para las pruebas:

Si disponemos de un LED conectaremos la pata ms larga (positivo ctodo) al ping digital 13 de Arduino y la pata ms corta al ping GND ms cercano al 13:

El LED quedar conectado directamente a los conectores del Arduino, lo ms profesional es usar una placa prototipo y conectar ah el LED y, a su vez, conectar la placa prototipo al Arduino con sus cables correspondientes. El LED conectado directamente al Arduino:

Con una placa prototipo y usando una resistencia sera algo as:

Pero, repetimos, para realizar un ejemplo bsico no es necesaria ni la resistencia, ni la placa prototipo o incluso ni el LED, pues Arduino UNO ya incorpora una resistencia en el ping 13 y un LED incorporado en placa. Abriremos el IDE de desarrollo de Arduino, abriremos una aplicacin de ejemplo que incluye el propio Arduino para encender y apagar un LED, para ello accederemos al men "File" - "Examples" - "Basics" - "Blink":

Se abrir el siguiente programa, cada lnea est comentada explicando para qu sirve:

/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ void setup() {

// initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); } // // // // set the LED on wait for a second set the LED off wait for a second

Pulsaremos en el botn "Verify" para compilar el cdigo C++ y verificar que es correcto:

En la parte inferior indicar si la compilacin ha sido correcta con "Done compiling" o si ha habido algn error (en cuyo caso no podremos enviarlo a Arduino):

Para enviar el programa al dispositivo Arduino conectado al PC y probarlo directamente pulsaremos en el botn "Upload":

Si el envo por el puerto establecido se ha realizado correctamente al dispositivo Arduino, en la parte inferior mostrar "Done uploading":

Si todo es correcto, cada segundo se encender el LED y se apagar otro segundo, as sucesivamente pues hemos usado un "loop":

Alimentacin elctrica para Arduino UNO

En el proyecto de ejemplo que hemos realizado hemos alimentado el Arduino mediante el cable USB conectado al PC, obviamente, si desconectamos este cable el Arduino se apagar. Para alimentarlo sin PC necesitaremos un adaptador de +12V con un conector como el que se muestra en la imagen:

Conectndolo a la corriente elctrica y al Arduino el programa que hemos cargado se iniciar y se encender y apagar el LED, esto es debido a que Arduino cuenta con una memoria para alojar el programa enviado y as poder ejecutarlo cuando se enciende (si as se ha programado):

Por supuesto, Arduino puede ser alimentado elctrimante de muchas otras formas, por ejemplo con placas solares y una batera:

En esta imagen mostramos el LED funcionando con dos placas solares conectadas en serie y, a su vez, conectadas al Arduino en su conector de alimentacin elctrica:

Arduino, plataforma de hardware libre


Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares. El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Los microcontroladores ms usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programacin Processing/Wiring y el cargador de arranque (boot loader) que corre en la placa.

Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser conectado a software del ordenador (por ejemplo: Macromedia Flash, Processing, Max/MSP, Pure Data). Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente. Al ser open-hardware, tanto su diseo como su distribucin es libre. Es decir, puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia. Consta de 14 entradas digitales configurables entrada i/o que operan a 5 voltios. Cada pin puede proporcionar o recibir como mximo 40 mA. Los pines 3, 5, 6, 8, 10 y 11 pueden proporcionar una salida PWM (Pulse Width Modulation). Si se conecta cualquier cosa a los pines 0 y 1, eso interferir con la comunicacin USB. Diecimila tambin tiene 6 entradas analgicas que proporcionan una resolucin de 10 bits. Por defecto miden de 0 voltios (masa) hasta 5 voltios, aunque es posible cambiar el nivel ms alto, utilizando el pin Aref y algn cdigo de bajo nivel. Existen numerosos modelos de Arduino con direferentes tamaos y caractersticas: Arduino UNO, Duemilanove (Nano), Mega 2560, ATmega1280, Mini, Fio, BT w/ ATmega328, BT w/ ATmega168, LilyPad Arduino w/ ATmega328, LilyPad Arduino w/ ATmega168, Pro, Pro Mini, NG, etc. Mostramos una foto de Arduino, en concreto del modelo UNO, en una mano para apreciar la escala:

Vista en detalle de Arduino UNO en su parte superior:

Frontal del Arduino UNO (conector USB y alimentacin elctrica):

Parte trasera del Arduino UNO:

Algunos sensores que se pueden conectar a Arduino: temperatura, humedad, baromtrico, acelermetro, alcoholmetro, infrarojos, comps, giroscopio, capacitivo, corriente, distancia, fuerza, movimiento, proximidad, ptico, sonido, etc.

Por supuesto, tambin se le pueden conectar a Arduino una serie de mdulos para dotarlo de funcionalidades extra como: mdem GPRS (conectando una tarjeta SIM podremos enviar SMS, hacer llamadas y conectarnos a Internet desde Arduino), Ethernet Shield (para conectar Arduino a una red LAN), mdulo Bluetooth, mdulo GPS, control de rels, RGB LED, pantalla OLED, conectividad Wifi, sintonizador digital FM, etc. En la imagen un mdulo GPRS Quadband:

La parte de atrs del mdulo GPRS acoplable para Arduino UNO:

Conectar Arduino UNO a un PC con W7, instalar y configurar Arduino IDE


Adquisicin del hardware necesario: Arduino UNO, cable USB tipo A-B y LED
Como ejemplo en este artculo conectaremos Arduino UNO a un PC con cable USB y enviaremos un programa a Arduino para que encienda un LED. A continuacin indicamos el hardware necesario para realizar este proyecto de ejemplo. En primer lugar necesitaremos, obviamente, adquirir el Arduino UNO, lo podremos adquirir va web en cualquier proveedor, por ejemplo desdehttp://www.cooking-hacks.com (Libelium Comunicaciones Distribuidas S.L.). En concreto, Arduino UNO cuesta unos 22,00 euros:

Por otro lado, para este proyecto hardware de ejemplo con Arduino UNO usaremos un LED que cuesta unos 0,20 euros:

Para la conexin del Arduino UNO con el PC usaremos un cable USB de tipo A-B:

Si no usramos el pin digital 13 de Arduino para conectar el LED necesitaramos una resistencia de unos 200 ohmios (el valor estndar ms cercano es de 220 ohmios), el clculo:

Un LED normal necesita de entre 5 y 20 mA para encenderse, por lo que necesitaremos unos 15mA para que el LED luzca bien. La alimentacin del Arduino UNO es de 5 voltios. En el LED caern 2 voltios. En la resistencia deben caer unos 3 voltios.

Por lo tanto: 5 - 2 = 3 voltios de tensin Aplicando la ley de Ohm (Tensin = Intensidad * Resistencia): V=I*R Puesto que conocemos V e I podremos calcular R: R=V/I Con los valores: R = 3 / 0.015 = 200 ohmios (donde "0.015" sern los 15mA que necesita el LED pasados a amperios) Por lo tanto necesitaremos la resistencia del mercado que ms se aproxime a 200 ohmios, que es una de 220 ohmios:

La resistencia ira conectada a la pata ms larga del LED, la positiva (ctodo), algo as:

Pero en nuestro caso no usaremos una resistencia externa pues conectaremos el LED al pin digital 13 de Arduino que ya incorpora en placa dicha resistencia:

Instalacin software IDE de desarrollo y controladores para conectar Arduino con un PC con Windows 7
Para poder programar el Arduino UNO usaremos el propio IDE que proporciona Arduino, podremos descargar la ltima versin desde: http://arduino.cc/en/Main/Software

Actualmente podremos descargar la versin 0022 de Arduino IDE, para el caso de Windows el fichero arduino0022.zip de 86 MB. Descomprimiremos el fichero descargado en una carpeta. Esta carpeta contiene tanto el IDE de desarrollo de Arduino como los drivers (controladores) para la conexin USB en Windows. Tras descargar el fichero y descomprimirlo, en el caso de Linux no ser necesario instalar drivers, pero en el caso de Microsoft Windows 7 deberemos instalar los controladores para el emulador de puerto USB a puerto serie. Aunque Arduino se conecta al PC mediante el puerto USB en realidad, internamente, emula un puerto serie, por ello, en Microsoft Windows 7 realizaremos los siguientes pasos para instalar los drivers: 1. Conectaremos Arduino UNO al PC mediante el cable USB de tipo A-B:

2. Microsoft Windows 7 detectar el dispositivo e intentar instalar los drivers:

3. No encontrar los drivers, por lo que dar error. No ser problema, lo ignoraremos:

4. Accederemos al botn "Inicio" - "Panel de control":

5. Pulsaremos en "Hardware y sonido":

6. Pulsaremos en "Administrador de dispositivos":

7. En la ventana del Administrador de dispositivos, en "Otros dispositivos" nos mostrar con admiracin "Arduino Uno", pulsaremos con el botn derecho del ratn y seleccionaremos "Actualizar software de controlador":

8. Pulsaremos en "Buscar software de controlador en el equipo. Buscar e instalar el software de controlador de forma manual":

9. Pulsaremos en el botn "Examinar" para seleccionar la carpeta donde se encuentran los drivers:

10. Seleccionaremos la carpeta "arduino-0022" (descomprimida anteriormente) y, dentro de esta, la carpeta "drivers":

11. Pulsaremos "Siguiente":

12. El asistente para instalar un nuevo controlador nos mostrar un aviso de seguridad, pulsaremos "Instalar este software de controlador de todas formas":

13. Si todo es correcto, el asistente nos habr instalado el controlador para Arduino UNO y nos mostrar la siguiente ventana:

14. En el Administrador de dispositivos de Microsoft Windows 7 nos mostrar el nuevo controlador instalado, en "Puertos (COM y LPT)". Es importante que anotemos el nombre asignado al puerto COM para Arduino, en nuestro caso COM3, pues lo necesitaremos seleccionar en el IDE de Arduino:

Primera ejecucin del IDE de Arduino y configuracin inicial para desarrollar proyectos hardware
Tras instalar el controlador de Arduino, ahora realizaremos una primera ejecucin para configurar el IDE de desarrollo, pulsaremos con el botn derecho del ratn sobre el ejecutable "arduino.exe" de la carpeta descomprimida anteriormente y seleccionaremos "Ejecutar como administrador" (no es necesario, pero as evitamos posibles problemas de limitaciones de Microsoft Windows 7):

En el IDE de desarrollo de Arduino, en primer lugar seleccionaremos el tipo de dispositivo (Board). Para ello pulsaremos en el men "Tools" - "Board" y seleccionaremos "Arduino Uno" (o el que hayamos adquirido):

Seleccionaremos tambin el puerto serie asignado al controlador de Arduino (en nuestro caso COM3), para ello accederemos al men "Tools" - "Serial Port" - "COM3":

Primer proyecto hardware con Arduino UNO, encender un LED


Una vez adquirido Arduino, conectado al PC y configurado el IDE, vamos a explicar cmo realizar una primera aplicacin en Arduino IDE y cmo enviarla al dispositivo y testearla. Como ya hemos comentado encenderemos un LED, si no disponemos de un LED no es problema pues la placa de Arduino UNO incorpora un LED que nos servira para las pruebas:

Si disponemos de un LED conectaremos la pata ms larga (positivo ctodo) al ping digital 13 de Arduino y la pata ms corta al ping GND ms cercano al 13:

El LED quedar conectado directamente a los conectores del Arduino, lo ms profesional es usar una placa prototipo y conectar ah el LED y, a su vez, conectar la placa prototipo al Arduino con sus cables correspondientes. El LED conectado directamente al Arduino:

Con una placa prototipo y usando una resistencia sera algo as:

Pero, repetimos, para realizar un ejemplo bsico no es necesaria ni la resistencia, ni la placa prototipo o incluso ni el LED, pues Arduino UNO ya incorpora una resistencia en el ping 13 y un LED incorporado en placa. Abriremos el IDE de desarrollo de Arduino, abriremos una aplicacin de ejemplo que incluye el propio Arduino para encender y apagar un LED, para ello accederemos al men "File" - "Examples" - "Basics" - "Blink":

Se abrir el siguiente programa, cada lnea est comentada explicando para qu sirve:

/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ void setup() {

// initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); } // // // // set the LED on wait for a second set the LED off wait for a second

Pulsaremos en el botn "Verify" para compilar el cdigo C++ y verificar que es correcto:

En la parte inferior indicar si la compilacin ha sido correcta con "Done compiling" o si ha habido algn error (en cuyo caso no podremos enviarlo a Arduino):

Para enviar el programa al dispositivo Arduino conectado al PC y probarlo directamente pulsaremos en el botn "Upload":

Si el envo por el puerto establecido se ha realizado correctamente al dispositivo Arduino, en la parte inferior mostrar "Done uploading":

Si todo es correcto, cada segundo se encender el LED y se apagar otro segundo, as sucesivamente pues hemos usado un "loop":

Alimentacin elctrica para Arduino UNO

En el proyecto de ejemplo que hemos realizado hemos alimentado el Arduino mediante el cable USB conectado al PC, obviamente, si desconectamos este cable el Arduino se apagar. Para alimentarlo sin PC necesitaremos un adaptador de +12V con un conector como el que se muestra en la imagen:

Conectndolo a la corriente elctrica y al Arduino el programa que hemos cargado se iniciar y se encender y apagar el LED, esto es debido a que Arduino cuenta con una memoria para alojar el programa enviado y as poder ejecutarlo cuando se enciende (si as se ha programado):

Por supuesto, Arduino puede ser alimentado elctrimante de muchas otras formas, por ejemplo con placas solares y una batera:

En esta imagen mostramos el LED funcionando con dos placas solares conectadas en serie y, a su vez, conectadas al Arduino en su conector de alimentacin elctrica:

El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Los microcontroladores ms usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programacin Processing/Wiring y el cargador de arranque (boot loader) que corre en la placa. Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser conectado a software del ordenador (por ejemplo: Macromedia Flash, Processing, Max/MSP, Pure Data). Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente. Al ser open-hardware, tanto su diseo como su distribucin es libre. Es decir, puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia.

Consta de 14 entradas digitales configurables entrada i/o que operan a 5 voltios. Cada pin puede proporcionar o recibir como mximo 40 mA. Los pines 3, 5, 6, 8, 10 y 11 pueden proporcionar una salida PWM (Pulse Width Modulation). Si se conecta cualquier cosa a los pines 0 y 1, eso interferir con la comunicacin USB. Diecimila tambin tiene 6 entradas analgicas que proporcionan una resolucin de 10 bits. Por defecto miden de 0 voltios (masa) hasta 5 voltios, aunque es posible cambiar el nivel ms alto, utilizando el pin Aref y algn cdigo de bajo nivel. Existen numerosos modelos de Arduino con direferentes tamaos y caractersticas: Arduino UNO, Duemilanove (Nano), Mega 2560, ATmega1280, Mini, Fio, BT w/ ATmega328, BT w/ ATmega168, LilyPad Arduino w/ ATmega328, LilyPad Arduino w/ ATmega168, Pro, Pro Mini, NG, etc. Mostramos una foto de Arduino, en concreto del modelo UNO, en una mano para apreciar la escala:

Vista en detalle de Arduino UNO en su parte superior:

Frontal del Arduino UNO (conector USB y alimentacin elctrica):

Parte trasera del Arduino UNO:

Algunos sensores que se pueden conectar a Arduino: temperatura, humedad, baromtrico, acelermetro, alcoholmetro, infrarojos, comps, giroscopio, capacitivo, corriente, distancia, fuerza, movimiento, proximidad, ptico, sonido, etc.

Por supuesto, tambin se le pueden conectar a Arduino una serie de mdulos para dotarlo de funcionalidades extra como: mdem GPRS (conectando una tarjeta SIM podremos enviar SMS, hacer llamadas y conectarnos a Internet desde Arduino), Ethernet Shield (para conectar Arduino a una red LAN), mdulo Bluetooth, mdulo GPS, control de rels, RGB LED, pantalla OLED, conectividad Wifi, sintonizador digital FM, etc. En la imagen un mdulo GPRS Quadband:

La parte de atrs del mdulo GPRS acoplable para Arduino UNO:

Conectar Arduino UNO a un PC con W7, instalar y configurar Arduino IDE


Adquisicin del hardware necesario: Arduino UNO, cable USB tipo A-B y LED
Como ejemplo en este artculo conectaremos Arduino UNO a un PC con cable USB y enviaremos un programa a Arduino para que encienda un LED. A continuacin indicamos el hardware necesario para realizar este proyecto de ejemplo. En primer lugar necesitaremos, obviamente, adquirir el Arduino UNO, lo podremos adquirir va web en cualquier proveedor, por ejemplo desdehttp://www.cooking-hacks.com (Libelium Comunicaciones Distribuidas S.L.). En concreto, Arduino UNO cuesta unos 22,00 euros:

Por otro lado, para este proyecto hardware de ejemplo con Arduino UNO usaremos un LED que cuesta unos 0,20 euros:

Para la conexin del Arduino UNO con el PC usaremos un cable USB de tipo A-B:

Si no usramos el pin digital 13 de Arduino para conectar el LED necesitaramos una resistencia de unos 200 ohmios (el valor estndar ms cercano es de 220 ohmios), el clculo:

Un LED normal necesita de entre 5 y 20 mA para encenderse, por lo que necesitaremos unos 15mA para que el LED luzca bien. La alimentacin del Arduino UNO es de 5 voltios. En el LED caern 2 voltios. En la resistencia deben caer unos 3 voltios.

Por lo tanto: 5 - 2 = 3 voltios de tensin Aplicando la ley de Ohm (Tensin = Intensidad * Resistencia): V=I*R Puesto que conocemos V e I podremos calcular R: R=V/I Con los valores: R = 3 / 0.015 = 200 ohmios (donde "0.015" sern los 15mA que necesita el LED pasados a amperios) Por lo tanto necesitaremos la resistencia del mercado que ms se aproxime a 200 ohmios, que es una de 220 ohmios:

La resistencia ira conectada a la pata ms larga del LED, la positiva (ctodo), algo as:

Pero en nuestro caso no usaremos una resistencia externa pues conectaremos el LED al pin digital 13 de Arduino que ya incorpora en placa dicha resistencia:

Instalacin software IDE de desarrollo y controladores para conectar Arduino con un PC con Windows 7
Para poder programar el Arduino UNO usaremos el propio IDE que proporciona Arduino, podremos descargar la ltima versin desde: http://arduino.cc/en/Main/Software

Actualmente podremos descargar la versin 0022 de Arduino IDE, para el caso de Windows el fichero arduino-0022.zip de 86 MB. Descomprimiremos el fichero descargado en una carpeta. Esta carpeta contiene tanto el IDE de desarrollo de Arduino como los drivers (controladores) para la conexin USB en Windows. Tras descargar el fichero y descomprimirlo, en el caso de Linux no ser necesario instalar drivers, pero en el caso de Microsoft Windows 7 deberemos instalar los controladores para el emulador de puerto USB a puerto serie. Aunque Arduino se conecta al PC mediante el puerto USB en realidad, internamente, emula un puerto serie, por ello, en Microsoft Windows 7 realizaremos los siguientes pasos para instalar los drivers: 1. Conectaremos Arduino UNO al PC mediante el cable USB de tipo A-B:

2. Microsoft Windows 7 detectar el dispositivo e intentar instalar los drivers:

3. No encontrar los drivers, por lo que dar error. No ser problema, lo ignoraremos:

4. Accederemos al botn "Inicio" - "Panel de control":

5. Pulsaremos en "Hardware y sonido":

6. Pulsaremos en "Administrador de dispositivos":

7. En la ventana del Administrador de dispositivos, en "Otros dispositivos" nos mostrar con admiracin "Arduino Uno", pulsaremos con el botn derecho del ratn y seleccionaremos "Actualizar software de controlador":

8. Pulsaremos en "Buscar software de controlador en el equipo. Buscar e instalar el software de controlador de forma manual":

9. Pulsaremos en el botn "Examinar" para seleccionar la carpeta donde se encuentran los drivers:

10. Seleccionaremos la carpeta "arduino-0022" (descomprimida anteriormente) y, dentro de esta, la carpeta "drivers":

11. Pulsaremos "Siguiente":

12. El asistente para instalar un nuevo controlador nos mostrar un aviso de seguridad, pulsaremos "Instalar este software de controlador de todas formas":

13. Si todo es correcto, el asistente nos habr instalado el controlador para Arduino UNO y nos mostrar la siguiente ventana:

14. En el Administrador de dispositivos de Microsoft Windows 7 nos mostrar el nuevo controlador instalado, en "Puertos (COM y LPT)". Es importante que anotemos el nombre asignado al puerto COM para Arduino, en nuestro caso COM3, pues lo necesitaremos seleccionar en el IDE de Arduino:

Primera ejecucin del IDE de Arduino y configuracin inicial para desarrollar proyectos hardware
Tras instalar el controlador de Arduino, ahora realizaremos una primera ejecucin para configurar el IDE de desarrollo, pulsaremos con el botn derecho del ratn sobre el ejecutable "arduino.exe" de la carpeta descomprimida anteriormente y seleccionaremos "Ejecutar como administrador" (no es necesario, pero as evitamos posibles problemas de limitaciones de Microsoft Windows 7):

En el IDE de desarrollo de Arduino, en primer lugar seleccionaremos el tipo de dispositivo (Board). Para ello pulsaremos en el men "Tools" - "Board" y seleccionaremos "Arduino Uno" (o el que hayamos adquirido):

Seleccionaremos tambin el puerto serie asignado al controlador de Arduino (en nuestro caso COM3), para ello accederemos al men "Tools" - "Serial Port" - "COM3":

Primer proyecto hardware con Arduino UNO, encender un LED


Una vez adquirido Arduino, conectado al PC y configurado el IDE, vamos a explicar cmo realizar una primera aplicacin en Arduino IDE y cmo enviarla al dispositivo y testearla. Como ya hemos comentado encenderemos un LED, si no disponemos de un LED no es problema pues la placa de Arduino UNO incorpora un LED que nos servira para las pruebas:

Si disponemos de un LED conectaremos la pata ms larga (positivo ctodo) al ping digital 13 de Arduino y la pata ms corta al ping GND ms cercano al 13:

El LED quedar conectado directamente a los conectores del Arduino, lo ms profesional es usar una placa prototipo y conectar ah el LED y, a su vez, conectar la placa prototipo al Arduino con sus cables correspondientes. El LED conectado directamente al Arduino:

Con una placa prototipo y usando una resistencia sera algo as:

Pero, repetimos, para realizar un ejemplo bsico no es necesaria ni la resistencia, ni la placa prototipo o incluso ni el LED, pues Arduino UNO ya incorpora una resistencia en el ping 13 y un LED incorporado en placa. Abriremos el IDE de desarrollo de Arduino, abriremos una aplicacin de ejemplo que incluye el propio Arduino para encender y apagar un LED, para ello accederemos al men "File" - "Examples" - "Basics" - "Blink":

Se abrir el siguiente programa, cada lnea est comentada explicando para qu sirve:

/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ void setup() {

// initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); } // // // // set the LED on wait for a second set the LED off wait for a second

Pulsaremos en el botn "Verify" para compilar el cdigo C++ y verificar que es correcto:

En la parte inferior indicar si la compilacin ha sido correcta con "Done compiling" o si ha habido algn error (en cuyo caso no podremos enviarlo a Arduino):

Para enviar el programa al dispositivo Arduino conectado al PC y probarlo directamente pulsaremos en el botn "Upload":

Si el envo por el puerto establecido se ha realizado correctamente al dispositivo Arduino, en la parte inferior mostrar "Done uploading":

Si todo es correcto, cada segundo se encender el LED y se apagar otro segundo, as sucesivamente pues hemos usado un "loop":

Alimentacin elctrica para Arduino UNO

En el proyecto de ejemplo que hemos realizado hemos alimentado el Arduino mediante el cable USB conectado al PC, obviamente, si desconectamos este cable el Arduino se apagar. Para alimentarlo sin PC necesitaremos un adaptador de +12V con un conector como el que se muestra en la imagen:

Conectndolo a la corriente elctrica y al Arduino el programa que hemos cargado se iniciar y se encender y apagar el LED, esto es debido a que Arduino cuenta con una memoria para alojar el programa enviado y as poder ejecutarlo cuando se enciende (si as se ha programado):

Por supuesto, Arduino puede ser alimentado elctrimante de muchas otras formas, por ejemplo con placas solares y una batera:

En esta imagen mostramos el LED funcionando con dos placas solares conectadas en serie y, a su vez, conectadas al Arduino en su conector de alimentacin elctrica:

Material necesario:

Una placa Arduino Una resistencia de 220 Un diodo LED Una Protoboard

Todo esto podis adquirirlo por separado, aunque os recomiendo que os hagis con un Starter Kit que ya lleva todos estos componentes y muchos ms para empezar a trastear, os ahorrar muchos viajes a la tienda de electrnica adems de beneficiaos de un considerable ahorro en diferencia a si lo comprarais todo por separado.

Parte 2: Diseando el Hardware


Debemos lograr mediante el programa de nuestro Arduino, encender y apagar un LED que conectaremos a una salida mediante una resistencia que nos regular la intensidad que debe llegar al diodo, las placas de Arduino ya llevan incorporada una resistencia de 220 en su salida 13 y podramos omitirla si utilizramos esta, pero como lo que queremos es mostrar tambin como calcular el tipo de resistencia que debemos poner en cada momento, utilizaremos la salida 12 como ejemplo. En primer lugar os dejo una imagen del esquema elctrico del circuito:

Para aprender a utilizar la protoboard, tenis disponible un tutorial en el que os muestra las conexiones internas de las protoboard y como utilizarla en vuestros proyectos Arduino. Debis poner especia atencin en polarizar el LED correctamente, en la seccin de componentes tenis todo sobre el LED, donde podris encontrar como calcular la resistencia apropiada a cada caso y su correcta polarizacin, en nuestro caso tenemos que, como la tensin de salida de la placa de Arduino es de 5v, tensin de nuestro LED rojo es de 1,8v y la corriente que debe pasar es de 15 mA nos quedar la siguiente frmula:

Por lo que hemos elegido una resistencia de 220, la ms cercana a ese valor existente en el mercado. Ahora solo nos queda calcular la potencia de dicha resistencia, recordando que P=VxI tenemos que P = (5-1,8) x 0,015 = 0,048w Es decir como mnimo debe ser de 48mW por lo que nos vale la ms estndar de las resistencias, la de 1/4 de vatio.

El esquema elctrico nos quedara de la siguiente manera:

Parte 3: Programando
Toca meternos a programar nuestro Arduino!! Para que haga lo que nosotros deseemos, deberemos insertarle mediante el software de Arduino una serie de instrucciones con una estructura determinada para que nuestro pequeo lo entienda. En cada proyecto explicar el motivo de cada instruccin, y lo ir guardando en un almanaque al que poder acceder cuando no recordemos algo relativo a la programacin. Este programa que vamos a desarrollar, podis copiarlo y pegarlo directamente en vuestro software de Arduino para despus transferirlo, primero os lo muestro completo, pero luego iremos desgranndolo poco a poco ?

1 2 3 4 5 6 7 8 9 10 11 12 13

/* Blink Enciende y apaga un Led en intervalos de un segundo repetidamente. Este cdigo de ejemplo es de uso pblico. */ //Configuracin de nuestra salida. void setup(){ pinMode(12, OUTPUT); // Pin 12 como Salida. }

14 15 16 17 18 19 20 21

//Ahora le decimos que hacer con esa salida. void loop(){ digitalWrite(12, HIGH); // Pone la salida 12 a ON delay(1000); // Espera un segundo digitalWrite(12, LOW); // Pone la salida 12 a OFF delay(1000); // Espera un segundo }

En primer lugar debemos tener claro la estructura de nuestro Sketch o programa para que lo entienda nuestro Arduino. Primero: La configuracin de nuestra placa (setup), esta se ejecutar tan solo una vez, cuando iniciemos nuestro Arduino. void setup() { Aqu vendrn las configuraciones de nuestro pines como entradas o salidas y la configuracin del puerto serie si es necesaria. Como veis debe estar todo incluido entre llaves. } Segundo: Programa que ejecutar ciclicamente (loop). void loop() { Aqu pondremos las instrucciones que ejecutar nuestro programa nuestro programa. } Hay que recordar siempre que pongamos una instruccin colocar ; de lo contrario nos dar error de compilacin, ya que es lo que utiliza Arduino para separar una instruccin de otra. Tambin veris en todos los programas una serie de anotaciones seguidas de //. Estas anotaciones son comentarios sobre el programa para facilitar su comprensin, y todo aquello que vaya seguido de esas barritas en la misma lnea no es interpretado por Arduino. // Esto es un comentario de una lnea Existen otra forma de insertar comentarios, son los comentarios en bloque, que se estructuran de la siguiente manera: /* Aqu podemos insertar cualquier descripcin de nuestro programa de ms de una lnea o ms sin que sea tenida en cuenta por Arduino. No debemos olvidar cerrar el bloque. */ Estos se utiliza normalmente al inicio del programa para insertar una breve descripcin del programa, fecha, versin y autor. En cuanto al setup realizado en este proyecto tenemos lo siguiente pinMode(12, OUTPUT); // Pin 12 como Salida. La instruccin pinMode nos sirve para configurar un pin como entrada (INPUT) o como salida (OUTPUT), para recordar la manera que se estructura podemos recordar el siguiente trucopinMode(pin, Mode) podemos observar que repetimos lo mismo que el nombre de la instruccin de manera que rellenaremos primero el pin y luego el Mode separados con una coma y entre parntesis. Luego tenemos en la seccin de loop las siguientes instrucciones; digitalWrite(12, HIGH); // Pone la salida 12 a ON delay(1000); // Espera un segundo digitalWrite(12, LOW); // Pone la salida 12 a OFF La instruccin digitalWrite(entradadigital, Niveldesalida) nos sirve para poner un pin digital en HIGH (1 lgico = +5v) o LOW (0 lgico = 0v). La instruccin delay(tiempo) nos sirve para crear temporizados en nuestro programa como en este caso, para encender y apagar un LED, el valor viene dado en mili-segundos, por lo que 1000 = 1sg Como podis ver es un programa muy sencillo pero que nos ha servido como toma de contacto para familiarizarnos con todo el entorno de desarrollo de Arduino, este programa lo podis encontrar tambin en la seccin de ejemplos de vuestro software de Arduino con el nombre de Blink, con la nica diferencia de pin de salida, que viene de serie con el 13 en lugar del 12.

Arduino 1: Programacin simple de un semforo

Programando un semforo. Vamos a programar el encendido de tres leds conectados en los pines 4, 5 y 6 correspondientes a las luces roja, amarilla y verde respectivamente. El tiempo de encendido ser de 3s, 1s y 4s respectivamente.

void setup() { pinMode(4,OUTPUT); //configuramos los pines 4,5 y 6 como salidas pinMode(5,OUTPUT); pinMode(6,OUTPUT); }

void loop() { digitalWrite(4, HIGH); //activamos el pin 4 (led rojo) delay(3000); //esperamos 3 segundos digitalWrite(4, LOW); //apagamos el led rojo digitalWrite(5, HIGH); //activamos el pin 5 (led amarillo) delay(1000); //esperamos 1 segundo digitalWrite(5,LOW); //apagamos el led amarillo digitalWrite(6,HIGH); //activamos el pin 6 (led verde) delay(4000); //esperamos 4 segundos digitalWrite(6,LOW); //apagamos el led verde }

Esquema de conexin (realizado con fritzing)

You might also like