Vous êtes sur la page 1sur 38

Prctica 2.

Metodologa de diseo con


Arduino
Manuel Jimnez Buenda
Jos Alfonso Vera Repullo
Departamento de Tecnologa Electrnica
Curso 2013/2014
Metodologa de diseo
con Arduino

Material necesario
ARDUINO UNO REV.3. Precio aprox.: 20.00
Cable USB tipo impresora.
Arduino Sidekick Basic Kit (KIT2243P). Precio aprox: 20.00

Electrnica Industrial 2
Metodologa de diseo
con Arduino

Microcontroladores
Un microcontrolador (C) es un circuito integrado programable, capaz de ejecutar las rdenes grabadas en su
memoria, y que dispone de los tres elementos bsicos de una microcomputadora: un procesador, memoria e
interfaces.
Existe una amplia variedad de microcontroladores con muy diferentes prestaciones (velocidad de reloj,
consumo de energa, tamao de los datos, interfaces, etc.)

Los microcontroladores se utilizan para reducir el tamao, costo econmico y el consumo de energa de un
sistema en particular. Por eso el tamao de la unidad central de procesamiento, la cantidad de memoria y los
perifricos incluidos dependern de la aplicacin.

Ventajas de los microcontroladores :

Bajo coste.
Versatilidad.
Desarrollo ms rpido.
Facilidad de programacin
Tamao muy reducido.

Electrnica Industrial 3
Metodologa de diseo
con Arduino

Conceptos generales

Electrnica Industrial 4
Metodologa de diseo
con Arduino

Aplicaciones
Los microcontroladores se utilizan en un amplio rango de aplicaciones. Algunas de estas pueden ser:

Electrodomsticos => Panel de control de un horno microondas.


Equipos de sonido => Reproductor musical y/o vdeo (MP3 y/o MP4).
Vehculos (Automviles, camiones y aviones) => Control de velocidad de crucero, antibloqueo de frenos,
control de encendido, entrada automtica , control ambiental y flujo de aire y de combustible, etc...
Juguetes => Sistema de control de un perro robot.
Equipos de oficina => Control de una mquina de Fax.

Los microcontroladores suponen ms de un 50% de los Circuitos Integrados existentes hoy en da. Mientras se
pueden tener uno o dos microprocesadores de propsito general en casa (por ejemplo en los ordenadores
personales), se pueden encontrar una o dos docenas de microcontroladores distribuidos entre los diferentes
dispositivos existentes en un hogar cualquiera. Los C se pueden encontrar en casi cualquier dispositivo
electrnico como automviles, lavadoras, frigorficos, hornos microondas, telfonos, mandos inalmbricos,
teclados, juguetes, etc.

Electrnica Industrial 5
Metodologa de diseo
con Arduino

Fabricantes
Empresa 8 bits 16 bits 32 bits

Atmel X X

Freescale X X X

Holtek X

Intel X X X

National Semiconductor X X X

Microchip X X X

NXP Semiconductor X X X

Renesa X X X

STMicroelectronics X

Texas Instruments X X

Zilog X

Electrnica Industrial 6
Metodologa de diseo
con Arduino

Conexiones bsicas de un C

Fuente de alimentacin de 5 V DC

Circuito de RESET

Oscilador

Electrnica Industrial Fuente: http://www.mikroe.com/ 7


Metodologa de diseo
con Arduino

Arduino

Electrnica Industrial 8
Metodologa de diseo
con Arduino

Conceptos generales
Arduino
Arduino es una plataforma de diseo de objetos interactivos (Physical Computing o Physical
Interaction Design) que integra una tarjeta microcontroladora open-source, un entorno de
desarrollo de software basado en el lenguaje de programacin Processing y una amplia
comunidad de usuarios.

En resumen, Arduino se utiliza para desarrollar objetos y entornos interactivos (internet de las
cosas) que tienen que ver con la creacin de obras de arte, diseo de mecatrnica (para
consumo e industrial) y proyectos DIY (Do It Yourself) para aficionados.

Los objetos pueden ser autnomos (stand-alone) o pueden comunicarse con cualquier software
a travs de puerto serie (p.e. Flash, Processing, MaxMSP,.), bien por cable o por Xbee, ZigBit,
etc.

Las tarjetas microcontroladoras pueden ser construidas por el usuario final o pueden comprarse
ya fabricadas.

El entorno de desarrollo (IDE, Integrated Development Environment) puede ser descargado


libremente desde arduino.cc

Electrnica Industrial 9
Metodologa de diseo
con Arduino

Conceptos generales
Qu lo diferencia de otros entornos?
Es un entorno multiplataforma. Puede correr sobre Windows, Macintosh y Linux.

El IDE de Arduino est basado en Processing, un entorno de desarrollo fcil de utilizar por
artistas y diseadores.

Las tarjetas C Arduino se pueden programar va un cable USB, no un puerto serie.

Tanto el hardware como el software es open-source. El usuario puede descargar los diagramas
de los circuitos, comprar todos los componentes y fabricrselo el mismo, sin tener que pagar
nada a los fabricantes de Arduino.

El hardware es barato. Una tarjeta Arduino UNO cuesta unos 20 . Y reemplazar un chip daado
en la tarjeta es fcil y barato (no cuesta ms de 5).

Hay una comunidad de usuarios muy activa con la que poder colaborar y recibir ayuda.

Electrnica Industrial 10
Metodologa de diseo
con Arduino

Placas Arduino (I)


Placas oficiales de Arduino
Arduino Leonardo (2012) Arduino Mega 2560 (XXXX) Arduino Uno (XXXX) Arduino Mega (XXXX)

Arduino Duemilanove (XXXX) Arduino Diecimila(XXXX) Arduino Bluetooth (XXXX) Arduino NG Rev.C (XXXX)

Arduino NG (XXXX) Lily PAD Arduino (XXXX) Arduino Nano (XXXX) Arduino Mini (XXXX)

Electrnica Industrial Consultar para una lista completa http://en.wikipedia.org/wiki/List_of_Arduino_compatibles 11


Metodologa de diseo
con Arduino

Placas Arduino (II)


Shields: Arquitectura modular inteligente

Las Shields son placas que a modo de


accesorio se pueden conectar a una placa
Arduino o compatible.

Para ello los pines de sus puertos guardan


una disposicin de compatibilidad.

Existe una gran variedad de shields con


diversa funcionalidad: control de motores,
comunicaciones, prototipado rpido, etc.

Ethernet Shield.

GSM Shield.

Arduino.
Electrnica Industrial Una lista completa Shields se puede encontrar en: http://shieldlist.org/ 12
Metodologa de diseo
con Arduino

Placa Arduino Uno (I)


Caractersticas principales del Arduino Uno Rev. 3

ATmega 328P-PU

32 KB de memoria de programa FLASH

2 KB de RAM

16 MHz de velocidad de reloj

Entradas / Salidas
14 pines de entradas/salidas
6 pines de entradas analgicas (tambin salidas)
Total: 20 entradas/salidas

Completamente autnomo (stand-alone) una vez


programado.

Electrnica Industrial Fuente: http://arduino.cc/en/Main/ArduinoBoardUno 13


Metodologa de diseo
con Arduino

Placa Arduino Uno (II)


Alimentacin y POWER

Puerto USB
Alimentacin 5 V

Jack
Alimentacin externa:
Recomndado: 7-12 V
Lmites: 6-20 V

3.3V
3,3 voltios
5V
5 voltios
GND
0 voltios
Vin
Alimentacin externa de entrada
sin regular

Electrnica Industrial Fuente: http://arduino.cc/en/Main/ArduinoBoardUno 14


Metodologa de diseo
con Arduino

Placa Arduino Uno (III)


Entradas / Salidas
AREF
Voltaje de referencia para entradas analgicas

14 pines de E/S digitales.


2,4,7,8,12,13 = puertos digitales convencionales
3,5,6,9,10,11 = puertos PWM

Puertos analgicos.
A4, A5 = son utilizadas para conexiones I2C/TWI
A0-A5 = pueden funcionar como puertos
digitales (14-19)

Electrnica Industrial Fuente: http://arduino.cc/en/Main/ArduinoBoardUno 15


Metodologa de diseo
con Arduino

Placa Arduino Uno (IV)


Comunicaciones

Puerto serie RX/TX.

ICSP. (In-Circuit Serial Programming)


Para cargar el gestor de arranque (bootloader) o
programas/firmware.

Puerto USB y FTDI chipset

Electrnica Industrial Fuente: http://arduino.cc/en/Main/ArduinoBoardUno 16


Metodologa de diseo
con Arduino

Placa Arduino Uno (V)


Otras caractersticas
Botn de RESET

LEDs de test, TX y RX

LED de encendido

Reloj a 16/20 MHz

Microcontrolador
Atmega328

Electrnica Industrial Fuente: http://arduino.cc/en/Main/ArduinoBoardUno 17


Metodologa de diseo
con Arduino

Entradas/salidas de Arduino (I)


Mapeado entre ATmega168/328 y Arduino

Electrnica Industrial Fuente: http://arduino.cc/en/Hacking/PinMapping168


18
Metodologa de diseo
con Arduino

Entradas/salidas de Arduino (II)


Puertos de entrada/salida digitales
Trabajan con niveles de tensin TTL:
0 - 0,8 V = 0
2- 5 V = 1

No se pueden conectar directamente a dispositivos que consuman potencia (Imax= 40 mA).

Puertos analgicos
Convertidor A/D de 10 bits: 0 a 1023.
La tensin de referencia es 5 V.
0V=0
2,5 V = 215
5 V = 1023

Electrnica Industrial 19
Metodologa de diseo
con Arduino

Entradas/salidas de Arduino (III)


Puertos PWM
Es un puerto hbrido, ya que es un
puerto digital que mediante la
modulacin de 0 y 1 consigue
expresar una idea de potencia.

Electrnica Industrial 20
Metodologa de diseo
con Arduino

Entradas/salidas de Arduino (IV)


Cmo se trabaja en la prctica?
Asignamos componentes a los puertos disponibles (digitales, analgicos y PWM).

Realizamos lecturas y escrituras con el objeto de obtener un dato de un sensor o contralar


un determinado actuador.

Procesamos los datos en el C.

Veamos algunos ejemplos de componentes que podemos utilizar

Electrnica Industrial 21
Metodologa de diseo
con Arduino

Entradas/salidas de Arduino (V)


Algunos ejemplos de sensores y actuadores para Arduino

Sensor de Medidor
Brjula Sensor de presin
temperatura ultrasnico

Unidad GSM/GPRS
GPS Pantalla tctil Controlador de motor

Electrnica Industrial 22
Metodologa de diseo
con Arduino

Dnde comprar un Arduino?


Tiendas

Espaolas Extranjeras
www.cooking-hacks.com www.parallax.com
www.bricogeek.com www.sparkfun.com
www.ardumania.es www.makershed.com
www.electan.com www.liquidware.com
Rayte www.ladyada.net
www.adafruit.com

Se agradece cualquier informacin para tener actualizada esta lista

Electrnica Industrial 23
Metodologa de diseo
con Arduino

El entorno de desarrollo Arduino (I)


Cmo podemos empezar?
Descargar la ltima versin del IDE (1.0.5).
http://arduino.cc/en/Main/Software

Sigue las instrucciones de http://arduino.cc/es/Guide/HomePage para la instalacin en


Windows (recomendable fichero instalable), Mac o Linux (descomprimir, instalar el driver,
abrir el IDE y seleccionar el puerto correcto (Men HerramientasPuerto Serial)).
Conecta la placa Arduino a tu ordenador usando el cable USB. el LED verde indicador de la
alimentacin (nombrado como ON en la placa) debera quedar encendido a partir de ese
momento.
Haz doble clic sobre la aplicacin Arduino o el acceso directo.
Abre el programa de ejemplo para hacer parpadear un LED ("LED blink"): Abrir > Basics >
Blink (pin 13 del microcontrolador).
Compilamos el programa de ejemplo: Verificar
Cargamos el cdigo compilado en Arduino: Cargar

Si todo funciona correctamente el LED de TEST debera parpadear


Prueba a cambiar los tiempos de retardo y comprueba que la frecuencia de parpadeo vara

Electrnica Industrial 24
Metodologa de diseo
con Arduino

El entorno de desarrollo Arduino (II)


Versin 1.0.1
Men

rea de
Programacin

rea de DEBUG
Electrnica Industrial 25
Metodologa de diseo
con Arduino

El entorno de desarrollo Arduino (III)


Versin 1.0.1

Verificar Cargar Nuevo Abrir Guardar Monitor Serial


Chequea Compila y Crea nuevos Abre sketches Graba Abre el monitor serie
errores carga sketches existentes Sketches

Los programas desarrollados con Arduino se conocen como sketches.

Los sketches se escriben con un editor de texto y son guardados con la extensin .ino

Electrnica Industrial 26
Metodologa de diseo
con Arduino

El lenguaje de programacin (I)


Conceptos generales.

Se basa en C estndar.

Para el control de los puertos del microcontrolador se utilizan las funciones predefinidas:

pinMode(<puerto>,<modo>) // configura un puerto digital para leer o escribir datos

digitalWrite(<puerto>,0 o 1) // enva un 0 o 1 al puerto digital

digitalRead(<puerto>) // devuelve un 0 o 1 del puerto

analogRead(<puerto>) // devuelve un valor (0-1023) del puerto analgico

analogWrite(<puerto>,<valor>) //escribe en un puerto PWM un valor de 0 a 255

Referencia funciones sintaxis:


http://arduino.cc/en/Reference/HomePage
Electrnica Industrial 27
Metodologa de diseo
con Arduino

El lenguaje de programacin (II)


Estructura de un programa.

Se tienen que programar obligatoriamente dos funciones:

void setup() // se ejecuta una sola vez, cuando se inicia el sketch


{

void loop() // se ejecuta de modo continuo indefinidamente


{

Electrnica Industrial 28
Metodologa de diseo
con Arduino

Ejemplo: encendido/apagado LED (I)


Cdigo fuente.
LED L (en placa conectado a pin 13)
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.


*/

// Pin 13 has an LED connected on most Arduino boards.


// give it a name:
int led = 13;

// the setup routine runs once when you press reset:


void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:


void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Electrnica Industrial 29
Metodologa de diseo
con Arduino

Ejemplo: encendido/apagado LED (II)


Esquemtico.

Resistor
330 ohm
(orange,
orange, brown)

Electrnica Industrial 30
Metodologa de diseo
con Arduino

Ejemplo: encendido/apagado LED (III)


Esquemtico.

Resistor
330 ohm
(orange,
orange, brown)

Electrnica Industrial 31
Metodologa de diseo
con Arduino

Ejemplo: encendido/apagado LED (IV)


Montaje en protoboard.

Electrnica Industrial 32
Metodologa de diseo
con Arduino

Ejemplo: encendido/apagado LED (V)


Esquemtico.

Medir
Polmetro:
I en LED
V en salida (Pin 13)

Resistor
330 ohm
(orange,
orange, brown)

Electrnica Industrial 33
Metodologa de diseo
con Arduino

Fritzing
Esquemtico, PCB,
protoboard
Multiplataforma
http://fritzing.org/download/
http://sourceforge.net/projects/fritzing.mirror/?source=directory

Virtual breadboard
Slo protoboard
Windows (Linux/OSX slo VBB
express with Mono runtime)
http://www.virtualbreadboard.com/
Electrnica Industrial 34
Metodologa de diseo
con Arduino

Ej.: on/off (fade) progresivo de un LED (I)


Esquemtico y cdigo fuente.

Pin 9

Habr que utilizar:


una salida PWM (3,5,6,9,20 o 11)
analogWrite(<pin>,<valor>)

Electrnica Industrial 35
Metodologa de diseo
con Arduino

Ej.: on/off (fade) progresivo de un LED (II)


Esquemtico y cdigo fuente. /*
Fade

This example shows how to fade an LED on pin 9


using the analogWrite() function.

This example code is in the public domain.


*/

int led = 9; // the pin that the LED is attached to


int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
Pin 9
// the setup routine runs once when you press reset:
void setup() {
// declare pin 9 to be an output:
pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:


void loop() {
// set the brightness of pin 9:
analogWrite(led, brightness);

// change the brightness for next time through the loop:


brightness = brightness + fadeAmount;
Habr que utilizar:
// reverse the direction of the fading at the ends of the fade:
una salida PWM (3,5,6,9,20 o 11) if (brightness == 0 || brightness == 255) {
analogWrite(<pin>,<valor>) fadeAmount = -fadeAmount ;
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
Electrnica Industrial } 36
Metodologa de diseo
con Arduino

Ej.: on/off (fade) progresivo de un LED (III)


Esquemtico y cdigo fuente.

Modificar cdigo para menor


velocidad
Medir
Pin 9 Polmetro:
V en salida (Pin 9)
Osciloscopio:
V en salida (Pin 9)

Habr que utilizar:


una salida PWM (3,5,6,9,20 o 11)
analogWrite(<pin>,<valor>)

Electrnica Industrial 37

Vous aimerez peut-être aussi