67
Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

Embed Size (px)

Citation preview

Page 1: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

1

Introducción a la Plataforma ARDUINO

Instrumentación Avanzada

Facultad de Ingeniería

Universidad Nacionalde Mar del Plata

Ing. Jorge Luis Strack

Page 2: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

2

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 3: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

3

Instrumentación Avanzada¿En qué consiste ARDUINO?

“Arduino es una plataforma de hardware y software libre fácil de usar, dirigido a cualquier persona que realiza proyectos interactivos”

Esta plataforma consta de una placa con un microcontrolador que permite conectar sensores y actuadores mediante entradas y salidas respectivamente, las cuales pueden ser digitales o analógicas.

Con Arduino se pueden desarrollar proyectos interactivos autónomos o con capacidad de interactuar con otros dispositivos tales como una computadora, a través de diversos protocolos de comunicación con capas físicas cableadas o inalámbricas.

Arduino se ideó como una herramienta para crear objetos interactivos sin la intervención de un especialista poniendo en las manos de cualquier persona con conocimientos técnicos mínimos la capacidad de experimentar con la electrónica de una forma sencilla y práctica.

http://arduino.cc/

Page 4: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

4

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 5: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

5

Instrumentación Avanzada¿Cómo nació ARDUINO?

“Arduino surgió en el año 2005 como un proyecto para estudiantes en el Instituto IVREA, en Ivrea (Italia). Uno de los fundadores de Arduino, Massimo Banzi daba clases allí. Su objetivo era reemplazar una placa de 100 dólares que usaban los estudiantes por una que no costara más de 30 euros. El nombre proviene del “Bar del Rey Arduino” en el cual Massimo pasaba algunas horas.

En su creación, contribuyó el estudiante colombiano Hernando Barragán, quien desarrolló la tarjeta electrónica Wiring, el lenguaje de programación y la plataforma de desarrollo.

Concluida dicha plataforma, varios investigadores trabajaron para hacerlo más ligero, más económico y disponible para la comunidad de código abierto (hardware y software abierto).

http://arduino.cc/http://es.wikipedia.org/wiki/Arduino

Page 6: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

6

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 9: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

9

Instrumentación AvanzadaHardware: Familia de placas ARDUINO

Nombre Procesador Tensión de operación / Tensión de entrada Velocidad CPU IN/OUT

Análogas

Digital EEPROM SRAM FlashUSB UART

IO/PWM [KB] [KB] [KB]

Uno ATmega328 5 V/7-12 V 16 Mhz 6/0 14/6 1 2 32 Regular 1

Due AT91SAM3X8E 3.3 V/7-12 V 84 Mhz 12/2 54/12 - 96 512 2 Micro 4

Leonardo ATmega32u4 5 V/7-12 V 16 Mhz 12/0 20/7 1 2.5 32 Micro 1

Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0 54/15 4 8 256 Regular 4

Mega ADK ATmega2560 5 V/7-12 V 16 Mhz 16/0 54/15 4 8 256 Regular 4

Micro ATmega32u4 5 V/7-12 V 16 Mhz 12/0 20/7 1 2.5 32 Micro 1

Mini ATmega328 5 V/7-9 V 16 Mhz 8/0 14/6 1 2 32 - -

NanoATmega168

5 V/7-9 V 16 Mhz 8/0 14/60.512 1 16

Mini-B 1ATmega328 1 2 32

Ethernet ATmega328 5 V/7-12 V 16 Mhz 6/0 14/4 1 2 32 Regular -

Esplora ATmega32u4 5 V/7-12 V 16 Mhz - - 1 2.5 32 Micro -

ArduinoBT ATmega328 5 V/2.5-12 V 16 Mhz 6/0 14/6 1 2 32 - 1

Fio ATmega328P 3.3 V/3.7-7 V 8 Mhz 8/0 14/6 1 2 32 Mini 1

Pro (168) ATmega168 3.3 V/3.35-12 V 8 Mhz 6/0 14/6 0.512 1 16 - 1

Pro (328) ATmega328 5 V/5-12 V 16 Mhz 6/0 14/6 1 2 32 - 1

Pro Mini ATmega1683.3 V/3.35-12 V 8 Mhz

6/0 14/6 0.512 1 16 - 15 V/5-12 V 16Mhz

LilyPadATmega168V

2.7-5.5 V/2.7-5.5 V 8 Mhz 6/0 14/6 0.512 1 16 - -ATmega328V

LilyPad USB ATmega32u4 3.3 V/3.8-5V 8 Mhz 4/0 9/4 1 2.5 32 Micro -

LilyPad Simple ATmega328 2.7-5.5 V/2.7-5.5 V 8 Mhz 4/0 9/4 1 2 32 - -

LilyPad SimpleSnap ATmega328 2.7-5.5 V/2.7-5.5 V 8 Mhz 4/0 9/4 1 2 32 - -

http://arduino.cc/

Page 10: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

10

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 12: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

12

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 13: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

13

E

Instrumentación AvanzadaDescripción de la placa ARDUINO UNO

Circuito Esquemáticohttp://arduino.cc/

Ent

rada

s A

naló

gica

s A

0-A

5

GN

D

V

out +

5V (

300

mA

máx

.)

Vin

+7-

12V

R

eset

T

ensi

ón d

e re

f. I/O

Vou

t +3.

3V (

50 m

A m

áx)

P

in r

eser

vado

p/fu

turo

Ent

rada

s/S

alid

as

Dig

itale

s 0-

13

Com

unic

ació

n

Ser

ial (

Rx

– T

x)

Com

unic

ació

n

ICS

P

GN

D

Tens

ión

ref.

An.

I2C

– S

DA

- S

CL

Programación

ICSP

LED Pin 13

Jack alimentación externa +7-12V

LED Tx - Rx

Conector USBTipo B hembra

Botón de RESET

LED de encendido

Microcontrolador

ATmega 328

Page 14: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

14

E

Instrumentación AvanzadaDescripción de la placa ARDUINO UNO

http://arduino.cc/en/pmwiki.php?n=Tutorial/Memory

La placa cuenta con tres tipos de memoria:

Flash: en ella se almacenan los programas conocidos como sketchs.

SRAM: (Memoria Estática de Acceso Aleatorio), allí se crean y manipulan variables durante la ejecución del sketch.

EEPROM: memoria en la que se pueden almacenar datos a largo plazo.

Las memorias Flash y EEPROM son no volátiles, es decir, la información no se pierde o volatiliza con la falta de energía. Por el contrario, la memoria SRAM es volátil, es decir, sus datos se borran al desenergizar la placa.

La placa ARDUINO UNO tiene las siguientes capacidades de memoria:

Flash: 32K bytes

SRAM: 2K bytes

EEPROM: 1K byte

Para requerimientos mayores de memoria, por ejemplo, para guardar registros de mediciones, existen SHIELDs o Tarjetas de Expansión que permiten conectar memorias SD y micro SD a la placa Arduino y, leer y escribir datos en ellas a través de librerías existentes en el Entorno de programación de Arduino.

Page 15: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

15

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 16: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

16

Instrumentación AvanzadaSoftware: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Entornos de programación gráfica autónomos (La placa ejecuta el programa sin una PC)

GNU• Miniblock• Ardublock• Amici• Mind +

Comercial• ModKit• VirtualBreadBoard• VBB Jarvis

Entornos de monitorización esclavos (La placa interactúa con una PC)

GNU• Etoys (Squeak)• S4A (Scratch)• FireFly• Pure Data• MyOpenLab

Comercial• LabVIEW• FireFly

http://arduino.cc/Herramientas Gráficas de Programación para Arduino – José Manuel Ruiz Gutiérrez – Marzo 2012.

Page 17: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

17

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 18: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

18

Instrumentación AvanzadaIDE (Entorno de Desarrollo Integrado)

El IDE de Arduino está creado en Java y consta de un editor de texto que permite escribir, verificar, compilar y cargar programas en un lenguaje propio basado en C/C++ a todas las placas de la familia Arduino. Estos programas se conocen como sketchs o bocetos y tiene la extensión .ino (en la versión 1.0 era .pde).

El programa se descarga gratuitamente del sitio oficial: http://arduino.cc/en/Main/Software

Se descomprime la carpeta, se busca el archivo “arduino.exe” y se crea un acceso directo.

Cuando se conecta por primera vez una placa Arduino, se instalan los drivers que están situados en la carpeta: \arduino-1.0.5-windows\arduino-1.0.5\drivers\

Una vez cargado el sketch en la memoria flash de la placa Arduino, el mismo se ejecutará siempre que la placa esté energizada a través del puerto USB o a través de alimentación externa en la ficha JACK o en el pin Vin.

IDE Arduino

Page 19: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

19

Instrumentación AvanzadaIDE (Entorno de Desarrollo Integrado)

Estructura

setup()Ejecución inicial para iniciación de variables, librerías, estado de pines.

loop()Ciclo principal del sketch que se ejecuta indefinidamente.

Estructuras de control

if while breakIf…else do while continuefor switch case return

Sintaxis

; (fin de comando o estructura de control){} (los comandos dentro de ellas pertenecen a la misma estructura de control)// (comentarios de una sola línea)/**/ (comentarios multilíneas)# define (definición de precompilador)# include (inclusión de código externo como librerías)

Operadores Aritméticos

= (operador de asignación)+ (suma)- (resta)* (multiplicación)/ (división)% (módulo)

Page 20: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

20

Instrumentación AvanzadaIDE (Entorno de Desarrollo Integrado)

Operadores de comparación

== (igual que)!= (distinto que)< (menor que)> (mayor que)<= (menor o igual que)>= (mayor o igual que)

Operadores booleanos

&& (and)|| (or)! (not)

Operadores compuestos

++ (incremento)-- (decremento)+= (suma compuesta)-= (resta compuesta)*= (multiplicación compuesta)/= (división compuesta)&= ( and compuesto a nivel de bits)|= (or compuesto a nivel de bits)

Operadores de acceso a punteros

& (acceso a memoria)* (direccionamiento)

Operadores a nivel de bits

& (and)| (or)^ (xor)~ (not)<< (desp. de bits a la izquierda)>> (desp. de bits a la derecha)

Constantes

HIGH, LOW (alto, bajo)INPUT, OUTPUT (entrada, salida)True, Falseconstantes enterasconstantes punto flotante

Tipos de variables

boolean (true o false)char – unsigned char (un solo carácter)String (cadena de caraceres)byte (1byte: enteros de -128 a 127)int – unsigned int (2 bytes: enteros de -32768 a 32767)long – unsigned long (enteros de 4 bytes)word (entero de 16 bits sin signo)float, double (coma flotante 4 bytes)array (matriz de datos del mismo tipo)

Page 21: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

21

Instrumentación AvanzadaIDE (Entorno de Desarrollo Integrado)

Conversión

char()byte()int()word()long()float()

Funciones

Entradas/salidas digitales:

pinMode() (INPUT ó OUTPUT)digitalWrite() (HIGH ó LOW)digitalRead() (HIGH ó LOW)

Entradas/salidas analógicas:

analogReference()AnalogRead()AnalogWrite()

Entradas/salidas avanzadas

tone()notone()shiftOut()pulseIn()

Funciones

Cálculo

min(), max()abs()constrain()map()pow()sqrt()

Trigonometría

sin(), cos(), tan()

Números aleatorios

randomSeed()random()

Bits y Bytes

lowByte()highByte()bitRead()bitWrite()bitSet()bitClear()bit()

Funciones

Interrupciones externas

attachInterrupt()dettachInterrupt()

Interrupciones

interrupts()noInterrupts()

Comunicación / Serial

begin()end()available()read()flush()print()println()write()

Tiempo

millis()micros()delay()

Page 22: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

22

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 23: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

23

Instrumentación AvanzadaConexionado de entradas y salidas

Entrada digital por interruptor o pulsador

- Conexión pullup - Conexión pulldown

- Entrada analógica por potenciómetro

http://arduino.cc/Manual de Arduino. Programación y conceptos básicos. Raul Diosdado – MakerZona.

Page 24: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

24

Instrumentación AvanzadaConexionado de entradas y salidas

Salidas digitales

- Salida de baja corriente (< 40 mA - Salida de potencia a través de mosfet o por pin y < 200 mA en conjunto) transistor (salida de estado solido)

- Salida de potencia a través de relé (salida con contacto móvil)

http://arduino.cc/Manual de Arduino. Programación y conceptos básicos. Raul Diosdado – MakerZona.

Page 25: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

25

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 26: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

26

Instrumentación AvanzadaFuncionamiento de las salidas analógicas PWM

PWM: Pulse Width Modulation (Modulacion por ancho de pulso)

Los pines digitales 3, 5, 6, 9, 10 y 11 de la placa Arduino UNO se pueden configurar como salidas PWM.

En el modo PWM generan una tensión de onda cuadrada cuyo ciclo de trabajo varia desde 0 hasta 100% para generar un valor medio entre 0 y 5 V respectivamente. La resolución es de 8 bits, es decir se envía por programa un valor de 0 a 255.

La frecuencia de la onda cuadrada es de 490-500 Hz.

La funcion tone() utiliza una salida PWM pero con frecuencia variable y ancho de pulso constante (50%) para generar diferentes tonos audibles (hasta 20kHz y no audibles, ya que la f max. es de 65,535 kHz.

http://arduino.cc/Manual de Arduino. Programación y conceptos básicos. Raul Diosdado – MakerZona.

Page 27: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

27

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 28: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

28

Instrumentación AvanzadaEjemplo de programación en el IDE

Lectura y escritura de entradas y salidas digitales

/*Instrumentación AvanzadaEjemplo de programación en el IDELectura y escritura de entradas y salidas digitales*/

const int pulsador = 5; // numero del pin de entrada const int led = 7; // numero del pin de salida

int estado_boton = 0; // estado del pin de entrada

void setup () { pinMode (led, OUTPUT); // se configura el pin 7 como salida pinMode (pulsador, INPUT); // se configura el pin 5 como entrada } // fin del setup

void loop () { estado_boton = digitalRead (pulsador); //lee la entrada digital del botón if (estado_boton == HIGH) { // si se pulsa el botón (estado lógico alto) digitalWrite(led, HIGH); //escribe la salida digital del led (lo enciende) } // fin del if else { digitalWrite(led, LOW); //escribe la salida digital del led (lo apaga) } // fin del else} // fin del loop

Ejemplo 1

Page 29: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

29

Instrumentación AvanzadaEjemplo de programación en el IDE

Lectura y escritura de entradas y salidas analógicas

/* Instrumentación AvanzadaEjemplo de programación en el IDELectura y escritura de entradas y salidas analógicas*/

const int potenciometro=2; // numero del pin de la entrada analógicaconst int led=9; // num. del pin de la salida digital PWM func. como analógica de 8 bits de resolución (0 a 255) int valor_pote; // variable en la que se guardara el valor del pote (de 0 a 1023);

void setup () {pinMode(led,OUTPUT); // se configura el pin 9 como salida} // fin del setup

void loop () {valor_pote=analogRead (potenciometro); // lee la entrada analógica del potenciómetrovalor_pote=map (valor_pote,0,1023,0,255); // mapea valores de 0 a 1023 en valores de 0 a 255analogWrite (led,valor_pote); // escribe la salida digital del led en modo PWM (0-255 equivale a 0-5V)} // fin del loop

Ejemplo 2

Page 30: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

30

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 31: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

31

Instrumentación AvanzadaInteracción con la PC a través de LabVIEW

National Instruments creó una librería para trabajar con placas Arduino desde LabVIEW.

La primera librería que surgió se llama LIFA (LabVIEW Interface For Arduino)

http://www.ni.com/gate/gb/GB_EVALTLKTLVARDIO/US

Este año surgió la librería LINX (LabVIEW INterface for X : chipKIT, Arduino and myRIO)

http://www.ni.com/gate/gb/GB_EVALTLKTLINXLVH/US

LabVIEW

Page 32: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

32

Instrumentación AvanzadaInteracción con la PC a través de LabVIEW

Para que LabVIEW se pueda comunicar con una placa ARDUINO, la misma debe tener cargado un programa conocido como firmware, realizado por National Instruments.

En el caso de utilizar la librería LIFA, el mismo se llama LIFA_Base.ino y se localiza en el directorio:…\National Instruments\LabVIEW 2011\vi.lib\LabVIEW Interface for Arduino\Firmware\LIFA_Base\

En el caso de utilizar la librería LINX, el mismo se llama LINX_Arduino_Base_Firmware.ino y se localiza en el directorio:…\National Instruments\LabVIEW 2011\vi.lib\LabVIEW Hacker \LINX\ Firmware\ Source\ Arduino\ LINX_Arduino_Base_Firmware\

Se carga el firmware en la memoria flash de la placa desde el IDE de ARDUINO, y esta queda apta para comunicarse con LabVIEW.

IDE Arduino

Page 33: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

33

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 34: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

34

Instrumentación AvanzadaEjemplo de programación en LabVIEW

Lectura y escritura de entradas y salidas digitales y analógicas

Arduino +LabVIEW. Utilización de LabVIEW para la Visualización y Control de la Plataforma Open Hardware Arduino. José Manuel Ruiz Gutiérrez. Serie: Herramientas Graficas para la programación de Arduino. Ver. 1.0, 2012.

Ejemplo 3

Page 35: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

35

Instrumentación AvanzadaEjemplo de programación en LabVIEW

Lectura y escritura de entradas y salidas digitales y analógicas

Ejemplo 3

Page 36: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

36

Instrumentación AvanzadaProgramación en LabVIEW – Ejercicio 1

Control y Monitoreo de un motor monofásico.

Se deben leer los pulsadores de paro y marcha, encender un relé de comando, controlar la velocidad con una salida PWM, leer una señal analógica proporcional a la velocidad y encender una alarma sonora en caso de exceso de velocidad.

Para esta practica utilizaremos una placa Arduino UNO y un variador de velocidad S.E.ALTIVAR.

Ejercicio 1

Page 37: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

37

Instrumentación AvanzadaProgramación en LabVIEW – Ejercicio 1

Control y Monitoreo de un motor monofásico.

Ejercicio 1

Page 38: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

38

Instrumentación AvanzadaProgramación en LabVIEW – Ejercicio 1

Control y Monitoreo de un motor monofásico.

Ejercicio 1

Page 39: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

39

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 40: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

40

Instrumentación AvanzadaWeb Server con Arduino UNO + Ethernet Shield

Breve descripción de la tarjeta de expansión o shield Ethernet

ARDUINO UNO ETHERNET SHIELD

Tensión de alimentación 5V (se alimenta directamente desde la tarjeta Arduino). Controlador Ethernet: chip Wiznet W5100 con una memoria flash interna de 16K. Proporciona una red IP con capacidad de comunicación TCP y UDP. Puede trabajar como cliente o servidor. Nos interesa particularmente esta última opción. Soporta hasta cuatro conexiones simultaneas. Velocidad de conexión: 10/100Mb. Conexión con Arduino a través del Puerto SPI (pines 10, 11, 12, 13). El pin 10 es para seleccionar la conexión Ethernet. Provista con lectora de memoria micro-SD (pin 4 para seleccionar la memoria). Comando desde librería SPI.h Ethernet.h y SD.h. Se monta arriba de una Arduino UNO, Mega o compatibles y permite que se apilen otros

shields sobre ella.

Page 41: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

41

Instrumentación AvanzadaWeb Server con Arduino UNO + Ethernet Shield

Conexión de la tarjeta de expansión Ethernet

Se debe conectar el cable USB a la placa Arduino UNO a fin de programarla. Luego se puede retirar el cable USB y alimentar la placa con una fuente externa para que continúe funcionando en forma autónoma.

Una vez cargado el programa se conecta el cable ethernet en la ficha RJ45.

Si bien funciona, no es aconsejable cargar programas con el cable ethernet conectado, ya que según la bibliografía, puede causar inestabilidades en el funcionamiento de la placa.

http://arduino.cc/Arduino + Ethernet Shield. Implantacion de Arduino en las redes Ethernet: ”Arduino y el Internet de las Cosas”. José Manuel Ruiz Gutiérrez. Serie: Arduino Comunicacion. Ver. 1.0, 2013.

Page 42: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

42

Instrumentación AvanzadaWeb Server con Arduino UNO + Ethernet Shield

Configuración de la Red

Al shield se le debe asignar una dirección MAC (identificador global único de dispositivos físicos), y una dirección IP válida según la configuración de la red.

En algunos modelos, la MAC viene detrás de la placa, en otros se debe asignar al azar. No deben existir dos dispositivos con la misma MAC conectados en la red.

La IP debe ser cercana a la IP de la PC conectada a la red, y no debe estar asignada a otra PC o dispositivo.

http://arduino.cc/Arduino + Ethernet Shield. Implantacion de Arduino en las redes Ethernet: ”Arduino y el Internet de las Cosas”. José Manuel Ruiz Gutiérrez. Serie: Arduino Comunicacion. Ver. 1.0, 2013.http://diymakers.es/crear-servidor-web-con-arduino/

Page 43: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

43

Instrumentación Avanzada

Configuración de la Red – Determinación de la IP desde la ventana de comandos de Windows

Paso 1: Ir a botón de inicio Ejecutar escribir cmd dar enter (se abrirá la ventana de comandos).

Paso 2: ingresar por teclado el comando ipconfig y dar enter.

Paso 3: inventar una IP que tenga los tres primeros bytes mas significativos iguales y solo cambie el último.

Paso 4: verificar que esta no exista en la red, escribiendo ping xxx.xxx.xxx.xxx (n° de IP). La respuesta debe ser nula o intento de conexión fallido.

En este caso la IP libre que se usara en el laboratorio será 10.2.0.100. Las pruebas serán en la intranet. Para acceder a la placa desde internet, se debe crear una IP pública como se vio en clases anteriores.

Web Server con Arduino UNO + Ethernet Shield

Page 44: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

44

Instrumentación AvanzadaWeb Server consultado desde LabVIEW – Ejercicio 2

Control y Monitoreo de un motor monofásico en forma remota desde internet: programa .INO

Page 45: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

45

Instrumentación AvanzadaWeb Server consultado desde LabVIEW – Ejercicio 2

Control y Monitoreo de un motor monofásico en forma remota desde internet: programa .INO

Page 46: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

46

Instrumentación AvanzadaWeb Server consultado desde LabVIEW – Ejercicio 2

Control y Monitoreo de un motor monofásico en forma remota desde internet: programa .INO

Page 47: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

47

Instrumentación AvanzadaWeb Server consultado desde LabVIEW – Ejercicio 2

Control y Monitoreo de un motor monofásico en forma remota desde internet: programa .vi

Page 48: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

48

Instrumentación AvanzadaWeb Server consultado desde LabVIEW – Ejercicio 2

Control y Monitoreo de un motor monofásico en forma remota desde internet: programa .vi

Page 49: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

49

Instrumentación AvanzadaWeb Server consultado desde página .htm - Ejercicio 3

Control de una salida digital desde página web programada desde sketch: programa .ino

Page 50: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

50

Instrumentación AvanzadaWeb Server consultado desde página .htm - Ejercicio 3

Control de una salida digital desde página web programada desde sketch: programa .ino

Page 51: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

51

Instrumentación AvanzadaWeb Server consultado desde página .htm - Ejercicio 3

Control de una salida digital desde página web programada desde sketch: programa .ino

Page 52: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

52

Instrumentación AvanzadaWeb Server consultado desde página .htm - Ejercicio 3

Control de una salida digital desde página web programada desde sketch: programa .ino

Page 53: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

53

Instrumentación AvanzadaWeb Server consultado desde página .htm - Ejercicio 3

Control de una salida digital desde página web programada desde sketch.

Visualización en la web:

http://wngeek.wordpress.com/2013/10/02/arduino-web-server-tutorial/http://diymakers.es/crear-servidor-web-con-arduino/

Page 54: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

54

Instrumentación AvanzadaWeb Server consultado desde página .htm - Ejercicio 4

Control de entradas y salidas digitales y analógicas desde página web alojada en memoria SD

Pasos a seguir:

1- Se conecta una memoria SD a la PC.

2- Se guarda en la misma el archivo index.htm situado en la carpeta ejercicio_4_ethernet-SD

3- Se introduce la memoria SD en la lectora del shield ethernet

4- Se conecta el cable USB a la placa Arduino UNO y el cable UTP al shield Ethernet

5- Se carga el sketch programa.ino situado en la carpeta ejercicio_4_ethernet-SD

6- Se abre el navegador y se conecta al sitio http://10.2.0.100

7- Se deberá visualizar la página index.htm con la que se podrán visualizar y controlar entradas y salidas de la placa Arduino UNO.

Page 55: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

55

Instrumentación AvanzadaWeb Server consultado desde página .htm - Ejercicio 4

Control de entradas y salidas digitales y analógicas desde página web alojada en memoria SD

Visualización en la web:

http://wngeek.wordpress.com/2013/10/02/arduino-web-server-tutorial/http://diymakers.es/crear-servidor-web-con-arduino/

Page 56: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

56

Instrumentación AvanzadaContenido de la clase

¿En qué consiste ARDUINO?

¿Cómo nació ARDUINO?

Hardware: Familia de placas ARDUINO

Hardware: Tarjetas de Expansión (Shields)

Descripción de la placa ARDUINO UNO

Software: Entornos de Programación

IDE (Entorno de Desarrollo Integrado)

Conexionado de entradas y salidas

Funcionamiento de las salidas analógicas PWM

Ejemplo de programación en el IDE

Interacción con la PC a través de LabVIEW

Ejemplo de programación en LabVIEW

Web Server con Arduino UNO + Ethernet Shield

Registrador con Arduino UNO + Datalogger Shield

Page 57: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

57

Instrumentación AvanzadaRegistrador con Arduino UNO + Datalogger Shield

Breve descripción de la tarjeta de expansión o shield Datalogger

ARDUINO UNO DATALOGGER SHIELD

Tensión de alimentación 5V (se alimenta directamente desde la tarjeta Arduino). Reloj de Tiempo Real (RTC) basado en el chip DS1307. Pila de litio para mantener el chip en hora cuando el Arduino está sin alimentación. Lectora de memoria SD. Conexión con Arduino a través del Puerto SPI (pines 10, 11, 12, 13). El pin 10 es el pin de selección para utilizar la memoria SD. El RTC se controla a través de los pines analógicos A4 y A5 (SCL y SDA – bus I2C) Comando desde librería DS1307RTC.h, Time.h , y SD.h. Dispone de un área experimental para soldar conectores, componentes y sensores. Se monta arriba de una Arduino UNO, Mega o compatibles y permite que se apilen otros

shields sobre ella.

Page 58: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

58

Instrumentación AvanzadaEjercicio 5: Datalogger

Se debe realizar un registrador que mida la temperatura ambiente cada 1 segundo y la guarde junto a la fecha y hora de muestreo en un archivo de texto alojado en la memoria micro-SD del shield Datalogger.

Se utilizarán los siguientes componentes:

-1 tarjeta Arduino UNO-1 tarjeta de expansión Datalogger compatible con Arduino UNO-1 memoria micro-SD HC clase 10 con capacidad apropiada-1 pila botón de litio-1 LCD 20x4-1 conversor I2C para LCD-1 sensor de temperatura LM35-2 pulsadores-2 resistencias de 10 KΩ

Page 59: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

59

Instrumentación AvanzadaEjercicio 5: Datalogger

Se realizará el siguiente circuito:

LCD 20x4

Adaptador I2C

Protoboard

ShieldDatalogger

Page 60: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

60

Instrumentación AvanzadaEjercicio 5: Datalogger

Se utilizarán las siguientes librerías:

avr/io.h (funciones necesarias para las interrupciones) avr/interrupt.h (funciones para controlar interrupciones)SD.h (funciones para controlar la memoria SD)DS1307RTC.h (funciones para administrar el RTC de la placa shield datalogger)Time.h (funciones para cálculos de fecha, hora, calendario)Wire.h (funciones generales para la comunicación I2C)LiquidCrystal_I2C.h (funciones para administrar la comunicación I2C con el LCD)

Primer paso: Inicializar la fecha y hora del RTC (Real Time Clock) con la hora de la PC.

Para esto se carga el sketch SetTime que trae como ejemplo la librería DS1307RTC.

Segundo paso: Realizar y cargar el programa realizado en el IDE de Arduino, que se presenta a continuación.

Page 61: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

61

Instrumentación AvanzadaEjercicio 5: Datalogger

Código en el IDE de Arduino

Page 62: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

62

Instrumentación AvanzadaEjercicio 5: Datalogger

Código en el IDE de Arduino

Page 63: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

63

Instrumentación AvanzadaEjercicio 5: Datalogger

Código en el IDE de Arduino

Page 64: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

64

Instrumentación AvanzadaEjercicio 5: Datalogger

Código en el IDE de Arduino

Page 65: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

65

Instrumentación AvanzadaEjercicio 5: Datalogger

Código en el IDE de Arduino

Page 66: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

66

Instrumentación AvanzadaEjercicio 5: Datalogger

Código en el IDE de Arduino

Page 67: Introducción a la Plataforma ARDUINO 1 Instrumentación Avanzada Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Jorge Luis Strack

67

Instrumentación AvanzadaEjercicio 5: Datalogger

Código en el IDE de Arduino