Está en la página 1de 67

Instrumentación Avanzada

Facultad Universidad Nacional


de Ingeniería de Mar del Plata

Introducción a la Plataforma ARDUINO

Ing. Jorge Luis Strack

1
Contenido de la clase Instrumentación Avanzada

¿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


2
¿En qué consiste ARDUINO? Instrumentación Avanzada

“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/
3
Contenido de la clase Instrumentación Avanzada

¿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


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

“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
5
Contenido de la clase Instrumentación Avanzada

¿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


6
Hardware: Familia de placas ARDUINO Instrumentación Avanzada

Leonardo Uno Mega 2560

Zero Yún Due

Tre Ethernet Mega ADK


http://arduino.cc/
7
Hardware: Familia de placas ARDUINO Instrumentación Avanzada

Micro Nano Pro Mini


Mini

LilyPad
Esplora

LilyPad Simple

Robot LilyPad USB

LilyPad SimpleSnap

http://arduino.cc/ Fio Pro


8
Hardware: Familia de placas ARDUINO Instrumentación Avanzada

Tensión de operación / IN/OUT Digital EEPROM SRAM Flash


Nombre Procesador Velocidad CPU USB UART
Tensión de entrada Análogas

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 - -
ATmega168 0.512 1 16
Nano 5 V/7-9 V 16 Mhz 8/0 14/6 Mini-B 1
ATmega328 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
3.3 V/3.35-12 V 8 Mhz
Pro Mini ATmega168 6/0 14/6 0.512 1 16 - 1
5 V/5-12 V 16Mhz
ATmega168V
LilyPad 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/
9
Contenido de la clase Instrumentación Avanzada

¿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


10
Hardware: Tarjetas de Expansión (Shields) Instrumentación Avanzada

GSM Shield Ethernet Shield WiFi Shield

Wireless SD Shield USB Host Shield Motor Shield

Wireless Proto Shield Proto Shield


http://arduino.cc/
11
Contenido de la clase Instrumentación Avanzada

¿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


12
Descripción de la placa ARDUINO UNO Instrumentación Avanzada

Botón de RESET

Conector USB
Tipo B hembra

Jack alimentación
externa +7-12V

Circuito Esquemático
http://arduino.cc/
13
Descripción de la placa ARDUINO UNO Instrumentación Avanzada

 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:


E
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.

http://arduino.cc/en/pmwiki.php?n=Tutorial/Memory
14
Contenido de la clase Instrumentación Avanzada

¿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


15
Software: Entornos de Programación Instrumentación Avanzada

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.
16
Contenido de la clase Instrumentación Avanzada

¿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


17
IDE (Entorno de Desarrollo Integrado) Instrumentación Avanzada

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
18
IDE (Entorno de Desarrollo Integrado) Instrumentación Avanzada
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 break
If…else do while continue
for 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)
19
IDE (Entorno de Desarrollo Integrado) Instrumentación Avanzada

Operadores de comparación Operadores a nivel de bits

== (igual que) & (and)


!= (distinto que) | (or)
< (menor que) ^ (xor)
> (mayor que) ~ (not)
<= (menor o igual que) << (desp. de bits a la izquierda)
>= (mayor o igual que) >> (desp. de bits a la derecha)

Operadores booleanos Constantes

&& (and) HIGH, LOW (alto, bajo)


|| (or) INPUT, OUTPUT (entrada, salida)
! (not) True, False
constantes enteras
Operadores compuestos constantes punto flotante

++ (incremento) Tipos de variables


-- (decremento)
+= (suma compuesta) boolean (true o false)
-= (resta compuesta) char – unsigned char (un solo carácter)
*= (multiplicación compuesta) String (cadena de caraceres)
/= (división compuesta) byte (1byte: enteros de -128 a 127)
&= ( and compuesto a nivel de bits) int – unsigned int (2 bytes: enteros de -32768 a 32767)
|= (or compuesto a nivel de bits) long – unsigned long (enteros de 4 bytes)
word (entero de 16 bits sin signo)
Operadores de acceso a punteros float, double (coma flotante 4 bytes)
array (matriz de datos del mismo tipo)
& (acceso a memoria)
* (direccionamiento) 20
IDE (Entorno de Desarrollo Integrado) Instrumentación Avanzada

Conversión Funciones Funciones

char() Cálculo Interrupciones externas


byte()
int() min(), max() attachInterrupt()
word() abs() dettachInterrupt()
long() constrain()
float() map() Interrupciones
pow()
Funciones sqrt() interrupts()
noInterrupts()
Entradas/salidas digitales: Trigonometría
Comunicación / Serial
pinMode() (INPUT ó OUTPUT) sin(), cos(), tan()
digitalWrite() (HIGH ó LOW) begin()
digitalRead() (HIGH ó LOW) Números aleatorios end()
available()
Entradas/salidas analógicas: randomSeed() read()
random() flush()
analogReference() print()
AnalogRead() Bits y Bytes println()
AnalogWrite() write()
lowByte()
Entradas/salidas avanzadas highByte() Tiempo
bitRead()
tone() bitWrite() millis()
notone() bitSet() micros()
shiftOut() bitClear() delay()
pulseIn() bit()
21
Contenido de la clase Instrumentación Avanzada

¿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


22
Conexionado de entradas y salidas Instrumentación Avanzada

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. 23
Conexionado de entradas y salidas Instrumentación Avanzada

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. 24
Contenido de la clase Instrumentación Avanzada

¿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


25
Funcionamiento de las salidas analógicas PWM Instrumentación Avanzada

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.
26
Contenido de la clase Instrumentación Avanzada

¿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


27
Ejemplo de programación en el IDE Instrumentación Avanzada

Lectura y escritura de entradas y salidas digitales

/*Instrumentación Avanzada
Ejemplo de programación en el IDE
Lectura 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

28
Ejemplo de programación en el IDE Instrumentación Avanzada

Lectura y escritura de entradas y salidas analógicas

/* Instrumentación Avanzada
Ejemplo de programación en el IDE
Lectura y escritura de entradas y salidas analógicas
*/

const int potenciometro=2; // numero del pin de la entrada analógica


const 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ómetro
valor_pote=map (valor_pote,0,1023,0,255); // mapea valores de 0 a 1023 en valores de 0 a 255
analogWrite (led,valor_pote); // escribe la salida digital del led en modo PWM (0-255 equivale a 0-5V)
} // fin del loop

Ejemplo 2

29
Contenido de la clase Instrumentación Avanzada

¿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


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

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
31
Interacción con la PC a través de LabVIEW Instrumentación Avanzada

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

32
Contenido de la clase Instrumentación Avanzada

¿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


33
Ejemplo de programación en LabVIEW Instrumentación Avanzada

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

Ejemplo 3

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.
34
Ejemplo de programación en LabVIEW Instrumentación Avanzada

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

Ejemplo 3

35
Programación en LabVIEW – Ejercicio 1 Instrumentación Avanzada

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

36
Programación en LabVIEW – Ejercicio 1 Instrumentación Avanzada

Control y Monitoreo de un motor monofásico.

Ejercicio 1

37
Programación en LabVIEW – Ejercicio 1 Instrumentación Avanzada

Control y Monitoreo de un motor monofásico.

Ejercicio 1

38
Contenido de la clase Instrumentación Avanzada

¿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


39
Web Server con Arduino UNO + Ethernet Shield Instrumentación Avanzada

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.

40
Web Server con Arduino UNO + Ethernet Shield Instrumentación Avanzada

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.
41
Web Server con Arduino UNO + Ethernet Shield Instrumentación Avanzada

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/
42
Web Server con Arduino UNO + Ethernet Shield 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.
43
Web Server consultado desde LabVIEW – Ejercicio 2 Instrumentación Avanzada

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

44
Web Server consultado desde LabVIEW – Ejercicio 2 Instrumentación Avanzada

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

45
Web Server consultado desde LabVIEW – Ejercicio 2 Instrumentación Avanzada

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

46
Web Server consultado desde LabVIEW – Ejercicio 2 Instrumentación Avanzada

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

47
Web Server consultado desde LabVIEW – Ejercicio 2 Instrumentación Avanzada

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

48
Web Server consultado desde página .htm - Ejercicio 3 Instrumentación Avanzada

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

49
Web Server consultado desde página .htm - Ejercicio 3 Instrumentación Avanzada

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

50
Web Server consultado desde página .htm - Ejercicio 3 Instrumentación Avanzada

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

51
Web Server consultado desde página .htm - Ejercicio 3 Instrumentación Avanzada

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

52
Web Server consultado desde página .htm - Ejercicio 3 Instrumentación Avanzada

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/

53
Web Server consultado desde página .htm - Ejercicio 4 Instrumentación Avanzada

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.

54
Web Server consultado desde página .htm - Ejercicio 4 Instrumentación Avanzada

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/
55
Contenido de la clase Instrumentación Avanzada

¿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


56
Registrador con Arduino UNO + Datalogger Shield Instrumentación Avanzada
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.

57
Ejercicio 5: Datalogger Instrumentación Avanzada

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Ω

58
Ejercicio 5: Datalogger Instrumentación Avanzada

Se realizará el siguiente circuito:

Adaptador I2C

Shield
Datalogger

LCD 20x4

Protoboard

59
Ejercicio 5: Datalogger Instrumentación Avanzada

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.

60
Ejercicio 5: Datalogger Instrumentación Avanzada

Código en el IDE de Arduino

61
Ejercicio 5: Datalogger Instrumentación Avanzada

Código en el IDE de Arduino

62
Ejercicio 5: Datalogger Instrumentación Avanzada

Código en el IDE de Arduino

63
Ejercicio 5: Datalogger Instrumentación Avanzada

Código en el IDE de Arduino

64
Ejercicio 5: Datalogger Instrumentación Avanzada

Código en el IDE de Arduino

65
Ejercicio 5: Datalogger Instrumentación Avanzada

Código en el IDE de Arduino

66
Ejercicio 5: Datalogger Instrumentación Avanzada

Código en el IDE de Arduino

67

También podría gustarte