Arduino es una plataforma diseñada con la intención de que tanto hobbistas como estudiantes y profesionales puedan crear proyectos interactivos, que puedan leer datos de diferentes sensores e interruptores para poder actuar y controlar motores, luces y otros dispositivos, otorgando una facilidad en el uso de la electrónica.
La plataforma consta de dos partes Hardware y Software.
El Hardware, desarrollado con la idea de hardware libre, es una placa con un microcontrolador Atmel AVR de 8bits(Atmega168, Atmega328,Atmega1280,Atmega8) o un ARM de 32 bits. Actualmente disponen de conectividad USB, y presentan 6 entradas analógicas y 14 pines digital de I/0 los que permiten conectar con diferentes dispositivos como así también placas de expansión(comúnmente conocidas como shields).
Por el lado del software, se encuentra el IDE, con el cual desarrollamos el programa que correrá en el Arduino y aporta una comunicación básica a través de una terminal(Monitor), este entorno de desarrollo corre en una pc con Linux, Windows u Osx. Y además tenemos el bootloader, que es un pequeño programa que se encuentra cargado en el microcontrolador y le otorga al microcontrolador la posibilidad de comunicarse con la pc para poder programarlo, sin necesidad de un programador adicional.
La programación la hacemos en lenguaje C o C++. Aveces se habla de lenguaje Arduino, pero esto no es correcto, suele decirse asi ya que el proyecto integra muchas librerías y funciones, y la estructura de como empezar un programa(los programas para arduino se los llama sketch), es diferente a lo que comúnmente hacemos en C, no empezamos con la declaración de la función main(), sino que se declaran dos funciones setup() y loop(), la función main() existe , y esta en uno de los archivos que integran el entorno de desarrollo, esta llama a las funciones que nosotros creamos, setup() y loop(). Nos da una sensación de estar trabajando a un nivel mas alto de programación, por lo general no tenemos que manipular los registros del microcontrolador.
Hardware Existen desarrolladas, varios tipos de placas Arduino que varían en tamaño, microcontroladores utilizados, conectividad, dimensiones, etc. Algunas placas ya no se producen mas, ya que fueron reemplazadas por otras con mejores características. Mejoras que muchas veces provienen de la propia comunidad al ser Open Hardware.
Arduino Serial - Wikimedia
La versión Serial, se vende principalmente como un kit para armar o solo el PCB. Es una placa básica que tiene como interfase un puerto RS232 para comunicarse y/o conectar a una PC para su programación. Es sencilla para ensamblar en el hogar, especial para aprender el soldado de componentes y montaje de una placa electrónica. Utiliza componentes que fácilmente se encuentran en una casa de electrónica y no cuenta con elementos de montaje superficial. Existe además una versión de una sola cara, especialmente diseñada para aquellos que no pueden adquirir la versión original, y pretenden construir su propia PCB.
Arduino USB Hay varias versiones de Arduino con conexión USB, algunas se venden como kit para ensamblar y otras ya están listas para usar. La conexión USB no es nativa, sino que se realiza una conversión USB-Serial, hay dos tipos las que usan un integrado FTDI232 y las que usan un Atmega8U2. Algunas placas de esta categoría son la Arduino Uno, Duemilanove, Diecimila, NG.
Arduino Uno
Esta es la ultima versión de las placas básicas con conexión USB. Es muy similar a la Duemilanove, pero para la conversión USB-a-serial usa un ATMega16U2(se incorpora en la R3, reemplazando al Atmega8U2 que se encontraba en las R1 y R2), esta es la característica principal respecto a todas las otras placas USB, y cuenta con un mejor etiquetado de los pines, lo que hace mas fácil su identificación. Esta basada en el Atmega328.
Arduino Mega La placa hermana mayor de la UNO, es mas potente, con mayor cantidad de pines, tanto digitales, PWM como analógicos. La Arduino Mega 2560 fue lanzada junto con la UNO, y tiene un micro Atmega2560 y para la conectividad USB un ATmega16U2, la primer versión tenia un Atmega1280 y un integrado FTDI232 para la conversión USB-Serial. Posee 54 pines digitales, de los cuales 15 pueden ser usados como salidas PWM, 16 pines analógicos y 4 UARTs. A su vez existe una versión denominada Arduino Mega ADK, basada en la Mega 2560 pero que incorpora una interfase de host USB, basada en el IC MAX3421, que le permite conectarse con teléfonos Android.
Arduino Due
Esta basada en el microcontrolador Atmel SAM3X8E ARM Cortex-M3. Es la primer placa Arduino en incorporar un microcontrolador ARM de 32 bits. Tiene una gran capacidad de pines, 54 pines digitales, de los cuales 12 se pueden usar como salidas PWM, 12 pines analógicos, 4 UARTs, posee capacidad para realizar una conexión USB OTG, conector Jtag, y muchas otras características. Un detalla importante es que esta placa trabaja solamente con 3.3V, a diferencia de las otras placas que operan a 5V. Hay que tener presente que tensiones de 5V en los pines de I/O pueden dañar la placa.
Tutoriales Arduino
HC-SR04 Como medir distancias por Ultrasonido
Arduino y Display LCD 16x2