Los Arduino y en general los microcontroladores tienen puertos de entrada y salida y de comunicación. En Arduino podemos acceder a esos puertos a través de los pines.
- Pines digitales: http://www.arduino.cc/en/Tutorial/DigitalPins, pueden configurarse como entrada (para leer, sensores) o como salida (para escribir, actuadores)
- Pines analógicos de entrada: https://www.arduino.cc/en/Tutorial/AnalogInputPins, usan un conversor analógico/digital y sirven para leer sensores analógicos como sondas de temperatura.
- Pines analógicos de salida (PWM): https://www.arduino.cc/en/Tutorial/PWM, la mayoría de Arduino no tienen conversor digital/analógico y para tener salidas analógicas se usa la técnica PWM. No todos los pines digitales soportan PWM.
- Puertos de comunicación: USB, serie, I2C y SPI
Otro aspecto importante es la memoria, Arduino tiene tres tipos de memoria:
- SRAM: donde Arduino crea y manipula las variables cuando se ejecuta. Es un recurso limitado y debemos supervisar su uso para evitar agotarlo.
- EEPROM: memoria no volátil para mantener datos después de un reset o apagado. Las EEPROMs tienen un número limitado de lecturas/escrituras, tener en cuenta a la hora de usarla.
- Flash: Memoria de programa. Usualmente desde 1 Kb a 4 Mb (controladores de familias grandes). Donde se guarda el sketch.
Más información en: http://arduino.cc/en/Tutorial/Memory y https://aprendiendoarduino.wordpress.com/2015/03/29/memoria-flash-sram-y-eeprom/
Placa Arduino Uno a fondo:
Especificaciones detalladas de Arduino UNO: http://arduino.cc/en/Main/ArduinoBoardUno
Microcontroller & USB-to-serial converter | ATmega328P & Atmega16U2 |
Operating Voltage | 5V |
Input Voltage (recommended) | 7-12V |
Input Voltage (limits) | 6-20V |
Digital I/O Pins | 14 (of which 6 provide PWM output) |
Analog Input Pins | 6 |
DC Current per I/O Pin | 40 mA |
DC Current for 3.3V Pin | 50 mA |
Flash Memory | 32 KB (ATmega328) of which 0.5 KB used by bootloader |
SRAM | 2 KB (ATmega328) |
EEPROM | 1 KB (ATmega328) |
Clock Speed | 16 MHz |
Aspectos más destacados de Arduino UNO.
- No necesita de un cable FTDI para conectarse al MCU, en su lugar uso un MCU especialmente programado para trabajar como conversor de USB a serie.
- En la revisión 3 de HW nuevo pineado
- Alimentación: vía USB, batería o adaptador AC/DC a 5V, seleccionado automáticamente. Arduino puede trabajar entre 6 y 20V, pero es recomendado trabajar entre 7 y 12V por las características del regulador de tensión.
- Puerto Serie en los pines 0 y 1.
- Interrupciones externas en los pines 2 y 3.
- Built-in LED en el pin 13.
- Bus TWI o I2C en los pines A4 y A5 etiquetados como SDA y SCL
- El MCU ATmega328P tiene un bootloader precargado que permite cargar en la memoria flash el nuevo programa o sketch sin necesidad de un HW externo.
- Arduino Uno dispone de un fusible autoreseteable que protege el puerto USB de nuestro ordenador de cortocircuitos y sobrecorrientes. Si se detectan más de 500mA salta la protección.
En este pdf podemos ver el esquema de un Arduino UNO, muy importante conocerlo para evitar hacer maniobras que lo dañen: http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf
Documentación del Microcontrolador muy importante cuando necesitemos hacer operaciones avanzadas con Arduino: http://www.atmel.com/Images/doc8161.pdf. Por ejemplo: página 423 con un resumen de todos los registros o página 18 con detalle de cómo se distribuye la memoria SRAM o página 76 con detalle de los puertos digitales I/O y página 79 donde da el código para definir un pines a high y low y también como input pullup.
Están disponible los esquemas y diseño en formato Eagle http://arduino.cc/en/uploads/Main/arduino_Uno_Rev3-02-TH.zip. Para ver los esquemas podemos usar Eagle, se trata de un programa de diseño de diagramas y PCBs con autoenrutador:
- http://www.cadsoftusa.com/eagle-pcb-design-software/product-overview/
- http://www.cadsoftusa.com/download-eagle/freeware/
Ejercicio: Ver esquemático y placa de Arduino UNO con eagle
Opción open source: http://www.kicad-pcb.org/ (recomendada)
También es importante conocer cómo están distribuidos los pines del MCU en Arduino:
- Pin Mapping: http://arduino.cc/en/Hacking/PinMapping168
- http://www.umsats.ca/wp-content/uploads/2013/02/Arduino_uno_Pinout.pdf
- http://pighixxx.com/atmega328v3_0.pdf
- http://pighixxx.com/unov3pdf.pdf
Antes de empezar las prácticas y trabajar con el Arduino UNO, veamos 10 formas de destruir un Arduino, para saber que NO debemos hacer.
¡¡¡IMPORTANTE!!!: http://www.ruggedcircuits.com/10-ways-to-destroy-an-arduino/
La traducción: http://www.trastejant.es/blog/?p=192
- Ruggeduino-SE «Special Edition»:
- Rugged MEGA:
- Proyecto con ruggedduino: http://www.catalinacomputing.com/docs/Projects/HomeAutomationProject/HomeAutomationProject
Videos de como destruir un Arduino:
- https://www.youtube.com/watch?v=WmcMrKELkcs&feature=youtu.be
- https://www.youtube.com/watch?v=P_fb6njcaoU
También es posible conseguir un “Arduino” gratis: https://aprendiendoarduino.wordpress.com/2015/02/25/como-conseguir-un-arduino-gratis/
Pingback: Día 3. Hardware Arduino y Simuladores – Aprendiendo Arduino
Pingback: Hardware Arduino a fondo - Microcontroladores y Electrónica