"ARDUINO UNO"
Si entre tus inquietudes está descubrir qué es la programación con Arduino y para qué se utiliza, acabas de llegar al lugar indicado para poner fin a todas tus dudas. Y es que el Arduino es nada más y nada menos que una placa basada en un microcontrolador, concretamente un ATMEL.
¿Que es Arduino?
Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo (software), diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares Arduino es una plataforma abierta que facilita la programación de un microcontrolador. Los microcontroladores nos rodean en nuestra vida diaria, usan los sensores para escuchar el mundo físico y los actuadores para interactuar con el mundo físico. Los microcontroladores leen de los sensores y escriben sobre los actuadores.
Los diseños de las placas Arduino usan diversos microcontroladores y microprocesadores. Generalmente el hardware consiste de un microcontrolador Atmel AVR, conectado bajo la configuración de "sistema mínimo" sobre una placa de circuito impreso a la que se le pueden conectar placas de expansión (shields) a través de la disposición de los puertos de entrada y salida presentes en la placa seleccionada. Las shields complementan la funcionalidad del modelo de placa empleada, agregando circuiteria, sensores y módulos de comunicación externos a la placa original.

El hardware de Arduino consiste en una placa con un microcontrolador generalmente Atmel AVR con puertos de comunicación y puertos de entrada/salida. Los microcontroladores más usados en las plataformas Arduino son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez, pero se está ampliando a microcontroladores Atmel con arquitectura ARM de 32 bits y también a microcontroladores de Intel.
Por otro lado Arduino nos proporciona un software consistente en un entorno de desarrollo (IDE) que implementa el lenguaje de programación de Arduino, las herramientas para transferir el firmware al microcontrolador y el bootloader ejecutado en la placa. La principal característica del software y del lenguaje de programación es su sencillez y facilidad de uso.

Arduino promete ser una forma sencilla de realizar proyectos interactivos para cualquier persona. Para alguien que quiere hacer un proyecto, el proceso pasa por descargarnos e instalar el IDE buscar un poco por internet y simplemente hacer "corta y pega" del código que nos interese y cargarlo en nuestro HW. Luego hacer los cableados correspondientes con los periféricos y ya tenemos interaccionando el software con el Hardware. Todo ello con una inversión económica mínima: el coste del Arduino y los periféricos.
¿Para qué sirve Arduino? Arduino se puede utilizar para crear elementos autónomos, conectándose a dispositivos e interactuar tanto con el hardware como con el software. Nos sirve tanto para controlar un elemento, pongamos por ejemplo un motor que nos suba o baje una persiana basada en la luz existente es una habitación, gracias a un sensor de luz conectado al Arduino, o bien para leer la información de una fuente, como puede ser un teclado o una página web, y convertir la información en una acción como puede ser encender una luz y escribir por un display lo tecleado.

Los diseños de las placas Arduino usan diversos microcontroladores y microprocesadores. Generalmente el hardware consiste de un microcontrolador Atmel AVR, conectado bajo la configuración de "sistema mínimo" sobre una placa de circuito impreso a la que se le pueden conectar placas de expansión (shields) a través de la disposición de los puertos de entrada y salida presentes en la placa seleccionada. Las shields complementan la funcionalidad del modelo de placa empleada, agregando circuitería, sensores y módulos de comunicación externos a la placa original. La mayoría de las placas Arduino pueden ser alimentadas por un puerto USB o un puerto barrel Jack de 2.5mm. La mayoría de las placas Arduino pueden ser programadas a través del puerto serie que incorporan haciendo uso del Bootloader que traen programado por defecto.
Historia
De forma estricta, el proyecto «Arduino» se inició en el año 2005 como un proyecto enfocado a estudiantes en el Instituto IVREA (IDII), en Ivrea (Italia).2 En aquellos años, los estudiantes usaban el microcontrolador BASIC Stamp, cuyo costo era de $100 USD, un costo considerablemente alto para un estudiante promedio. Antes del año 2005, específicamente durante el año 2003, Hernando Barragán había creado la plataforma de desarrollo Wiring como resultado de su proyecto de tesis en la maestría en el IDII, bajo la supervisión de Massimo Banzi y Casey Reas, quienes eran conocidos por haber trabajado en el lenguaje Processing y daban clases en el IDII2. El objetivo del proyecto era crear herramientas simples y de bajo costo para la creación de proyectos digitales por parte de personas sin altos conocimientos técnicos o sin un perfil de ingeniería. El proyecto Wiring era una placa de desarrollo de hardware que constaba de una placa de circuito impreso (PCB) con un microcontrolador ATmega168, un Ambiente de Desarrollo Integrado (IDE) basado en funciones de procesamiento y una biblioteca de funciones para programar fácilmente el microcontrolador.6 Regresando al año 2005, Massimo Banzi junto con David Mellis (otro estudiante del IDII) y David Cuartielles, agregaron soporte a Wiring para el microcontrolador ATmega8, más económico que el inicial (Atmega168). Pero en lugar de continuar el desarrollo en Wiring, se separaron del proyecto y lo renombraron Arduino.

El nombre Arduino viene de un bar en Ivrea, Italia; en donde algunos de los fundadores del proyecto Arduino solían reunirse. El bar tiene el nombre de " Bar di Re Arduino", y fue nombrado en honor a Arduino de Ivrea, quien fue el margrave de la Marcha de Ivrea y Rey de Italia desde el año 1002 hasta el año 1014
Tipos de Arduino

Arduino uno:La placa tiene 14 pines digitales, 6 pines analógicos programables con el Arduino IDE (Entorno de desarrollo integrado) a través de un cable USB. Puede ser alimentado por el cable USB o por una batería externa de 9 voltios, aunque acepta voltajes entre 5 y 12 voltios. Es el buque insignia de Arduino ya que es la placa más popular, la que todo el mundo utiliza para iniciarse y la más sencilla de utilizar. Es el punto de partida de muchos entusiastas de la programación de electrónica.

Arduino Mega:La placa con el microcontrolador más potente de la familia Arduino. Con 54 pines digitales que funcionan como entrada y salida; 16 entradas analógicas, un cristal oscilador de 16 MHz, una conexión USB, un botón de reinicio y una entrada para la alimentación de la placa. Arduino MEGA es la placa que se utiliza cuando Arduino UNO no llega a cubrir las necesidades de un proyecto. Se ha utilizado ampliamente como centro de control y computación en impresoras 3D...

El proyecto nació en 2003, cuando varios estudiantes del Instituto de Diseño Interactivo de Ivrea, Italia, con el fin de facilitar el acceso y uso de la electrónico y programación. Lo hicieron para que los estudiantes de electrónica tuviesen una alternativa más económica a las populares BASIC Stamp, unas placas que por aquel entonces valían más de cien dólares, y que no todos se podían permitir demás, las placas Arduino también cuentan con otro tipo de componentes llamados Escudos (Shields) o mochilas. Se trata de una especie de placas que se conectan a la placa principal para añadirle una infinidad de funciones, como GPS, relojes en tiempo real, conectividad por radio, pantallas táctiles LCD, placas de desarrollo, y un larguísimo etcétera de elementos. Incluso hay tiendas con secciones especializadas en dichos elementos.
Arduino DUE:
Arduino basado en un microcontrolador de 32 Bits, Tiene 54 entradas/salidas digitales y 12
entradas analógicas, 2 buses TWI, SPI y 4 UARTs. Funcionan todos los módulos basados en
3.3V, no soporta 5V ya que puede dañar la placa. Posee adicionalmente interno dos puerto
USB para poder controlar periféricos.

Arduino Leonardo:
Arduino básico, Con características similaresa
la arduino, sin embargo tiene 12 entradas
analógicas y 20 entrada salidas digitales. A
diferencias del resto de arduinos con el
microcontrolador ATmega32u4 en que no
posee un controlador adicional para
controlar el USB. Además tiene más pines de
interrupciones externas. Tiene comunicación
TWI, SPI y dos UAR

Arduino Mega ADK:
Exactamente igual que el Mega 2560 pero con la diferencia de que en este caso se tiene la
posibilidad de USB Host, poco utíl en este proyecto

Arduino Micro:
Es completamente similar al Leonardo, la única
diferencia es el tamaño con el que fue construido. Es
compatible con las Shields de arduino, sin embargo
se debe instalar de forma externa, es decir,
cableándolo, aunque en el caso de que se construya
nuestra propia shield no es ningún problema.

Arduino Nano:
Arduino basado en un microcontrolador ATmega328. Es
similar en cuanto a características al arduino uno. Las
diferencias son tanto el tamaño como la forma de conectarlo
al ordenador para programarlo. Es compatible con la
mayoría de shield, aunque de la misma forma que el arduino
Micro.

Arduino YUN:
El Arduino YUN se trata de un conjunto que
trabaja por separado de forma
complementaria, por un lado se tiene la
versatilidad de un arduino normal. En este
caso un ATmega 32u48 a 16 Mhz, y por otro
lado de un dispositivo con microprocesador
Atheros AR9331. El cual funciona con Lilino
(Linux basado en OperWrt (OperWrt-Yun)) a
400 Mhz. Las características del arduino son
similares a la placa Leonardo. Tiene Ethernet,
slot SD y WiFi incluidos, controlados por Lilino.. Es compatible con todas las Shields y es capaz
de trabajar por separado

Arduino FIO:
Arduino basado en un microcontrolador
ATmega328p. Trabaja a 8 Mhz y 3.3V tiene 14
pines de entrada/salida digitales (6 PWM), 8
pines de entrada analógicas e integra tanto un
conector para la batería y su correspondiente
modulo de carga, como un slot para poder
instalar un modulo de comunicaciones xBee. Tiene UART TTL e interrupciones lo que nos
permite también ponerlo en modo Sleep, permite también poner el XBEE en modo Sleep,
reduciendo el consumo total. Además posee tanto TWI (I2C) como SPI. Unas ventajas
importantes de este dispositivo son el bajo consumo en Sleep y el poder programarlo
mediante XBEE, sin necesidad conectarlo físicamente al ordenador.

Qué podemos hacer con uno
La enorme flexibilidad y el carácter libre y abierto de Arduino hacen que puedas utilizar este tipo de placas prácticamente para cualquier cosa, desde relojes hasta básculas conectadas, pasando por robots, persianas controladas por voz o tu propia vending machine .
¿'Como podemos utilizar Arduino uno?
Puedes seleccionar la placa a través del menú en Herramientas>Placa>Arduino/Genuino UNO. No hace falta que conectes la placa al ordenador para seleccionar un modelo. El puerto serie es por donde se comunican Arduino y el ordenador. Es necesario que tengas conectado tu Arduino al ordenador

Partes principales Arduino.
1 .Conector USB, que puede ser tipo B o mini, este provee la comunicación para la programación y la toma de datos, también provee una fuente de 5VDC para alimentar al arduino, pero de baja corriente por lo que no sirve para alimentar motores grandes.
2.Regulador de voltaje: de 5V, se encarga de convertir el voltaje ingresado por el plug3, en un voltaje de 5V regulado. necesario para el funcionamiento de la placa y para alimentar circuitos externos.
3.Plug de conexión :para fuente de alimentación externa, el voltaje que se suministrapor aquí debe ser directo y estar entre 6V y 18V, incluso 20V, generalmente se usa un adaptador, pero debe tener cuidado de que el terminal del centro del plug quede conectado a positivo ya que algunos adaptadores traen la opción de intercambiar la polaridad de los cables
4.Puerto de conexiones; constituido por 6 pines de conexión con las siguientes funciones: RESET, permite resetear el microcontrolador al enviarle un cero lógico. Pin 3.3V, este pin provee una fuente de 3.3VDC para conectar dispositivos externos comoen la protoboard por ejemplo. Pin 5V, es una fuente de 5VDC para conectar dispositivos externos. Dos pines GND, que proveen la salida de cero voltios para dispositivos externos.
5.Puerto de entradas análogas:, aquí se conectan las salidas de los sensores análogos. Estos pines solo funcionan como entradas recibiendo voltajes entre cero y cinco voltios directos.
6. LED verde de placa encendida, enciende cuando el Arduino está encendido
7.Microcontrolador Atmega328: es el microcontrolador implementado en los Arduinouno y sobre el cual vamos a programar, en la versión SMD del arduino uno R2, se usa el mismo microcontrolador pero en montaje superficial, en este caso las únicas ventajas que se me ocurren son la reducción del peso y ganar un poco de espacio.
8.Botón de RESET, este botón así como el pin mencionado anteriormente permiten resetear el microcontrolador haciendo que reinicie el programa. En la versión R3 este pulsador se ubica arriba del conector USB, esto es un acierto pues al colocarle las Shield encima del arduino, se perdía la opción de resetear dado que este pulsador quedaba tapado.
9.Pines de programación ICSP, son usados para programar microcontroladores en protoboard o sobre circuitos impresos sin tener que retirarlos de su sitio.
10.LEDs de recepción y transmisión, estos se encienden cuando la tarjeta secomunica con el PC. El Tx indica transmisión de datos y el Rx recepción.
11.Puerto de conexiones, está constituido por los pines de entradas o salidas digitales desde la cero hasta la 7. La configuración como entrada o salida debe ser incluida en el programa. Cuando se usa la terminal serial es conveniente no utilizar los pines cero y uno .
12.Pines de E/S digitales y PWM:incluye 5 entradas o salidas adicionales , las salidas9, 10 y 11 permiten control por ancho de pulso; la salida 13 es un poco diferente puestiene conectada una resistencia en serie, lo que permite conectar un led directamente entre ella y tierra.
13.Este led indica el estado del pin 13
14.No se exactamente la función de estos pines
15.Chip de comunicación que permite la conversión de serial a USB

Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino (de la marca atmel) se programa mediante el lenguaje de programación Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Una vez descargados en las placas Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP).
Ventajas y desventajas del Arduino
- Arduino trae el programador incorporado, en la plataforma PIC es necesario comprar el programador por separado alcanzando este costos de hasta $200.000 para los originales y desde $60.000 a $120.000 para las copias hechas en Colombia y del orden de $40.000 mas el tiempo para un programador hecho por nosotros mismos. esto contrasta con el caso de arduino en donde las versiones mas costosas del arduino uno cuestan unos $80.000 (R3) y ya incorporan programador y el chip a programar.
- Arduino viene listo para usar, es muy gratificante cuando se compra un arduino saber que puedo llegar a casa, conectar los sensores, los actuadores y programar inmediatamente. esto no sucede con los PIC en donde se debe construir el circuito del PIC y la fuente en ona protoboard antes de poder realizar alguna prueba, aunque por allí vi en internet el proyecto PICDUINO que consiste en una plataforma parecida a la de arduino pero implementada con PICs, esto es muy bueno para los entusiastas de los PICs.
- La plataforma hecha en Colombia (realmente en cualquier parte que no sea la original Italiana) llamada FREEDUINO podemos conseguirla entre unos $10.000 y $15.000 pesos mas económica que la versión italiana y con las mismas prestaciones.
- A mi parecer los microcontroladores Atmel utilizados para construir las plataformas arduino presentan mejores prestaciones que los de Microchip (esta es una opinión personal y puedo estar falseando por falta de información)
- las plataformas de arduino pueden ser adquiridas en versiones de montaje superficial que ocupan muy poco espacio y consumen muy poca potencia, este punto es relevante cuando diseñamos productos del tipo electrodomesticos o productos electronicos de consumo.
- Al usar las librerías, la programación en arduino es mas sencilla y fácil de aprender que la basada en Ensambler de los PIC. Realmente las personas acostumbradas a programar en lenguajes como C y C++ ya saben programar los arduinos.
- Dado que tanto el software como el hardware es libre, se hacen ideal para los proyectos de la universidad y de pequeñas empresas sin temor a estar violando los derechos de autor de alguien.
Dentro de las desventajas podemos mencionar...
- Dado que la programación no se realiza en ensambler, el precio a pagar por el uso de las librerías es un retraso en la ejecución de las instrucciones, algunos microsegundos que en el caso de dispositivos de uso cotidiano son irrelevantes, pero significativos a la hora de hacer adquisición de datos.
- El hecho de que la plataforma venga ya ensamblada le quita flexibilidad a los proyectos, asi por ejemplo estaríamos obligados a usar un espacio y forma acorde con el PCB del arduino, para superar esto, se debe trabajar con un microcontrolador diferente al de la plataforma y diseñar las PCB desde cero como con los PICs
Descarga e interface del Software
El software para la programación de la plataforma Arduino se puede descargar en forma gratuita de la pagina en su versión en ingles encontraran el Arduino 1.01 que es la versión mas reciente, allí se escoge el sistema operativo y se inicia la descarga, en particular yo trabajare en Windows. Una vez descargado el archivo, se descomprime y se ejecuta directamente el ejecutable arduino.exe presente en la carpeta.


La interface de Arduino a cambiado en su versión 1.0 por lo que es posible leer esta información en la pagina en ingles, la pagina en español también nos muestra algo pero teniendo en cuenta que los iconos están desactualizados, pero en su mayoría todo es muy parecido a las versiones antiguas. En particular me agrada mas este ultimo editor y permite un mejor trabajo.

Primeros pasos con Arduino uno
Para comenzar a programar primero debemos instalar la placa a utilizar, siguiendo los pasos numerados a continuación:
- Conectar la placa al puerto usb, esto hará que se inicie la instalación, pero esta por lo general falla


- para hacer la instalación nos vamos al panel de control y entramos al administrador de dispositivos


Una vez en el administrador damos clic derecho sobre el puerto de Arduino que debe aparecer con una advertencia y allí seleccionamos "Actualizar software de controlador".

Ahora si sigamos los tutoriales de la pagina
Led Parpadeante (Blink): Construye el circuito de la pagina, solo es conectar un led y configura la plataforma a utilizar como se muestra en la figura

para tener acceso al código, abre el ejecutable de arduino y en los ejemplos abre la opción Blink como se muestra en la figura

verifique el programa y luego cárguelo en la la placa de Arduino (todo esto se hace en la interface), asegúrese de usar el puerto adecuado en el menú Opción/Serial Port, seleccione alguno de la lista hasta que la descarga funcione, lo que se sabe porque los leds Rx y Tx parpadean. Una vez descargado el programa el led del pin 13 debe parpadear intermitentemente.
El Arduino UNO Genérico. Esta tarjeta no está fabricada por la empresa original (Arduino LLC). Arduino se ha convertido en algo más que una placa de desarrollo de proyectos Open Source. Es toda una comunidad, es un estándar, es las ideas, es colaboración y contribución, en fin. Arduino hoy por hoy es un ecosistema tecnológico que integra la voluntad de millones de entusiastas en todo el mundo para impulsar el desarrollo de proyectos y prototipos de cualquier nivel. Desde principiantes hasta avanzados. Desde niños, hasta adultos mayores. No importa. Eres bienvenido a la comunidad Arduino.
Aplicaciones:
Con las tarjetas Arduino tienes la posibilidad de crear casi cualquier proyecto. Existen diversos ejemplos con código y diagramas de conexión que puedes aprovechar para comenzar a experimentar con tu tarjeta Arduino.
Proyectos como: Electrónica, Robótica, Agronomía, Internet de las Cosas, Automatización Industrial, Domótica, Artes plásticas, Mecatrónica, Salud, Audio y Video, y un sin fin de categorías más donde puedes utilizar Arduino.

Desde que se lanzó al mercado la placa Arduino UNO, mucho ha evolucionado esta placa con la salida de sus últimas revisiones. Además, sus mismos creadores se han apresurado a crear otras placas similares en distintos formatos para cubrir más necesidades de las que inicialmente cubría la UNO. Incluso otros muchos se han atrevido a crear sus propias placas clon o compatibles, aunque no con el mismo éxito
Las placas pueden ser hechas a mano o comprarse montadas de fábrica; el software puede ser descargado de forma gratuita. Los ficheros de diseño de referencia (CAD) están disponibles bajo una licencia abierta, así pues eres libre de adaptarlos a tus necesidades.
Entonces, ¿te imaginas ya para qué sirve un Arduino? Por darte una idea, con un Arduino puedes crear básicamente lo que quieras, desde una báscula, un reloj, hasta unas puertas controladas por voz, etc. Para que puedas entender cómo podemos pasar de un microordenador a un sistema complejo como el que acabamos de mencionar, vamos a ahondar en qué son las placas arduino y en su historia
las placas tienen interfaces de comunicación en serie, incluyendo el bus serie universal (USB) en algunos modelos, que también se utilizan para cargar programas de ordenadores personales. Los microcontroladores pueden ser programados usando los lenguajes de programación C y C++. Además de utilizar las cadenas de herramientas de compilación tradicionales, el proyecto Arduino proporciona un entorno de desarrollo integrado (IDE) basado en el proyecto del lenguaje Processing.
Debido a que el lenguaje está basado en frameworks bien utilizados, Arduino puede interactuar con otros programas en el ordenador como Flash o incluso con APIs web como Twitter. Esta plataforma puede tener tanto usos industriales como domésticos e incluso artísticos, pero se aplica sobretodo dentro del campo educativo por ser de código abierto, además de su sencillez de uso y su bajo coste, hay una gran cantidad de modelos de placas siendo la más utilizada la Uno, sobretodo en el mundo de la educación. Por eso ha sido diseñada de manera robusta para así soportar toda una serie de situaciones de uso con los estudiantes.
Uno de los motivos por los que Arduino es tan popular es la libertad y la flexibilidad que ofrece para montar proyectos muy variados. Y, si nos ponemos en el lugar de alguien que quiere aprender programación y robótica, vemos que esta característica es perfecta porque nos obliga a "trastear" y experimentar con la placa para ir aprendiendo a base de hacer y deshacer
La programación de Arduino es la programación de un microcontrolador. Esto era algo más de los ingenieros electrónicos, pero Arduino lo ha extendido a todo el público. Arduino ha socializado la tecnología.Programar Arduino consiste en traducir a líneas de código las tareas automatizadas que queremos hacer leyendo de los sensores y en función de las condiciones del entorno programar la interacción con el mundo exterior mediante unos actuadores.
Arduino proporciona un entorno de programación sencillo y potente para programar, pero además incluye las herramientas necesarias para compilar el programa y "quemar" el programa ya compilado en la memoria flash del microcontrolador. Además el IDE nos ofrece un sistema de gestión de librerías y placas muy práctico. Como IDE es un software sencillo que carece de funciones avanzadas típicas de otros IDEs, pero suficiente para programar.
Estructura de un Sketch
Un programa de Arduino se denomina sketch o proyecto y tiene la extensión .ino. Importante: para que funcione el sketch, el nombre del fichero debe estar en un directorio con el mismo nombre que el sketch.No es necesario que un sketch esté en un único fichero, pero si es imprescindible que todos los ficheros estén dentro del mismo

adicionalmente se puede incluir una introducción con los comentarios que describen el programa y la declaración de las variables y llamadas a librerías.

setup() es la parte encargada de recoger la configuración y loop() es la que contiene el programa que se ejecuta cíclicamente (de ahí el término loop -bucle-). Ambas funciones son necesarias para que el programa trabaje.
Se puede resumir un sketch de Arduino en los siguientes diagramas de flujo:

Lenguaje de Programación Arduino
El lenguaje de programación de Arduino es C++. No es un C++ puro sino que es una adaptación que proveniente de avr-libc que provee de una librería de C de alta calidad para usar con GCC (compilador de C y C++) en los microcontroladores AVR de Atmel y muchas utilidades específicas para las MCU AVR de Atmel.
Las herramientas necesarias para programar los microcontroladores AVR de Atmel son avr-binutils, avr-gcc y avr-libc y ya están incluidas en el IDE de Arduino, pero cuando compilamos y cargamos un sketch estamos usando estas herramientas
Aunque se hable de que hay un lenguaje propio de programación de Arduino, no es cierto, la programación se hace en C++ pero Arduino ofrece una api o core que facilitan la programación de los pines de entrada y salida y de los puertos de comunicación, así como otras librerías para operaciones específicas. El propio IDE ya incluye estas librerías de forma automática y no es necesario declararlas expresamente. Otra diferencia frente a C++ standard es la estructuctura del programa que ya hemos visto anteriormente.
Entorno de desarrollo de Arduino
Si quieres aprender Arduino tienes que programar. No existen fórmulas milagrosas ni atajos. Programar es la única manera de llevar a cabo tus propios proyectos con Arduino.
Esta programación, ya sea para Arduino, para otro tipo de placa o para otro lenguaje de programación, se suele hacer a través de un IDE o entorno de desarrollo. Pero, ¿qué es un IDE o entorno de desarrollo?
Déjame que te lo explique con una analogía. Cuando estás escribiendo un informe o cualquier documento para tu trabajo ¿con qué software lo haces? Normalmente se utiliza Office de Microsoft o la versión de código abierto Libre Office. Cuanto más azúcar más dulce. Un procesador de texto potente te permitirá añadir tablas, utilizar listas y demás herramientas que facilitan el crear un documento. Seguramente todo esto no lo puedas hacer con el Bloc de Notas de Windows por ejemplo.
Con los entornos de desarrollo ocurre algo parecido. Con el IDE de Arduino podemos escribir nuestro código de una forma muy fácil y sobre todo, con muchas ayuda

Por ejemplo, cuando escribimos una palabra reservada nos la cambia de color. Podemos contraer estructuras de control o funciones. Insertar y gestionar librerías a través del menú o formatear el código.
Pero lo más importante del IDE de Arduino es que podemos cargar el código a la placa. Podríamos escribir todo nuestro código en el Bloc de Notas o algún otro editor de texto y sería totalmente válido. El código no es más que texto.Sin embargo, el IDE de Arduino nos permite hacer una cosa fundamental: compilar el código y subirlo a la placa. Esa es la clave. No te preocupes si ahora no entiendes qué es eso de compilar, muy pronto lo veremos.
Otra característica importante del IDE de Arduino es que es de código abierto. Pero ¿qué quiere decir esto? Bueno, Arduino es una plataforma abierta. Dentro de esta plataforma se incluye el IDE de Arduino.
Esto significa que ya no solo tenemos el software de forma gratuita, también lo podemos modificar a nuestro antojo. Eso sí, para hacer cualquier mejora o cambio debes conocer el lenguaje de programación con el que se programa el propio entorno de desarrollo de Arduino.
Versiones del IDE de Arduino
Se trata de un software que está en constante actualización. Arduino no tiene un periodo fijo a la hora de hacer actualizaciones. Cuando sale una nueva versión se añaden nuevas opciones o se corrigen errores.
Lo más importante es que de momento (vamos por la versión 1.8.6) el IDE sigue manteniendo su mismo aspecto. Esto es más importante de lo que parece. Las opciones suelen estar siempre en el mismo sitio y por lo tanto, cuando se actualiza apenas notarás la diferencia.Pero por ahora tampoco cambia el código. Esto quiere decir que si tu tienes un programa que hiciste con la versión 1.4 de Arduino, también te servirá para cargarlo a la placa con la versión 1.8.
Instalación del IDE de Arduino
El segundo paso, una vez visto qué es un IDE y qué nos puede aportar, es la instalación. En este sentido no hay mucho misterio.
Podemos decir que este es el primer paso técnico en un curso de Arduino. Como dicen en la película de Los Goonies: «todo parte de aquí«.
Accede a la sección de software de Arduino. En la actualidad podemos programar de dos formas a través del IDE oficial de Arduino. Hay una versión web y un versión de escritorio. Para empezar te recomiendo que lo hagas a través de la versión de escritorio.

Puedes darle el nombre que quieras siempre y cuando cumplas las reglas de tu sistema operativo. Te recomiendo que sea un nombre descriptivo y que no utilices caracteres especiales.
Cuando haces esto suceden varias cosas. Por un lado cambia el nombre en el IDE de Arduino. Así sabes en todo momento con que programa estás trabajando.

Y luego, en la ruta que hayas elegido habrá creado una carpeta con el mismo nombre y dentro el fichero.

Partes fundamentales del IDE de Arduino
Dentro del IDE de Arduino podemos destacar 3 partes principales. El editor, el área de mensajes y la consola.

El editor
Aquí es donde más vamos a trabajar ya que es donde escribimos nuestro código. Pero no solo eso, también tenemos acceso a las funciones más utilizadas.
En la parte central encontramos el propio editor. Incluye el número de línea útil, por ejemplo, para detectar errores
- Verificar/Compilar: este botón verifica el código en busca de errores y lo compila. Cuando hablo de compilar me refiero a traducir el lenguaje de programación que entendemos los humanos en código máquina que entienden las máquinas.
- Subir: el botón subir nos permite cargar o subir el código al microcontrolador a través del puerto serie USB.
- Nuevo: sirve para crear un programa nuevo. Esto genera una nueva ventana donde escribir el código de ese nuevo programa.
- Abrir: abre un programa que hayas guardado previamente en el disco duro.
- Salvar: guarda el archivo en el disco duro. Es como la opción que hemos visto anteriormente.
- Monitor serie: es una de las partes más importantes del IDE de Arduino. Sirve para mostrar información de la comunicación entre el ordenador y Arduino en las dos direcciones.


El área de mensajes

En este área de mensajes se muestra la última acción que has realizado. También muestra mensajes cuando se está realizando alguna tarea como subiendo un programa a la placa .
La consola
La consola nos va a dar información muy valiosa. Nos puede dar información sobre una acción concreta, por ejemplo los datos tras subir un programa a la placa. Pero lo más importante, nos informa si hay algún error.

A los elementos que mas les sacaremos provecho son:

Verificar: Este botón realiza dos funciones: comprueba que no hayan error en nuestro código, y si no hay problemas, lo compila.

Subir: Este botón lo utilizamos luego de "Verificar". Su función es cargar en la memoria del microcontrolador el programa que hemos escrito.

Crea un nuevo sketch vacío.

Abrir: Despliega un menú con todos los sketches disponibles para abrir. Podemos abrir nuestros propios sketches como la gran cantidad de sketches que viene listos como ejemplos para probar, clasificados en categorías dentro del menú.

Guardar: Guarda el código de nuestro sketch en un fichero, el cual tendrá la extensión ".ino". Podemos guardar estos ficheros donde queramos, pero el IDE Arduino nos ofrece una carpeta específica para ello, la carpeta "Arduino" en "Documentos", ahí se creara una carpeta con el nombre de tu skecth, así el IDE evita que se mezclen los archivos de los distintos skecth.

Abre el monitor serial. Nos permite ver información transmitida desde nuestro Arduino por el puerto de comunicación serial, aquí hablamos un poco mas de el.

Menú contextual: Esta pestaña se ubica bajo el botón de monitor serial, nos permite abrir nuevas pestañas. Abrir nuevas pestañas es de suma utilidad cuando tenemos códigos tan largos que necesitamos dividirlo en partes para trabajar mas cómodamente. Es es así porque todas las nuevas pestañas abiertas forman parte del mismo proyecto que la primera pestaña original. Lo mas habitual es utilizar pestañas separadas para la definición de funciones, constantes o variables globales.
Programa: en este menú se ofrece la acción de verificar/compilar nuestro sketch, la de abrir la capeta donde esta guardado el fichero ".ino" que se esta editando en este momento, la de añadir en una nueva pestaña un nuevo fichero de código a nuestro sketch y la de importar librerías.
Herramientas: En este menú se ofrecen diferentes herramientas variadas, como la posibilidad de auto-formatear el código para hacerlo mas legible, la posibilidad de guardar una copia de todos los sketches del proyecto actual en formato .zip, la posibilidad de abrir el monitor serie, etc. Otras herramientas mucho mas avanzadas son por ejemplo la entrada "Programador:" que podemos usar para seleccionar un programador externo y poder grabar el sketch en memoria a través de dicho programador o "Quemar bootloader", útil cuando queramos grabar un nuevo bootloader en el microcontrolador de la placa.
Ayuda: desde este menú podemos acceder a varias secciones de la pagina web oficial de Arduino que contienen diferente artículos, tutoriales y ejemplos de ayuda. No se necesita internet para consultar duchas secciones ya que eta documentación se descarga junto con el propio IDE, por lo que su acceso se realiza en forma local.
Editar: Además de ofrecer acciones estándar como deshacer y rehacer, cortar, copiar y pegar texto, seleccionar todo el texto o buscar y remplazar texto, podemos ver otras acciones interesantes. Por ejemplo, gracias a la entrada "copiar al foro" podemos copiar el código de nuestro sketch al portapapeles de nuestro sistema operativo en una forma que es especialmente adecuada para pegarlo directamente en el foto oficial de Arduino. También podemos "copiar como HTML" el cual copia en una forma especial para pegarlo en paginas web genéricas.
Archivo: Ofrece acciones estándar como crear un nuevo documento sketch, abrir uno existente, guardarlo, cerrarlo, cerrar el IDE, etc. También añade otras funciones interesantes, como "Ejemplos" donde podemos acceder a los sketches de ejemplo que vienen de serie con el IDE y gracias a la entrada "Proyectos" podemos acceder a nuestros propios sketches guardados en las diferentes sub-carpetas que hay dentro de la carpeta "Arduino".
Lenguaje Arduino
El equipo que desarrolló la tarjeta Arduino creo un lenguaje propio para programar estas tarjetas. Este lenguaje esta basado en un lenguaje llamado Wiring. Este es un framework (Un framework es una especie de plantilla, esquema o estructura conceptual de base tecnológica que nos permite trabajar de una manera mucho más sencilla) de código abierto para la programación de microcontroladores.
Lenguaje C/C++
Ya vimos que el lenguaje Arduino está basado en wiring y este a su vez está basado en C/C++. Por lo cual para trabajar con proyectos en Arduino debemos tener conocimientos de lenguaje C. Si bien no se usan todas las funciones de este lenguaje, si se usan los tipos de variables y las estructuras.
La ventaja que ofrece C es que es un lenguaje de medio nivel, que permite manejar más eficientemente los recursos del microcontrolador, además es un lenguaje compilado, lo cual nos permite crear un archivo que posteriormente será cargado en el microcontrolador.
Referencias de funciones, estructuras y variables
Al momento de programar tu tarjeta Arduino necesitas conocer las funciones predefinidas con las que cuenta el lenguaje o el framework, las estructuras que normalmente no varían mucho entre lenguajes y los tipos variables. En algunos lenguajes de programación el tipo de variable no tiene mucha importancia, pero para el caso del lenguaje C si es muy importante declarar el tipo de variable de forma correcta.
En la página de Arduino aparece una sección donde se muestran las funciones, estructuras y tipos de variables usadas en el lenguaje. Te dejo el enlace para que las revises por lo menos por encima. No tienes que memorizarte cada una.
Aprendiendo lenguaje Arduino
digitalRead()
La función digitalRead permite leer un valor digital de un pin. Esto es especialmente útil cuando queremos que nuestro programa realice una determinada acción luego de recibir una orden. Esta orden puede ser indicada a través de un pulsador por ejemplo. También podría ser suministrada por un sensor u otro dispositivo que realice la activación.
La sintaxis es la siguiente:
digitalRead(pin);
Este función dará como resultado un valor HIGH o LOW. Es importante señalar que se si el pin no tiene nada conectado, esta función lee valores aleatorios de HIGH y LOW. En la tarjeta de desarrollo Arduino Uno, los pines análogos puedes ser usados como entradas digitales, no así en otras versiones como el Arduino Nano o el Pro Mini.
analogRead():La función analogRead es la usada para medir un valor analógico. Un valor analógico es cualquier número que nos provee un sensor u otro dispositivo que no sea un valor digital, es decir un 0 o un 1. Un sensor mide la variable deseada y genera una salida con un valor analógico, este es a su vez es tomado por el Arduino o tarjeta de desarrollo y usando un convertidor analógico-digital, pasa este valor un número que será el que manejaremos en nuestro programa. Esta función analogRead se usa en pines que tiene un convertidor analógico-digital interno, normalmente en las placas de Arduino están identificados con la letra A. Para el caso del Arduino Uno existen 6 pines de este tipo, estos van desde A0 al A5.
Dependiendo del número de bits que tenga el convertidor analógico-digital vamos a tener un cierto rango de valores. Por ejemplo para el caso de la tarjeta Arduino Uno, su convertidor es de 10 bits, por lo cual el rango de valores posibles iría desde 0 hasta 1023. Este rango es lo que se conoce como resolución
Ventajas de Arduino
Su bajo coste
Su precio, aunque varía según el modelo, es más económico en comparación con las demás plataformas de microcontroladores, pudiendo encontrar algunos modelos por debajo de los 15 €.
Compatibilidad multiplataforma
Su software de programación, a diferencia de otros modelos de microcontroladores, es compatible con Windows, Mac OS y Linux.
Entorno de programación sencillo y de código abierto
Su software de programación es muy sencillo de utilizar para principiantes y su código abierto permite experimentar a los usuarios más avanzados, pudiendo embarcarse en el proyecto que deseen.
Hardware abierto
Los planos de las placas tienen licencia de uso común, lo que significa que los usuarios experimentados puedan crear su propios módulos derivados de las placas.
HW Arduino
El HW de Arduino es básicamente una placa con un microcontrolador. Un microcontrolador (abreviado µC, UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida.
Este invento pronto se extendió a una comunidad más amplia y se empezó a desarrollar rápidamente para adaptarse a nuevas necesidades, adaptándose a otras aplicaciones como la impresión 3D, el Internet de la Cosas, los dispositivos wearables o a entornos integrados. Todas las placas Arduino son de hardware libre, lo que significa que todos los usuarios pueden usarla y adaptarla a sus propias necesidades. El software también es de código abierto, lo que hace que crezca y mejore gracias a la contribución de usuarios de todo el mundo.
Si unimos a todo esto la posibilidad de conectar cientos de sensores, shields o placas de expansión que complementan la funcionalidad del modelo de placa empleada, agregando circuitos y módulos de comunicación externos a la placa original, podremos conectar objetos a Internet, mover motores, e incluso interpretar reacciones químicas. Todo un mundo de posibilidades a tu alcance.
El lenguaje de Arduino tiene una rápida curva de aprendizaje, tanto que cualquiera puede empezar a programar: artistas, niños o cualquiera que no tenga conocimientos previos de electrónica o programación. Esta es la clave: la sencillez y la accesibilidad permiten que se pueda iniciar cualquier tipo de proyecto, y a la vez es adecuada para experimentos científicos.
Es importante nombrar nombrar las diferentes partes que conforman la placa
- Entradas y salidas: Existen varios modelos distintos de la placa arduino, pero todas tienen en común una cantidad definida de periféricos de entrada y salida, según la placa tendrá mas o menos puertos de entrada y salida, los puertos de entrada son los utilizados para ingresar datos que serán procesados por el microcontrolador y los de salida son por donde el microcontrolador entrega el resultado de la operación, el programador puede configurar cada puerto para indicarle al microcontrolador si ese puerto trabajar como uno de entrada o como uno de salida.
- Alimentación: La mayoría de las placas de arduino son alimentadas con 5 volt aunque algunas lo pueden hacer con tensiones de hasta 12 volt.
- Comunicación: Existen algunos puertos destinados a la comunicación de la placa con algún otro dispositivo, estos son los pines RX y TX, mediante estos puertos es que se establece la comunicación como por ejemplo con un display LCD o con el computador para mostrar datos en ella.
- Complementos: Como dijimos mas arriba, los complementos o Shields son de gran ayuda para los programadores ya que nos reducen el tiempo de desarrollo y nos entregan un producto solido que podemos utilizar fácilmente.
RAZONES PARA UTILIZAR ARDUINO
Existen miles de razones validas para utilizar Arduino , aquí solo nombraremos algunas, las mas relevantes.
- Es Open Source: Esto quiere decir que se puede acceder a toda parte del circuito y del código de las librerías, puedes modificarlas y no necesitas ninguna licencia para utilizarlo.
- Facil de programar: Arduino cuenta con una infinidad de librerías que nos resuelven la vida, gran porcentaje del código mas complejo que necesitamos como por ejemplo para establecer una comunicación serie o inicializar un sensor de temperatura ya están resueltos en librerías, solo tenemos que usarlas. Otra gran ventaja es que no se necesita ninguna tarjeta de programación como sucede en la mayoría de las placas de desarrollo, Arduino cuenta con un software conocido como bootloader que viene cargado en el microprocesador que se auto programa a si mismo y nos evita la necesidad de contar con una tarjeta programadora para programar el micro.
- Documentación: Al ser de Hardware y Software libre hay infinidad de información disponible dando vueltas por la red.
- Amplia variedad de placas: Arduino no es una única placa, es toda una familia de placas, cada una de ellas cuenta con diferencias y similitudes, según el proyecto que tengamos que hacer utilizamos una u otra.
- Costo: Podemos conseguir nuestra placa Arduino por menos de 14 dolares, es un precio muy económico comparado con otras placas que intentan cumplir los mismos requisitos. Obviamente existen diferentes modelos y alternativas, el costo puede varias pero no demasiado.
- Diversas aplicaciones: Podemos construir una infinidad de aplicaciones a bajo costo y con poco tiempo de desarrollo, si tenemos imaginación podemos hacer casi cualquier cosa
- Proyectos profesionales: Si la tarjeta de Arduino cuenta con el microcontrolador en un zócalo desmontable como por ejemplo el Arduino uno. Podemos utilizar la placa solo para programarlo y dado el caso de tener que hacer algo mas profesional, podemos sacar el micro de la placa y utilizarlo sin el boar, claro que tendríamos que cablear todas las entradas/salidas y las fuentes de alimentación junto con la circuiteria externa de nuestro proyecto.
DESVENTAJAS DE UTILIZAR ARDUINO
Ya vimos que es y para que sirve Arduino , ¿pero cuales son sus desventajas?. Si alguna ves intentaste hacer un desarrollo para la venta lo primero que consideras es gastar poco en los materiales para que no sea un objeto caro para los clientes, y es ahi donde esta el primer problema, el microcontrolador que utiliza Arduino es un atmega, que para la mayoría de las aplicaciones queda grande, por ejemplo si queremos hacer una alarma para la casa.. utilizar un microcontrolador como el que tiene Arduino significaría encarecer todo.. ya que en si el microcontrolador es caro comparado con otros mas acotados.
Si trabajaste en alguna empresa en el diseño con microcontroladores, lo mas probables es que tu jefe te diga. "quiero que hagas esto con este microprocesador por que lo consigo muy barato.." con lo cual en esas situaciones queda descartado el uso de Arduino .. definitivamente no es una opción.
CONCLUSION
Desde mi punto de vista Arduino es la mejor opción posible cuando lo que queremos desarrollar no esta destinado a la venta y no disponemos de mucho tiempo para desarrollarlo. En el caso de que lo que hagamos este pensado al consumo y comercialización sera mejor pensar en utilizar otros microcontroladores ya que tenemos que ponderar otros factores "costo, economía y demas" .
En el ámbito educativo ARduino es genial, permite entusiasmar a los estudiantes en el mundo de la programación y el diseño de hardware, aunque no explica en detalle el trasfondo de su arquitectura.
ANIMATE A DAR EL PRIMER PASO, APRENDE ROBOTICA CON ARDUINO
Si estas realmente interesado en aprender arduino desde cero, poder sacarle todo el jugo a esta plataforma genial y empezar a hacer proyectos super profesionales, te recomiendo uno de los mejores cursos que hice en mi vida, por muy poco recibiras un curso completo donde Jose Antonio Vacas (crack en la materia) explica todo paso a paso y hasta el mas minimo detalle.
12 horas de video explicativo que puedes seguir a tu ritmo y verlo cuantas veces quieras.
¿TE PARECE POCO?
Vas a contar con acceso a la plataforma de por vida!, puedes seguir el curso desde celulares y tablet y ademas de todo eso, todo el codigo que se genere en el curso va a estar disponible para que te lo descargues en cualquier momento.
Al acceder al curso mediante click en la siguiente imagen obtendras un importante descuento 🙂
BREVE DESCRIPCION DEL CURSO
Aprende a usar Arduino desde cero. Crea tus propios proyectos
¿Qué es Arduino? un placa electrónica open-source que permite crear prototipos y proyectos electrónicos muy fácilmente. ¡¡Hace unos años había que ser ingeniero para trabajar con estos sistemas!!
Hoy en día lo puedes hacer sin problema siguiendo este curso, donde aprenderás electrónica, programación y cómo hacer montajes con Arduino.
Empezarás desarrollando pequeños proyectos que podrás unir y crear uno más completo
No son necesarios conocimientos previos de electrónica ni de programación, aprenderemos todo en el curso, por medio de aplicaciones practicas.
A medida que avances en el curso verás como tus ideas se convierten en proyecto reales.
La naturaleza Open-Source de Arduino nos facilita que podamos trabajar en cualquier ordenador con Linux, Mac o Windows.
Hablaremos de simuladores donde puedes construir tus proyectos "virtualmente" pero si quieres hacer tus proyectos necesitarás conseguir componentes. Algunos los tendrás que comprar pero muchos de ellos los puedes conseguir reciclando equipos.
Aprenderemos sobre ...
- Los distintos modelos de placa de Arduino que existen
- Los tipos de sensores que podemos conectar a Arduino
- Los diferentes motores que nos permitirán dar movimiento a nuestros proyectos
- Cómo comunicar nuestra placa Arduino con otros componentes y con Internet
- Cómo ampliar la capacidad de Arduino con diferentes escudos (shields) y módulos
Cada semana se añaden nuevos vídeos y ejemplos
¿Para quién es este curso?
- Cualquiera que quiera aprender a montar proyectos con Arduino
- Quien quiera aprender a programar Arduino
- El que quiera aprender electrónica básica
- A partir de 12-14 años
REQUISITOS
- El único requisito es saber usar un ordenador conectado a internet a nivel básico
- Cualquier ordenador conectado a internet (se usa open software compatible con Linux, Mac y Windows)
- Puedes aprender sin necesidad de componentes, se enseña a usar un simulador
- Aprenderás más si vas consiguiendo componentes, muchos de ellos se pueden obtener de equipos reciclados
Arduino permite a los usuarios una manera simple para crear objetos interactivos que pueden tener entradas de interruptores y sensores, y controlar salidas físicas como luces, motores o actuadores. Debido a que el lenguaje está basado en frameworks bien utilizados, Arduino puede interactuar con otros programas en el ordenador como Flash o incluso con APIs web como Twitter. Esta plataforma puede tener tanto usos industriales como domésticos e incluso artísticos, pero se aplica sobretodo dentro del campo educativo por ser de código abierto, además de su sencillez de uso y su bajo coste, hay una gran cantidad de modelos de placas siendo la más utilizada la Uno, sobretodo en el mundo de la educación. Por eso ha sido diseñada de manera robusta para así soportar toda una serie de situaciones de uso con los estudiantes.
por lo tanto, la placa Arduino no es más que una PCB que implementa un determinado diseño de circuitería interna. De esta forma el usuario final no se debe preocupar por las conexiones eléctricas que necesita el microcontrolador para funcionar, y puede empezar directamente a desarrollar las diferentes aplicaciones electrónicas que necesite.
Cuando hablamos de "Arduino" deberíamos especificar el modelo concreto. Se han fabricado diferentes modelos de placas Arduino oficiales, cada una pensada con un propósito diferente y características variadas (como el tamaño físico, número de pines E/S, modelo del microcontrolador, etc). A pesar de las varias placas que existen todas pertenecen a la misma familia (microcontroladores AVR marca Atmel). Esto significa que comparten la mayoría de sus características de software, como arquitectura, librerías y documentación

A continuación les dejaremos este video explicativo sobre Arduino Uno