Upload
duongdat
View
218
Download
0
Embed Size (px)
Citation preview
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Curso
Informática Industrial
ARDUINO
Facilitadores
MSc. Jesús PérezDr. Eladio Dapena
Informática Industrial
2MSc. Jesús Pérez / Dr. Eladio Dapena
• Introducción
• Generalidades sobre Arduino
• Características del Arduino Uno
• Programación
• Prácticas
Contenido
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
3MSc. Jesús Pérez / Dr. Eladio Dapena
Introducción
Informática Industrial
4MSc. Jesús Pérez / Dr. Eladio Dapena
Introducción
La primera placa Arduino nace en el año 2005, en las aulas de la Interaction Design
Institute Ivrea, Italia. http://interactionivrea.org/en/index.asp
Arduino, es una placa programable con entradas y salidas digitales y analógicas, cuyo
bajo costo la hace ideal para iniciarse en automatización o realizar pequeños proyectos
domésticos en electrónica y robótica.
Esto significa que disponemos de un pequeño “autómata”, capaz de recibir información
del entorno (sensores) y realizar acciones (actuadores, motores…), según un programa
que introducimos con un computador, y que puede ejecutar de forma autónoma.
¿Por qué no en aplicaciones comerciales o industriales?
Por ejemplo, si usted va a controlar la climatización de un polideportivo de 4000 mts2,
donde el equipo de enfriamiento cuesta unos 270.000 $, pareciera una temeridad
instalar un controlador de 20 $. Seguramente prefiera instalar un autómata general PLC,
que ofrezca un certificado y una garantía.
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
5MSc. Jesús Pérez / Dr. Eladio Dapena
Generalidades
Informática Industrial
6MSc. Jesús Pérez / Dr. Eladio Dapena
Generalidades
¿Qué Arduino utilizar?
Existen diversos modelos Arduino, lo que puede ser un poco confuso para los
nuevos usuarios.
A la hora de elegir lo normal es que nos fijemos en la cantidad de entradas y
salidas que tiene, especialmente las analógicas dado que son las que habitualmente
restringen los proyectos.
Arduino UNO r3 Este es el modelo más estándar y es la placa más popular.
Para ciertos proyectos grandes, que requieran manejar un número importante de
motores o servo motores(robots, máquinas de CNC, impresoras 3D) puede ser
necesario pasar a un modelo con mayor número de salidas, especialmente
analógicas. En ese caso lo normal es emplear una Arduino MEGA r3.
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
7MSc. Jesús Pérez / Dr. Eladio Dapena
Generalidades
¿Qué Arduino utilizar?
El modelo Mini 05, es un modelo para usuarios avanzados.
Es una placa de unos 15$ y un tamaño realmente pequeño, pensado para
aplicaciones finales, es decir, cuando vas a dejar la placa permanentemente
conectada.
Viene sin terminales de conexión, hay que soldarlos, y para programarla se requiere
un adaptador USB FTDI que cuesta 5$.
En niveles expertos este es prácticamente el único modelo de placa que se utiliza
dado que, en caso de requerir una gran cantidad de entradas o salidas, es más
económico formar una red de 3 o 4 placas mini, y obtienes una capacidad superior
a una MEGA.
Informática Industrial
8MSc. Jesús Pérez / Dr. Eladio Dapena
Generalidades
Name Processor
Operating
Voltage/Input
Voltage
CPU
Speed
Analog
In/Out
Digital
IO/PWM
EEPROM
[KB]
SRAM
[KB]
Flash
[KB] USB UART
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 - -
Nano
ATmega168
5 V/7-9 V 16 Mhz 8/0 14/6
0.512 1 16
Mini-B 1
ATmega328 1 2 32
Fuente: http://www.arduino.cc/
Modelos
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
9MSc. Jesús Pérez / Dr. Eladio Dapena
Name Processor
Operating
Voltage/Input
Voltage
CPU
Speed
Analog
In/Out
EEPROM
[KB]
SRAM
[KB]
Flash
[KB] USB UART
Ethernet ATmega328 5 V/7-12 V 16 Mhz 6/0 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 1 2 32 - 1
FIO ATmega328P 3.3 V/3.7-7 V 8 Mhz 8/0 1 2 32 Mini 1
Pro (168) ATmega1683.3 V/3.35-
12 V8 Mhz 6/0 0.512 1 16 - 1
Pro (328) ATmega328 5 V/5-12 V 16 Mhz 6/0 1 2 32 - 1
Pro Mini ATmega168
3.3 V/3.35-
12 V8 Mhz
6/0 0.512 1 16 - 1
5 V/5-12 V 16Mhz
Fuente: http://www.arduino.cc/
Generalidades
Modelos
Informática Industrial
10MSc. Jesús Pérez / Dr. Eladio Dapena
Name Processor
Operating
Voltage/Input
Voltage
CPU
Speed
Analog
In/Out
EEPROM
[KB]
SRAM
[KB]
Flash
[KB] USB UART
LilyPad
ATmega168V2.7-5.5
V/2.7-5.5 V8 Mhz 6/0 0.512 1 16 - -
ATmega328V
LilyPad USB ATmega32u4 3.3 V/3.8-5V 8 Mhz 4/0 1 2.5 32 Micro -
LilyPad
SimpleATmega328
2.7-5.5
V/2.7-5.5 V8 Mhz 4/0 1 2 32 - -
LilyPad
Simple
Snap
ATmega3282.7-5.5
V/2.7-5.5 V8 Mhz 4/0 1 2 32 - -
Fuente: http://www.arduino.cc/
Generalidades
Modelos
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
11MSc. Jesús Pérez / Dr. Eladio Dapena
Generalidades
Modelos
Arduino Esplora- 1 sensor de luz
-1 sensor de temperatura
-3 acelerómetros
-1 joystick
-4 pulsadores
-1 potenciómetro lineal
-1 RGB LED
-1 buzzerCosto: 35 $
Informática Industrial
12MSc. Jesús Pérez / Dr. Eladio Dapena
Generalidades
Modelos
Arduino Robot
Costo: 160 $
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
13MSc. Jesús Pérez / Dr. Eladio Dapena
Generalidades
Modelos
Arduino Robot
Informática Industrial
14MSc. Jesús Pérez / Dr. Eladio Dapena
Generalidades
Modelos
Arduino Robot
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
15MSc. Jesús Pérez / Dr. Eladio Dapena
Generalidades
Modelos
Arduino Robot
Informática Industrial
16MSc. Jesús Pérez / Dr. Eladio Dapena
Generalidades
Modelos
Costo: 24 $ Costo: 40 $
Costo: 15 $
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
17MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Informática Industrial
18MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Características
Microcontroller ATmega328
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz
Length 68.6 mm
Width 53.4 mm
Weight 25 g
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
19MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Componentes
Informática Industrial
20MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Cable de Conexión
Alimentación Externa
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
21MSc. Jesús Pérez / Dr. Eladio Dapena
Programación
Informática Industrial
22MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Programación
El programa se implementará haciendo uso del entorno de programación propio de
Arduino y se transferirá empleando un cable USB.
Si bien en el caso de la placa USB no es preciso utilizar una fuente de alimentación
externa, ya que el propio cable USB la proporciona, para la realización de algunos
de los experimentos prácticos sí que será necesario disponer de una fuente de
alimentación externa ya que la alimentación proporcionada por el USB puede no
ser suficiente.
El voltaje de la fuente puede estar entre 7 y 12 Voltios.
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
23MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Entorno de Programación
Para programar la placa es necesario descargarse de la página web de Arduino el
entorno de desarrollo (IDE). http://arduino.cc/en/Main/Software
Hay versiones para Windows y para MAC, así como las fuentes para compilarlas en
LINUX.
Informática Industrial
24MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Entorno de Programación
Conectar el Arduino y Verificar en (Administración de Dispositivos de su Pc) el
Puerto de conexión del Arduino y actualizarlo en el Entorno de desarrollo
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
25MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Entorno de Programación
Ajustar la Tarjeta
Informática Industrial
26MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Entorno de Programación
Verificar/Compilar
Cargar al Arduino
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
27MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Programación
Estructura básica de un programa
La estructura básica de programación de Arduino es bastante simple y divide la
ejecución en dos partes:
void setup()
En la función setup() se incluye la declaración de variables y se trata de la
primera función que se ejecuta en el programa. Esta función se ejecuta una
única vez y es empleada para configurar el pinMode (p. ej. si un determinado pin
digital es de entrada o salida) e inicializar la comunicación serie.
void loop()
Incluye el código a ser ejecutado continuamente (leyendo las entradas de la
placa, salidas, etc.).
Informática Industrial
28MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Programación
Tipo de Datos
byteAlmacena un valor numérico de 8 bits. Tienen un rango de 0-255.
intAlmacena un valor entero de 16 bits con un rango de 32,767 a -32,768.
longValor entero almacenado en 32 bits con un rango de 2,147,483,647 a -2,147,483,648.
floatTipo coma flotante almacenado en 32 bits con un rango de 3.4028235E+38 a - 3.4028235E+38.
ArraysSe trata de una colección de valor es que pueden ser accedidos con un número de índice, similar al C.
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
29MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Programación
Constantes
El lenguaje de Arduino presenta las siguientes constantes predefinidas:
TRUE / FALSE.
HIGH/LOW.
Estas constantes definen los niveles de los pines como HIGH o LOW y son
empleados cuando se leen o escriben en las entradas o salidas digitales.
HIGH se define como el nivel lógico 1 (ON) o 5 V.
LOW es el nivel lógico 0, OFF, o 0 V.
INPUT/OUTPUT.
Constantes empleadas con la función pinMode() para definir el tipo de un pin
digital usado como entrada INPUT o salida OUTPUT.
Ej. pinMode(13, OUTPUT);
Informática Industrial
30MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Programación
Entradas / Salidas Digitales
Función pinMode(pin, mode)
Función usada en la función setup() para configurar un pin dado para
comportarse como INPUT o OUTPUT.
Ej. pinMode(pin, OUTPUT); configura el pin número ‘pin’ como de salida.
Los pines de Arduino funcionan por defecto como entradas, de forma que no
necesitan declararse explícitamente como entradas empleando pinMode().
Función digitalRead(pin)
Lee el valor desde un pin digital específico. Devuelve un valor HIGH o LOW. El pin
puede ser especificado con una variable o una constante (0-13).
Ej. v = digitalRead(pin);
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
31MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Programación
Entradas / Salidas Digitales
Función digitalWrite(pin, value)
Introduce un nivel alto (HIGH) o bajo (LOW) en el pin digital especificado.
De nuevo, el pin puede ser especificado con una variable o una constante 0-13.
Ej. digitalWrite(pin, HIGH);
Función analogRead(pin)
Lee el valor desde el pin analógico especificado con una resolución de 10 bits.
Esta función solo funciona en los pines analógicos (0-5). El valor resultante es un
entero de 0 a 1023. Los pines analógicos, a diferencia de los digitales no
necesitan declararse previamente como INPUT o OUTPUT.
Informática Industrial
32MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Programación
Entradas / Salidas Digitales
Función analogWrite(pin, value)
Escribe un valor pseudo-analógico usando modulación por ancho de pulso
(PWM) en un pin de salida marcado como PWM.
Esta función está activa para los pines 3, 5, 6, 9, 10, 11.
Ej analogWrite(pin, v); // escribe ‘v’ en el ‘pin’ analógico.
Un valor 0 genera 0 V en el pin especificado y 255 genera 5 V.
Para valores de 0 a 255, el pin alterna rápidamente entre 0 V y 5 V, cuanto mayor
sea el valor, más a menudo el pin se encuentra en HIGH (5 V). Por ejemplo, un
valor de 64 será 0 V tres cuartas partes del tiempo y 5 V una cuarta parte. Un
valor de 128 será 0 V la mitad del tiempo y 5 V la otra mitad. Un valor de 192
será 0 V una cuarta parte del tiempo y 5 V tres cuartas partes.
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
33MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Programación
Funciones de tiempo y matemáticas
delay(ms)
Realiza una pausa en el programa la cantidad de tiempo en milisegundos
especificada en el parámetro
millis()
Devuelve la cantidad de milisegundos que lleva la placa Arduino ejecutando el
programa actual como un valor long unsigne. Después de 9 horas el contador
vuelve a 0.
min(x,y) y max(x,y)
Devuelve el mínimo y el máximo respectivamente de entre sus parámetros.
Informática Industrial
34MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Programación
Funciones de generación aleatoria
randomSeed(seed)
Especifica un valor o semilla como el punto de inicio para la función random().
Este parámetro debe ser realmente aleatorio y para ello puede emplearse la
función millis() o incluso analogRead() para leer ruido eléctrico desde una
entrada analógica.
random(max), random(min, max)
Esta función devuelve un valor aleatorio entre el rango especificado.
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
35MSc. Jesús Pérez / Dr. Eladio Dapena
Arduino Uno
Programación
Puerto serie
Serial.begin(rate)
Abre un Puerto serie y especifica la velocidad de transmisión.
La velocidad típica para comunicación con el ordenador es de 9600 aunque se
pueden soportar otras velocidades.�
Serial.println(data)
Imprime datos al puerto serie seguido por un retorno de línea automático.
Serial.print()
Similar a Serial.println() sin el salto de línea al final.
Serial.read()
Lee o captura un byte (un carácter) desde el puerto serie.
Devuelve -1 si no hay ningún carácter en el puerto serie.
Serial.available()
Devuelve el número de caracteres disponibles para leer desde el puerto serie.
Informática Industrial
36MSc. Jesús Pérez / Dr. Eladio Dapena
Prácticas
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Informática Industrial
37MSc. Jesús Pérez / Dr. Eladio Dapena
Prácticas
Práctica 1
Encender y apagar un LED
Práctica 2
Encender un LED con un pulsador
Práctica 3
Controlar un LED con un potenciómetro
Práctica 4
Encender un LED con un sensor QRD1114
Práctica 5
Encender y apagar un motor DC
Informática Industrial
38MSc. Jesús Pérez / Dr. Eladio Dapena
Prácticas
Práctica 6
Encender un LED con un sensor LDR
Práctica 7
Medir distancia con un sensor SHARP GP2Y0A21
Práctica 8
Medir distancia con un sensor HC-SR04
Práctica 9
Rotar un servomotor entre 0 y 90 grados
Práctica 10
Escribir un mensaje en la pantalla LCD
Informática Industrial
Parte III
Dr. Eladio Dapena G / MSc. Jesús Pérez.A
Curso
Informática Industrial
ARDUINO
Facilitadores
MSc. Jesús PérezDr. Eladio Dapena
ARDUINO
Práctica 01
Encender y apagar un LED
MSc. Jesús Pérez
Dr. Eladio Dapena
Mayo 2015
Práctica 01: Encender y apagar un LED
1.- Introducción
El objetivo principal de esta práctica es programar el parpadeo de un LED conectado al PIN 13, el cual es considerado como el “hola mundo” en Arduino. Para ello se debe configurar el PIN 13 como salida en el setup, y luego alternar el valor de la salida entre bajo y alto en el loop.
2.- Objetivos
2.1. Configurar el PIN 13 como salida digital 2.2. Controlar el valor de la salida digital 2.3. Identificar los pines de un LED 2.4. Conectar correctamente un LED
3.- Materiales Requeridos
-1 Arduino UNO -1 protoboard -1 LED -Cables para conexiones
4.- Marco teórico
LED (Diodo Emisor de Luz): Es un semiconductor de dos pines que emite luz cuando circula corriente a través de él. A su pin positivo se le conoce como ánodo y a su pin negativo como cátodo.
Si el diodo es nuevo y los pines no han sido cortados a la medida, más largo que el otrocátodo (negativo). Ést
Además, es recomendable revisar el LEDbuscando un lado aplanado. Este lado aplanado se encuentra en la base de la parte superior de color, justo por encima del punto en el que los pines salen del cuerpo. El área aplanada, llamada la "madirectamente encima del pin del cátodo.
5.- Instrucciones
5.1. Conectar los componentes como se muestra en la siguiente imagen:
5.2. Escribir y compilar el siguiente programa en el void setup() {
pinMode(13, OUTPUT
}
Si el diodo es nuevo y los pines no han sido cortados a la medida, o. El pin más largo es el ánodo (positivo) y
Éste último debe ir conectado a GND.
omendable revisar el LED examinando su cuerpo cilíndrico, buscando un lado aplanado. Este lado aplanado se encuentra en la base de la parte superior de color, justo por encima del punto en el que los pines salen del cuerpo. El área aplanada, llamada la "marca del cátodo", está directamente encima del pin del cátodo.
. Conectar los componentes como se muestra en la siguiente imagen:
. Escribir y compilar el siguiente programa en el IDE de Arduino
() {
OUTPUT);
Si el diodo es nuevo y los pines no han sido cortados a la medida, un pin será es el ánodo (positivo) y el otro es el
cuerpo cilíndrico, buscando un lado aplanado. Este lado aplanado se encuentra en la base de la parte superior de color, justo por encima del punto en el que los pines salen
rca del cátodo", está
. Conectar los componentes como se muestra en la siguiente imagen:
IDE de Arduino
void loop() {
digitalWrite(13,
delay(1000);
digitalWrite(13,
delay(1000);
}
6. Actividad
6.1. Simular el funcionamiento de
(13, HIGH);
(1000);
(13, LOW);
(1000);
Simular el funcionamiento de un semáforo utilizando tres LEDs un semáforo utilizando tres LEDs
ARDUINO
Práctica 02
Encender un LED con un pulsador
MSc. Jesús Pérez
Dr. Eladio Dapena
Mayo 2015
Práctica 02: Encender un LED con un pulsador
1. Introducción
El objetivo principal de esta práctica es conocer el funcionamiento de las
entradas digitales en Arduino. Para ello se utiliza un pulsador normalmente
abierto. Básicamente, cuando se trata de entradas digitales, las consideraciones
que se deben tomar son las siguientes: declarar el pin como entrada digital y
utilizar correctamente la función de lectura.
2.- Objetivos
2.1. Configurar el PIN 2 como entrada digital
2.2. Leer el valor de la entrada digital
2.3. Conocer el funcionamiento del pulsador
2.4. Conectar correctamente el pulsador
3.- Materiales Requeridos
-1 Arduino UNO
-1 protoboard
-1 LED
-Cables para conexiones
-1 resistencia de 10 K
-1 pulsador normalmente abierto
4.- Marco teórico
Pulsador: Es un dispositivo que tiene dos estados: el primero, permite el paso
de corriente; y el segundo, no lo permite. Existen dos tipos de pulsadores:
normalmente abierto (NO) y normalmente cerrado (NC). Como su nombre lo
indica, el pulsador normalmente abierto no tiene continuidad entre sus
terminales cuando está en estado de reposo, siendo el caso contrario del
pulsador normalmente cerrado. Algunos modelos de pulsadores se pueden
apreciar en la siguiente imagen:
Para conectar un pulsador normalmente abierto a un pin de entrada
Arduino, se debe utilizar la siguiente configuración:
5.- Instrucciones
5.1. Conectar los componentes como se muestra en la siguiente imagen:
Para conectar un pulsador normalmente abierto a un pin de entrada
, se debe utilizar la siguiente configuración:
. Conectar los componentes como se muestra en la siguiente imagen:
Para conectar un pulsador normalmente abierto a un pin de entrada digital del
. Conectar los componentes como se muestra en la siguiente imagen:
5.2. Escribir y compilar el siguiente programa en el IDE de Arduino
int buttonState = 0;
void setup() {
pinMode(13, OUTPUT);
pinMode(2, INPUT);
}
void loop(){
buttonState = digitalRead(2);
if (buttonState == LOW) {
digitalWrite(13, HIGH);
}
else {
digitalWrite(13, LOW);
}
}
6. Actividad
6.1. Agregar otro pulsador para controlar el apagado del LED
ARDUINO
Práctica 03
Controlar un LED con un potenciómetro
MSc. Jesús Pérez
Dr. Eladio Dapena
Mayo 2015
Práctica 03:
1. Introducción
El objetivo principal de esta p
entradas analógicas del Arduino UNO. Para ello se utiliza un potenciómetro,
cuya característica principal está relacionada con la capacidad de variar el valor
de su resistencia eléctrica.
2.- Objetivos
2.1. Leer el valor de la entrada analógica
2.2. Conocer el funcionamiento de un potenciómetro
2.3. Conectar correctamente
3.- Materiales Requeridos
-1 Arduino UNO
-1 protoboard
-1 LED
-Cables para conexiones
-1 potenciómetro de 10K
4.- Marco teórico
Potenciómetro: Es una resistencia variable de tres terminales, cuyo
comportamiento se basa en el divisor de tensión, donde la resistencia cambia
su valor mediante la perilla frontal.
: Controlar un LED con un potenciómetro
de esta práctica es conocer el funcionamiento de las
entradas analógicas del Arduino UNO. Para ello se utiliza un potenciómetro,
cuya característica principal está relacionada con la capacidad de variar el valor
de su resistencia eléctrica.
de la entrada analógica
Conocer el funcionamiento de un potenciómetro
. Conectar correctamente el potenciómetro
Cables para conexiones
1 potenciómetro de 10K
Es una resistencia variable de tres terminales, cuyo
comportamiento se basa en el divisor de tensión, donde la resistencia cambia
su valor mediante la perilla frontal.
otenciómetro
conocer el funcionamiento de las
entradas analógicas del Arduino UNO. Para ello se utiliza un potenciómetro,
cuya característica principal está relacionada con la capacidad de variar el valor
Es una resistencia variable de tres terminales, cuyo
comportamiento se basa en el divisor de tensión, donde la resistencia cambia
5.- Instrucciones
5.1. Conectar los componentes como se
5.2. Escribir y compilar el siguiente programa en el
int value=0;
void setup() {
pinMode(13, OUTPUT
}
void loop() {
value = analogRead
digitalWrite(13,
delay(value);
digitalWrite(13,
delay(value);
}
. Conectar los componentes como se muestra en la siguiente imagen:
. Escribir y compilar el siguiente programa en el IDE de Arduino
OUTPUT);
analogRead(A0);
(13, HIGH);
value);
(13, LOW);
(value);
muestra en la siguiente imagen:
IDE de Arduino
6. Actividad
6.1. Simular el funcionamiento de un indicador de volumen utilizando
Simular el funcionamiento de un indicador de volumen utilizando Simular el funcionamiento de un indicador de volumen utilizando cuatro LEDs
ARDUINO
Práctica 04
Encender un LED con un sensor QRD1114
MSc. Jesús Pérez
Dr. Eladio Dapena
Mayo 2015
Práctica 04: Encender un LED con un sensor QRD1114
1. Introducción
El objetivo principal de esta práctica es conocer tanto el funcionamiento como la
forma de conexión del sensor óptico reflexivo QRD1114, el cual es utilizado
frecuentemente para detectar objetos cercanos (1 – 5 cm) y detectar
transiciones entre blanco y negro.
2.- Objetivos
2.1. Conocer el funcionamiento del sensor QRD1114
2.2. Conectar correctamente el sensor QRD1114 con el Arduino
3.- Materiales Requeridos
-1 Arduino UNO
-1 protoboard
-1 LED
-Cables para conexiones
-1 resistencia de 10 K
-1 resistencia de 220 ohmios
-1 sensor QRD1114
4.- Marco teórico
Sensor QRD1114: Es un sensor óptico reflexivo que está compuesto por un
emisor de luz infrarroja y un fototransistor. El principio de funcionamiento se
basa en el rebote de la señal infrarroja, la cual activa al fototransistor.
5.- Instrucciones
5.1. Conectar los componentes como se muestra en la siguiente imagen:
5.2. Escribir y compilar el siguiente programa en el
int value=0;
void setup() {
pinMode(13, OUTPUT
}
void loop() {
value = analogRead
if (value > 512){
digitalWrite(13,
}else{
digitalWrite(13,
}
}
. Conectar los componentes como se muestra en la siguiente imagen:
. Escribir y compilar el siguiente programa en el IDE de Arduino
OUTPUT);
analogRead(A0);
(value > 512){
(13, HIGH);
{
(13, LOW);
. Conectar los componentes como se muestra en la siguiente imagen:
IDE de Arduino
ARDUINO
Práctica 05
Encender y apagar un motor DC
MSc. Jesús Pérez
Dr. Eladio Dapena
Mayo 2015
Práctica 05: Encender y apagar un motor DC
1. Introducción
El objetivo principal de esta práctica es controlar la puesta en marcha de un motor DC a través de un puerto digital del Arduino. Para ello se debe utilizar un transistor como interruptor debido a que la corriente suministrada por el pin no es suficiente para el motor DC.
2.- Objetivos
2.1. Configurar el PIN 2 como salida digital 2.2. Controlar el valor de la salida digital 2.3. Conectar correctamente el motor DC
3.- Materiales Requeridos
-1 Arduino UNO -1 protoboard -Cables para conexiones -1 resistencia de 10 K -1 transistor 2N3904 -1 diodo 1N4001 -1 motor DC
4.- Marco teórico
Transistor: Es un dispositivo semiconductor de tres terminales que se utiliza como amplificador de señales o como conmutador electrónico. Los nombres de sus terminales son: Emisor, Base y Colector. En esta práctica es usado el transistor 2N3904 como conmutador electrónico, para permitir o bloquear el paso de corriente al motor. A continuación se muestra como reconocer sus terminales:
Diodo: Es un componente electrónico semiconductor de dos terminales, cuyo funcionamiento surge de su habilidad para permitir el paso de corriente en un solo sentido. El nombre de sus terminales son Ánodo y Cátodo. A continuación se muestra gráficamente como identificar sus terminales:
Motor DC: Es un dispositivo que convierte energía eléctrica (corriente continua) en energía mecánica, generalmente a través de campos magnéticos. El voltaje de alimentación depende del motor. Cuenta con dos terminales donde será alimentado por la fuente de corriente continua. Para cambiar su sentido de giro, simplemente se deben invertir los cables de alimentación.
5.- Instrucciones
5.1. Conectar los componentes como se muestra en la siguiente imagen:
5.2. Escribir y compilar el siguiente programa en el void setup() {
pinMode(2, OUTPUT
}
void loop() {
digitalWrite(
delay(5000);
digitalWrite(2
delay(5000);
}
6. Actividad
6.1. Agregar un sensor QRD1114siguiente manera: encendido para negro y apagado para blanco.6.2. Agregar un potenciómetro para calibrar el sensor QRD1114.6.3. Agregar un pulsador para activar o desactivar el sistema.6.4. Agregar un LED para i
. Conectar los componentes como se muestra en la siguiente imagen:
. Escribir y compilar el siguiente programa en el IDE de Arduino
() {
OUTPUT);
(2, HIGH);
000);
(2, LOW);
000);
Agregar un sensor QRD1114 para controlar la puesta en marcha de la siguiente manera: encendido para negro y apagado para blanco. 6.2. Agregar un potenciómetro para calibrar el sensor QRD1114. 6.3. Agregar un pulsador para activar o desactivar el sistema. 6.4. Agregar un LED para indicar el estado del sistema (activado o desactivado).
. Conectar los componentes como se muestra en la siguiente imagen:
de Arduino
para controlar la puesta en marcha de la
ndicar el estado del sistema (activado o desactivado).
ARDUINO
Práctica 06
Encender un LED con un sensor LDR
MSc. Jesús Pérez
Dr. Eladio Dapena
Mayo 2015
Práctica 06: Encender un LED con un sensor LDR
1.- Introducción
El objetivo principal de esta práctica es conocer tanto el funcionamiento como la
forma de conexión de una Resistencia Dependiente de Luz (LDR), la cual es
utilizada para medir luminosidad.
2.- Objetivos
2.1. Conocer el funcionamiento del LDR
2.2. Conectar correctamente el LDR con el Arduino UNO
3.- Materiales Requeridos
-1 Arduino UNO
-1 protoboard
-1 LED
-Cables para conexiones
-1 resistencia de 10K
-1 LDR
4.- Marco teórico
LDR (Resistencia Dependiente de Luz): también conocida como fotorresistencia
o fotocelda. Su característica principal está asociada con su habilidad para
cambiar el valor de su resistencia según la cantidad de luz que recibe. A menor
intensidad de luz, mayor resistencia.
5.- Instrucciones
5.1. Conectar los componentes como se muestra en la siguiente imagen:
5.2. Escribir y compilar el siguiente programa en el
int sensorPin = A0;
int ledPin = 13;
int sensorValue = 0;
void setup() {
pinMode(ledPin,
}
void loop() {
sensorValue = analogRead
if (sensorValue > 512){
digitalWrite(ledPin,
}else{
digitalWrite(ledPin,
}
}
. Conectar los componentes como se muestra en la siguiente imagen:
. Escribir y compilar el siguiente programa en el IDE de Arduino
sensorPin = A0;
ledPin = 13;
sensorValue = 0;
ledPin, OUTPUT);
analogRead(sensorPin);
(sensorValue > 512){
(ledPin, LOW);
{
(ledPin, HIGH);
. Conectar los componentes como se muestra en la siguiente imagen:
IDE de Arduino
ARDUINO
Práctica 07
Medir distancia con sensor SHARP GP2Y0A21
MSc. Jesús Pérez
Dr. Eladio Dapena
Mayo 2015
Práctica 07: Medir distancia con sensor SHARP GP2Y0A21
1.- Introducción
El objetivo principal de esta práctica es conocer el funcionamiento del sensor
infrarrojo SHARP GP2Y0A21, el cual es utilizado con mucha frecuencia para
realizar mediciones.
2.- Objetivos
2.1. Conocer el funcionamiento del sensor SHARP GP2Y0A21
2.2. Conectar correctamente el sensor SHARP GP2Y0A21 con el Arduino Uno
3.- Materiales Requeridos
-1 Arduino UNO
-Cables para conexiones
-1 sensor SHARP GPY20A21
4.- Marco teórico
SHARP GP2Y0A21: Es un sensor infrarrojo que utiliza el método de
triangulación para medir distancias comprendidas entre 10 y 80 cm.
Internamente, tiene un circuito que procesa la señal, permitiendo fácil
comunicación con otros dispositivos.
Este sensor consta de tres terminales: alimentación, tierra y salida.
en la salida varía entre 0,3 y 3,1 voltios dependiendo de la distancia medida.
Según las especificaciones proporcionadas por el fabricante, la distancia
medida se aproxima con la s
Distancia (cm) =
5.- Instrucciones
5.1. Conectar los componentes como se muestra en la siguiente imagen:
5.2. Escribir y compilar el siguiente programa en el
int sensor = A0;
int value, cm;
void setup() {
Serial.begin(9600);
}
void loop() {
value = analogRead
cm = pow(3027.4 / value, 1.2134);
Serial.print("Distancia: "
Serial.println(cm);
delay(1000);
}
sensor consta de tres terminales: alimentación, tierra y salida.
en la salida varía entre 0,3 y 3,1 voltios dependiendo de la distancia medida.
Según las especificaciones proporcionadas por el fabricante, la distancia
medida se aproxima con la siguiente expresión:
Distancia (cm) = (3027,4 / Vout ) 1,2134
. Conectar los componentes como se muestra en la siguiente imagen:
. Escribir y compilar el siguiente programa en el IDE de Arduino
(9600);
analogRead(sensor);
cm = pow(3027.4 / value, 1.2134);
"Distancia: ");
(cm);
sensor consta de tres terminales: alimentación, tierra y salida. La tensión
en la salida varía entre 0,3 y 3,1 voltios dependiendo de la distancia medida.
Según las especificaciones proporcionadas por el fabricante, la distancia
. Conectar los componentes como se muestra en la siguiente imagen:
IDE de Arduino
5.3. Abrir el Monitor Serial
ARDUINO
Práctica 08
Medir distancia con el sensor HC-SR04
Msc. Jesús Pérez
Dr. Eladio Dapena
Mayo 2015
Práctica 08: Medir distancia con el sensor HC-SR04
1.- Introducción
El objetivo principal de esta práctica es conocer el funcionamiento del sensor
ultrasónico HC-SR04, el cual es utilizado principalmente como medidor de
distancias y detector de proximidad.
2.- Objetivos
2.1. Conocer el funcionamiento del sensor HC-SR04
2.2. Conectar correctamente el sensor HC-SR04 al Arduino UNO
3.- Materiales Requeridos
-1 Arduino UNO
-Cables para conexiones
-1 módulo HC-SR04
4.- Marco teórico
HC-SR04: Es un sensor ultrasónico utilizado para medir distancias
comprendidas entre 2 y 400 cm. El módulo incluye: transmisor ultrasónico,
receptor y circuito de control. Cuando se quiere realizar una medición se debe
enviar un pulso menor a 10 us para indicárselo al módulo, el cual
automáticamente envía una señal de 40 KHz para detectar si ésta retorna.
Dependiendo del tiempo en que tarda la señal en retornar, se estima el valor
de la distancia. El ángulo de operación recomendado es 30 grados.
5.- Instrucciones
5.1. Conectar los componentes como se muestra en la siguiente imagen:
5.2. Escribir y compilar el siguiente programa en el
const int trig = 2;
const int echo = 4;
long duration, cm;
void setup() {
Serial.begin(9600);
pinMode(trig, OUTPUT
pinMode(echo, INPUT
}
void loop(){
digitalWrite(trig,
delayMicroseconds
digitalWrite(trig,
delayMicroseconds
digitalWrite(trig,
duration = pulseIn
cm = duration/29/2;
. Conectar los componentes como se muestra en la siguiente imagen:
. Escribir y compilar el siguiente programa en el IDE de Arduino
trig = 2;
echo = 4;
duration, cm;
(9600);
OUTPUT);
INPUT);
(trig, LOW);
delayMicroseconds(2);
(trig, HIGH);
delayMicroseconds(5);
(trig, LOW);
pulseIn(echo, HIGH);
cm = duration/29/2;
. Conectar los componentes como se muestra en la siguiente imagen:
IDE de Arduino
Serial.print("Distancia: ");
Serial.print(cm);
Serial.println(" cm");
delay(1000);
}
ARDUINO
Práctica 09
Rotar un servomotor entre 0 y 90 grados
MSc. Jesús Pérez
Dr. Eladio Dapena
Mayo 2015
Práctica 09: Rotar un servomotor entre 0 y 90 grados
1.- Introducción
El objetivo principal de esta práctica es conocer el funcionamiento de los
servomotores, con la finalidad de controlarlos desde un Arduino UNO.
2.- Objetivos
2.1. Conocer el funcionamiento del servomotor
2.2. Conectar correctamente el servomotor al Arduino UNO
2.3. Controlar la posición del servomotor
3.- Materiales Requeridos
-1 Arduino UNO
-Cables para conexiones
-1 servomotor
4.- Marco teórico
Servomotor: Es un actuador que tiene la capacidad de ubicarse y mantenerse
en cualquier posición dentro de su rango de operación. Está constituido por un
motor DC, una caja reductora y un circuito de control. Generalmente, el rango
de operación de los servomotores es aproximadamente 180 grados. A
continuación se muestra un ejemplar de la marca Tower Pro.
Para controlar la posición del motor se utiliza la Modulación de Ancho de Pulso
(PWM), que consiste en modificar el ciclo de trabajo de una señal periódica.
motor se posicionará d
la siguiente imagen:
5.- Instrucciones
5.1. Conectar los componentes como se muestra en la siguiente imagen:
Para controlar la posición del motor se utiliza la Modulación de Ancho de Pulso
(PWM), que consiste en modificar el ciclo de trabajo de una señal periódica.
motor se posicionará dependiendo del ciclo de trabajo, tal como se muestra en
. Conectar los componentes como se muestra en la siguiente imagen:
Para controlar la posición del motor se utiliza la Modulación de Ancho de Pulso
(PWM), que consiste en modificar el ciclo de trabajo de una señal periódica. El
e trabajo, tal como se muestra en
. Conectar los componentes como se muestra en la siguiente imagen:
5.2. Escribir y compilar el siguiente programa en el IDE de Arduino
#include <Servo.h>
Servo myservo;
int pos = 0;
void setup()
{
myservo.attach(3);
}
void loop()
{
for(pos = 0; pos < 90; pos += 1)
{
myservo.write(pos);
delay(15);
}
for(pos = 90; pos>=1; pos-=1)
{
myservo.write(pos);
delay(15);
}
}
ARDUINO
Práctica 10
Escribir un mensaje en la pantalla LCD
MSc. Jesús Pérez
Dr. Eladio Dapena
Mayo 2015
Práctica 10: Escribir un mensaje en la pantalla LCD
1.- Introducción
El objetivo principal de esta práctica es conocer el funcionamiento de la pantalla
LCD, la cual es muy utilizada en sistemas controlados por microcontroladores,
incluyendo Arduino.
2.- Objetivos
2.1. Conocer el funcionamiento de la pantalla LCD
2.2. Conectar correctamente la pantalla LCD con el Arduino UNO
2.3. Utilizar las funciones de la biblioteca LiquidCrystal
3.- Materiales Requeridos
-1 Arduino UNO
-1 protoboard
-Cables para conexiones
-1 potenciómetro de 10K
-1 pantalla LCD
4.- Marco teórico
LCD (Liquid Crystal Display): Es una pantalla electrónica basada en módulos de
siete segmentos, que permiten mostrar caracteres alfanuméricos. Las más
comunes utilizan el driver de control HITACHI HD44780, el cual permite fácil
comunicación con microcontroladores.
En Arduino hay una biblioteca denominada
driver HITACHI HD44780, cuyas especificaciones se encuentra en el siguiente
enlace: http://www.arduino.cc/en/Reference/LiquidCrystal
5.- Instrucciones
5.1. Conectar los componentes como se muestra en la siguiente imagen:
5.2. Escribir y compilar el siguiente programa en el
#include <LiquidCrystal
LiquidCrystal lcd(12, 11,
void setup() {
lcd.begin(16, 2);
}
En Arduino hay una biblioteca denominada LiquidCrystal
driver HITACHI HD44780, cuyas especificaciones se encuentra en el siguiente
duino.cc/en/Reference/LiquidCrystal
. Conectar los componentes como se muestra en la siguiente imagen:
. Escribir y compilar el siguiente programa en el IDE de Arduino
LiquidCrystal.h>
lcd(12, 11, 5, 4, 3, 2);
(16, 2);
LiquidCrystal basada en el
driver HITACHI HD44780, cuyas especificaciones se encuentra en el siguiente
. Conectar los componentes como se muestra en la siguiente imagen:
IDE de Arduino
void loop() {
lcd.clear();
lcd.setCursor(0, 0);
for(int i = 8; i > 0; i -= 1) {
lcd.print(i);
lcd.print(" ");
delay(1000);
}
for(int i = 4; i > 0; i -= 1) {
lcd.clear();
lcd.setCursor(5, 1);
lcd.print("LaSDAI");
delay(500);
lcd.clear();
delay(500);
}
}