informática industrial parte iii - · pdf filecurso informática industrial...

58
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érez Dr. Eladio Dapena Informática Industrial 2 MSc. Jesús Pérez / Dr. Eladio Dapena Introducción Generalidades sobre Arduino Características del Arduino Uno Programación Prácticas Contenido

Upload: duongdat

Post on 06-Feb-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 2: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 3: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 4: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 5: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 6: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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 $

Page 7: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 8: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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 $

Page 9: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 10: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 11: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 12: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 13: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 14: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 15: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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);

Page 16: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 17: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 18: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 19: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 20: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 21: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

ARDUINO

Práctica 01

Encender y apagar un LED

MSc. Jesús Pérez

Dr. Eladio Dapena

Mayo 2015

Page 22: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 23: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 24: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 25: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

ARDUINO

Práctica 02

Encender un LED con un pulsador

MSc. Jesús Pérez

Dr. Eladio Dapena

Mayo 2015

Page 26: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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:

Page 27: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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:

Page 28: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 29: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

ARDUINO

Práctica 03

Controlar un LED con un potenciómetro

MSc. Jesús Pérez

Dr. Eladio Dapena

Mayo 2015

Page 30: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 31: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 32: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 33: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

ARDUINO

Práctica 04

Encender un LED con un sensor QRD1114

MSc. Jesús Pérez

Dr. Eladio Dapena

Mayo 2015

Page 34: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 35: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 36: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

ARDUINO

Práctica 05

Encender y apagar un motor DC

MSc. Jesús Pérez

Dr. Eladio Dapena

Mayo 2015

Page 37: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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:

Page 38: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 39: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 40: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

ARDUINO

Práctica 06

Encender un LED con un sensor LDR

MSc. Jesús Pérez

Dr. Eladio Dapena

Mayo 2015

Page 41: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 42: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 43: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

ARDUINO

Práctica 07

Medir distancia con sensor SHARP GP2Y0A21

MSc. Jesús Pérez

Dr. Eladio Dapena

Mayo 2015

Page 44: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 45: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 46: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

5.3. Abrir el Monitor Serial

Page 47: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

ARDUINO

Práctica 08

Medir distancia con el sensor HC-SR04

Msc. Jesús Pérez

Dr. Eladio Dapena

Mayo 2015

Page 48: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 49: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 50: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

Serial.print("Distancia: ");

Serial.print(cm);

Serial.println(" cm");

delay(1000);

}

Page 51: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

ARDUINO

Práctica 09

Rotar un servomotor entre 0 y 90 grados

MSc. Jesús Pérez

Dr. Eladio Dapena

Mayo 2015

Page 52: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 53: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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:

Page 54: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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);

}

}

Page 55: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

ARDUINO

Práctica 10

Escribir un mensaje en la pantalla LCD

MSc. Jesús Pérez

Dr. Eladio Dapena

Mayo 2015

Page 56: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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.

Page 57: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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

Page 58: Informática Industrial Parte III - · PDF fileCurso Informática Industrial ARDUINO Facilitadores MSc. Jesús Pérez Dr. Eladio Dapena ... Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0

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);

}

}