Introduccion A ARDUINO - Pps
Introduccion A ARDUINO - Pps
Introduccion A ARDUINO - Pps
1
Contenido de la clase Instrumentación Avanzada
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
http://arduino.cc/
http://es.wikipedia.org/wiki/Arduino
5
Contenido de la clase Instrumentación Avanzada
LilyPad
Esplora
LilyPad Simple
LilyPad SimpleSnap
http://arduino.cc/
9
Contenido de la clase 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
SRAM: (Memoria Estática de Acceso Aleatorio), allí se crean y manipulan variables durante la
ejecución del sketch.
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
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
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
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).
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
Operadores Aritméticos
= (operador de asignación)
+ (suma)
- (resta)
* (multiplicación)
/ (división)
% (módulo)
19
IDE (Entorno de Desarrollo Integrado) Instrumentación Avanzada
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
http://arduino.cc/
Manual de Arduino. Programación y conceptos básicos. Raul Diosdado – MakerZona. 24
Contenido de la clase Instrumentación Avanzada
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 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
/*Instrumentación Avanzada
Ejemplo de programación en el IDE
Lectura y escritura de entradas y salidas digitales
*/
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
/* Instrumentación Avanzada
Ejemplo de programación en el IDE
Lectura y escritura de entradas y salidas analógicas
*/
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
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.
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
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
Ejemplo 3
35
Programación en LabVIEW – Ejercicio 1 Instrumentación Avanzada
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
Ejercicio 1
37
Programación en LabVIEW – Ejercicio 1 Instrumentación Avanzada
Ejercicio 1
38
Contenido de la clase Instrumentación Avanzada
40
Web Server con Arduino UNO + Ethernet Shield Instrumentación Avanzada
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.
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.
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
Paso 1: Ir a botón de inicio Ejecutar escribir cmd dar enter (se abrirá la ventana de
comandos).
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:
4- Se conecta el cable USB a la placa Arduino UNO y el cable UTP al shield Ethernet
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
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.
58
Ejercicio 5: Datalogger Instrumentación Avanzada
Adaptador I2C
Shield
Datalogger
LCD 20x4
Protoboard
59
Ejercicio 5: Datalogger Instrumentación Avanzada
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
61
Ejercicio 5: Datalogger Instrumentación Avanzada
62
Ejercicio 5: Datalogger Instrumentación Avanzada
63
Ejercicio 5: Datalogger Instrumentación Avanzada
64
Ejercicio 5: Datalogger Instrumentación Avanzada
65
Ejercicio 5: Datalogger Instrumentación Avanzada
66
Ejercicio 5: Datalogger Instrumentación Avanzada
67