[go: up one dir, main page]

0% encontró este documento útil (0 votos)
21 vistas40 páginas

Libro Basico de Arduino - 2

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas40 páginas

Libro Basico de Arduino - 2

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 40

F

+Digital I/O
- pinMode() U
- digitalWrite() N
- digitalRead() C
+Números aleatorios
- randomSeed() I
+Analogo I/O - random()
- analogReference() O
- analogRead() N
- analogWrite() - PWM E
+Bits y Bytes
- lowByte() S
+Avanzadas I/O - highByte()
- tone()
- bitRead()
- noTone()
- bitWrite()
- shiftOut()
- bitSet()
- shiftIn()
- bitClear()
-pulseIn()
- bit()

+Tiempo +Interrupciones externas


- millis() - attachInterrupt()
- micros() - detachInterrupt()
- delay()
- delayMicroseconds()
+Interrupciones
- interrupts()
+Matemáticas - noInterrupts()
- min()
- max() +Comunicación
- abs() - Serial
- constrain() - begin()
- map() - end()
- pow() - available()
- sqrt() - read()
- peek()
+Trigonométricas - flush()
- sin() - print()
- cos() - println()
- tan() - write()

L
- EEPROM - leer y escribir I
- Ethernet - conectarse a Internet B
- Cristal líquido - control de LCD
- SD - lectura y escritura de tarjetas SD
R
- Servo - control de servomotores E
- SPI - comunicación por el bus SPI R
- Paso a paso - control de motores
Í
- Wire - enviar y recibir datos TWI/I2C
A
… y muchas más visita S

arduino.cc

41
Hoja dejada en blanco de manera intencional

42
6. ARDUINO

Con las capacidades de Arduino solo debemos tener nociones básicas de


electrónica y programación, eso es suficiente para comenzar a desarrollar
nuestros proyectos. Arduino cuenta con una gran comunidad donde se com-
parte todo lo desarrollado y es una gran ventana para que puedas ver todo
lo que es posible desarrollar.

Proyecto Arduino
El proyecto comenzó en Ivrea, Italia (el sitio de la compañía de
computadoras Olivetti), en el año 2005 con el fin de crear un
dispositivo para estudiantes para el control integrado de proyec-
tos de diseño e interacción, con la finalidad de que fuera más
barato que los sistemas de creación de prototipos disponibles en
ese entonces. A partir de mayo de 2011, más de 300.000 unida-
des de Arduino han sido distribuidas. Los fundadores Massimo
Banzi y David Cuartielles nombraron el proyecto como Arduino de Ivrea, un protago- 6A
nista histórico de la ciudad. En primer lugar "Arduino" es un termino masculino ita-
liano, que significa "gran amigo".

El proyecto Arduino es un fork (en la ingeniería de software, un


fork es un proyecto que sucede cuando los desarrolladores tie-
nen una copia legal del código fuente y empiezan el desarrollo
independiente de ella, creando una obra distinta de software)
de la plataforma Wiring de código abierto. Wiring fue creado
por el artista colombiano y programador Hernando Barragán
como una tesis de maestría en el Instituto de diseño e interac-
ción Ivrea, bajo la supervisión de Massimo Banzi y Casey Reas. Por otra parte, Wiring
se basa en Processing y su entorno de desarrollo integrado creado por Casey Reas y
Ben Fry.

"Arduino fue construido en torno al proyecto Wiring de Hernando


Barragán. Wiring fue el proyecto de tesis de Hernando en el
Instituto de diseño e interacción Ivrea. Fue pensado para ser una
versión electrónica de Processing que utiliza nuestro entorno de
programación y fue modelado para la sintaxis de Processing. Fue
supervisado por mí mismo y Massimo Banzi, un fundador de Ar-
duino. No creo que Arduino existiría sin Wiring y no creo que
Wiring existiría sin Processing. Y sé que Processing sin duda no existiría sin Design By
Numbers y John Maeda1‖

1 Entrevista con Ben Fry y Casey Reas por Shiffman Daniel (Sep 23, 2009), ver más

43
Familia Arduino
Como toda familia que se respete, tenemos de los integrantes más grandes a los más
pequeños, te invitamos a conocerlos:

6B Arduino UNO Arduino Mega2560

Muchas entradas y
El más vendido,
todo en uno

salidas
Arduino Pro Arduino Fio Arduino Mini

Ligero y práctico Programación Pequeño, ideal


XBee para protoboard

Arduino Bluetooth Arduino Mega ADK Arduino LyliPad

Programación vía Para conectar el Para artistas y


bluetooth Android manejar e-textils

Arduino Nano Arduino Serial Arduino Leonardo

Un pequeño pode- El inicio del pro- El más joven y


roso yecto Arduino barato

44
Expandir Arduino con los shields
Un Shield o escudo es una placa que permite expandir funcionalidades a tu Arduino,
con lo cual puedes conectar motores, o a la red celular, a una red WiFi, a una red
Ethernet o tener un MP3 en el Arduino, entre muchos más solo mira:
6C
Celular Ethernet Proto GPS

XBee WiFi LCD a color USB host

Joystick Motores DC SD Card

ESCANEA CON TU
SMARTPHONE

BUSCA
VIDEOTUTORIAL

T01AB
ASÍ
HD

VISITA LA OPCIÓN DE

45
6D Placa Arduino Uno y sus partes

2 3

5
6 4
1

8
10

11 99

12

13 14

Vistas auxiliares

46
D
E
1 Conector USB para el cable Tipo AB
S
C
2 Pulsador de Reset
R
I
3 Pines de E/S digitales y PWM P
C
4 LED verde de placa encendida I
Ó
5 LED naranja conectado al pin13 N

6 ATmega 16U2 encargado de la comunicación con el PC


D
7 LED TX (Transmisor) y RX (Receptor) de la comunicación serial E

8 Puerto ICSP para programación serial P


A
9 Microcontrolador ATmega 328, cerebro del Arduino R
T
10 Cristal de cuarzo de 16Mhz E
S
11 Regulador de voltaje

12 Conector hembra 2.1mm con centro positivo

13 Pines de voltaje y tierra

14 Entradas análogas

ESCANEA CON TU
SMARTPHONE

BUSCA
VIDEOTUTORIAL

T02AB
ASÍ
HD

VISITA LA OPCIÓN DE

47
6E Instalando drivers

MAC y LINUX
Si tu computador tiene de sistema operativo alguna versión de Mac o una distribu-
ción de LINUX, lo único que debes hacer es:

1 Conectar la placa Arduino Uno al PC

2 Descargar el software de arduino.cc/en/Main/Software

3 Listo para trabajar y cargar programas

WINDOWS 7, Vista y XP
Si tu computador tiene de sistema operativo Windows en versión
7, Vista o XP, debes realizar la siguiente sucesión de sencillos
pasos:

1 Descargar el software de arduino.cc/en/Main/Software para Windows

2 Descomprimir la carpeta de Arduino en una ubicación de fácil acceso

3 Conectar la placa Arduino Uno al PC y ver este aviso. No nos debemos pre-
ocupar

4 Visitar Panel de control y luego Administrador de dispositivos, allí buscar


la siguiente opción

48
WINDOWS 7, Vista y XP

5 Click derecho sobre Dispositivo desconocido y luego sobre la opción Actua-


lizar software del controlador.

6
Ingresar a la opción Buscar software de controlador en el equipo

7 Examinar y buscar la carpeta de Arduino previamente descomprimida en el


paso 2. Dentro de esa carpeta acceder a la carpeta Drivers y dar Aceptar

8 Una vez buscamos la carpeta de Drivers le damos Siguiente

49
Recibimos la confirmación del Puerto COM asignado, este número de Puerto
9
COM es muy importante tenerlo en cuenta a la hora de programar.

ESCANEA CON TU
SMARTPHONE

BUSCA
VIDEOTUTORIAL

T07AB
ASÍ
HD

VISITA LA OPCIÓN DE

50
Conociendo el software Arduino

Para ejecutar el programa Arduino, ingre-


samos a la carpeta de Arduino y allí busca-
mos el icono ce Arduino y le damos doble
click

6F

Zona para escribir el código


Nuevo

Guardar
Abrir
Cargar a la placa
Compilar

Zona de mensajes del software


Errores y acciones

1 Puerto COM

51
2 Seleccionar la placa a trabajar

3
Consola serial

Cargando mi primer programa


Al final de este ejercicio ya vas a tener la capacidad de cargar programas a tu placa
Arduino. Para ello abre el software de Arduino y realiza lo que se indica en la si-
guiente imagen.

6G
1

52
Cargando mi primer programa
Antes de continuar con el siguiente paso asegúrate de configura de manera correc-
ta:
A– Puerto COM, revisa el Paso 1 de la sección 6F, recuerda que el valor del
puerto COM lo obtuvimos en el Paso 9 de la sección 6E
B– Board, revisa el Paso 2 de la sección 6F, recuerda que para este caso la
placa es Arduino UNO

El programa de intermitencia (Blink) que acabas de cargar en electrónica se


3 llama ―Hola mundo‖, consiste en prender y apagar un LED en intervalos de
un segundo. El LED que prende y apaga es la parte 5 según la sección 6D o el
marcado con la letra L según la imagen de abajo. Ahora te podemos dar la
¡Bienvenid@ al mundo de Arduino :D!

53
Ejercicio
A partir del ejemplo cargado en la sección anterior, ahora te proponemos que modi-
fiques un poco el programa, para ello en las dos líneas de código donde dice:
delay(1000);
Cambia el valor de 1000 por 2000 y vuelve a cargar el programa a tu placa Arduino
Uno, ¿que observas?

54
7. KIT BÁSICO

Es el recurso central de la presente guía, te proponemos que lo conozcas


para que tengas un adecuado manejo de sus componentes.

Descripción
La Tienda de Robótica trae el Kit Básico de
Arduino que comprende una cuidadosa selec-
ción de los mejores componentes para iniciar
en el mundo de Arduino. Es una herramienta
diseñada para los principiantes que cuenta
7A
con todo lo necesario para desarrollar progra-
mas que contribuyan al aprendizaje y manejo
del Arduino.

Distribución del kit

KIT BÁSICO 7 6

2 5 7B
1

3 4

1 3 5
1 x Arduino Uno 5 x Led 5mm 5 x Resistencia 220Ω

1 x Protoboard 1 x Led multicolor 5 x Resistencia 1KΩ

1 x Piezo eléctrico 5 x Resistencia 10KΩ


2 2 x Transistor 2N3904
1 x Fotocelda 4
6
1 x Potenciómetro 10K 1 x Batería Alcalina 9V
1 x Imán
1 x Reed switch 1 x Broche batería
1 x Motor DC
2 x Pulsadores NO 1 x Conector 2.1mm

7
1 x Cable USB Tipo AB

10 x Conectores rápidos MM

55
Fotos

7C

DESPLIEGUE DE COMPONENTES

EN SU CAJA DE KIT

56
8. FRITZING
Una gran Software para diseñar los montajes en protoboard y a partir de
ello generar el plano y la PCB (Circuito impreso), así de fácil :)

Software
Fritzing permite a los diseñadores, artistas, investigadores y aficionados
documentar sus prototipos basados en Arduino y crear esquemas de cir-
cuitos impresos para su posterior fabricación.

8A

Vista protoboard

8B
Tomado de fritzing.org/projects/interruptgesteuertes-lauflicht/
Ajuste de la velocidad de los LEDS
Realizado por tux60

57
Vista esquema

8C

Vista PCB—Circuito impreso

8D

58
EJERCICIO MÁSTER

1
En el siguiente ejercicio queremos que afiances tus
capacidades de montaje en Fritzing, es un ejercicio que
requiere que coloques a prueba tus capacidades de
reconocimiento de montajes electrónicos y cableado
entre el Arduino y una protoboard, es un resumen
práctico de los capítulos anteriores. Para desarrollarlo
te recomendamos que trabajes junto con el software y
de la imagen que se presenta a continuación. El software lo puedes encontrar
en:

fritzing.org/download/ 8E

DIY

59
9. TUTORIALES
Estos tutoriales son diseñados con ejercicios prácticos que permiten com-
prender el concepto y de manera constante se está verificando lo aprendido
mediante preguntas. Finalmente se plantean ejercicios que involucran ca-
sos de la vida real.

T0 Conoce como son los tutoriales

A
E

F
C

G
D

A Título del tutorial

B Lo que debes saber y lo que vas aprender

C Los materiales que necesitas

D Más cerca de ti, contenido multimedia

E Plano del montaje

F Esquema del montaje

60
G Prueba tu aprendizaje

H Código paso a paso

H
I Tips de mucha utilidad

J Ejercicios aplicados

K Expresa tus ideas

61
T1 Hola mundo—LED intermitente

¿Qué aprendo? Conocimientos previos

 Activar una salida digital  Señal digital


Encender un LED en ON/OFF  Función digitalWrite()
Temporizar una señal de salida  Polaridad de un LED
Sintaxis de un programa en  Conexión de la placa Ardui-
Arduino no al computador

Materiales

1 1

Arduino UNO LED Verde

Cable USB Tipo AB

ESCANEA CON TU
SMARTPHONE

BUSCA
VIDEOTUTORIAL

ASÍ
HD

VISITA LA OPCIÓN DE

62
P
L
A
N
O

E
S
Q
U
E
M
A

P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Completa R
de esta resistencia? función? E
G
digitalRead()
U
_______________ ?
I = ___ N
_____Ω
_______________ R T
_____KΩ
A

63
C /*
Ó -----------------------------------
D Hola Mundo
I -----------------------------------
G Enciende un LED por un segundo y lo apaga por el mismo tiempo
0 */

//------------------------------------
D
//Función principal
E
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
P
pinMode(13,OUTPUT); // Inicializa el pin 13 como una salida
R
}
O
G
R
//------------------------------------
A
//Función cíclica
M
//------------------------------------
A
void loop() // Esta función se mantiene ejecutando
C
{ // cuando este energizado el Arduino
I
digitalWrite(13,HIGH); // Enciende el LED
Ó
delay(1000); // Temporiza un segundo (1s = 1000ms)
N
digitalWrite(13,LOW); // Apaga el LED
delay(1000); // Temporiza un segundo (1s = 1000ms)
}

// Fin del programa

T 1- El // en programación se utiliza para hacer comentarios, es muy útil para que


I puedas explicar algo acerca de la sintaxis de una línea de código. Un ejemplo de su
P uso:
S
digitalWrite(13,LOW); // Apaga el LED

2– Las señales digitales (Encendido o apagado) están muy presentes en todos los
sistemas, y muchos sensores trabajan sobre este principio, te invitamos a conocer
algunos:

Sensor PIR Sensor óptico SHARP


Detecta movimiento Detecta la presencia de algún
objeto en un rango de 5cm

64
EJERCICIOS

1
A partir del código de programación explicado anteriormente, queremos que
un LED prenda de manera intermitente de la siguiente manera:

A) 3 segundos prendido y 3 segundos apagado

B) 200 milisegundos prendido y 500 milisegundos apagado

Tip: 1s = 1000ms

2 La empresa de automatización NRJ Inc. te contrata para hacer un montaje de


un LED Intermitente en una placa Arduino UNO, con el único requisito de que
el LED debe estar ubicado en el Pin 5, ellos muy amablemente te han facilita-
do el esquema, tu tarea es:

A) Realizar el montaje y la respectiva programación de 2 segundos prendido y


1 segundo apagado

3
Un Strober es un bombillo que prende y apaga muy rápido,
muy usado en las fiestas, tu misión es realizar tu strober
casero con un LED, con el mismo esquema montado en este
tutorial.

MI CUADERNO DE APUNTES

65
T2 Encender un LED con un pulsador

¿Qué aprendo? Conocimientos previos

 Cablear un circuito  Señal digital


Condicional If/else  Función digitalWrite() y
digitalRead()
Estado de un pulsador
 Divisor de voltaje
Leer una entrada digital y
escribir una salida digital  Condicional y operadores de
comparación

Materiales

1
1
1
LED Amarillo

Arduino UNO 1
Protoboard

Pulsador
1

1 4

Cable USB Tipo AB


Resistencia 1K Conectores MM

ESCANEA CON TU
SMARTPHONE

BUSCA
VIDEOTUTORIAL

T10AB
ASÍ
HD

VISITA LA OPCIÓN DE

66
P
L
A
N
O

E
S
Q
U
E
M
A

P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Un ejemplo de R
de esta resistencia? función? un lenguaje de alto E
nivel G
digitalWrite()
U
_______________ _______________ N
_____Ω
_____KΩ _______________ T
A

67
C /*
-----------------------------------
Ó Encender LED con un pulsador
-----------------------------------
D
Oprimir un pulsador y mientras este se mantenga accionado
I un LED se enciende
G Cosas de Mecatrónica y Tienda de Robótica
0
*/

//------------------------------------
D //Declara puertos de entradas y salidas
//------------------------------------
E int pulsador=2; //Pin donde se encuentra el pulsador, entrada
int led=13; //Pin donde se encuentra el LED, salida

//------------------------------------
P //Funcion principal
//------------------------------------
R void setup() // Se ejecuta cada vez que el Arduino se inicia
{
O pinMode(pulsador, INPUT); //Configurar el pulsador como una entrada
G pinMode(led,OUTPUT); //Configurar el LED como una salida
}
R
A //------------------------------------
//Funcion ciclicla
M //------------------------------------
A void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
C
//Condicional para saber estado del pulsador
I if (digitalRead(pulsador)==HIGH)
{
Ó //Pulsador oprimido
N digitalWrite(led,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led,LOW); //Apaga el LED
}
}
//Fin programa

T 1– Cuando estés programando en el Software de Arduino, muchas cosas de las que


I escribes son palabras reservadas por el lenguaje, todas las palabras reservadas las
P puedes encontrar en la sección 5S, al escribirlas éstas se colocan en un color dife-
rente, este es un truco para saber que esta bien, por ejemplo:
S

2– Todas la instrucciones de programación para Arduino, se encuentran


totalmente documentadas con claros ejemplos de cómo se utilizan, te
invitamos a que visites: arduino.cc/en/Reference/HomePage

68
EJERCICIOS

1
La multinacional francesa Flante experta en ma-
quinaria industrial te ha contratado para que auto-
matices una máquina cortadora de papel. La condi-
ción principal es que el operario de la máquina
cuando vaya a realizar el corte siempre mantenga
las dos manos ocupadas, esta es una regla de segu-
ridad industrial para evitar accidentes. El operario debe oprimir los dos pulsa-
dores uno con cada mano y la cuchilla cortadora debe bajar y hacer el corte. El
siguiente montaje simula el control de la máquina, los dos pulsadores (S1 y S2)
y el LED rojo simula la cuchilla cortadora.

S1 S2

2 Tu padre quiere que realices un sistema de iluminación LED para


las escaleras de la casa. La condición es que si estás arriba y
pulsas a S1 o si estás abajo y pulsas S2 el LED Rojo se enciende y
al dejar de pulsar se apaga. Como guía de montaje toma la ima-
gen anterior.

MI CUADERNO DE APUNTES

69
T3 Lectura serial de una entrada digital

¿Qué aprendo? Conocimientos previos

 Manejar una entrada digital  Señal digital


Ver datos por la pantalla del  Función digitalRead() y Se-
computador rial.println()

Consola serial  Opción de Consola serial,


ver 6F (paso 3)
Leer una entrada digital y
escribir por consola serial

Materiales

1
1

Arduino UNO
Pulsador Protoboard

1
1

4
Resistencia 1K
Cable USB Tipo AB
Conectores MM

ESCANEA CON TU
SMARTPHONE

BUSCA
VIDEOTUTORIAL

T11AB
ASÍ
HD

VISITA LA OPCIÓN DE

70
P
L
A
N
O

E
S
Q
U
E
M
A

P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Este símbolo a R
de esta resistencia? función? que corresponde E
G
Serial.println()
U
_______________ N
_____Ω
_____KΩ _______________ _______________ T
A

71
/*
C --------------------------------------
Lectura serial de una entrada digital
Ó --------------------------------------
D Leer una entrada digital y mostrar por la pantalla del
computador (consola serial) el estado del pulsador
I cuando es oprimido
G Cosas de Mecatrónica y Tienda de Robótica
0 */

//------------------------------------
//Declara puertos de entradas y salidas
D //------------------------------------
int boton=2; //Pin donde se encuentra el pulsador, entrada
E
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
P //Configuración
pinMode(boton,INPUT); //Configurar el boton como una entrada
R Serial.begin(9600); //Inicia comunicación serial
}
O
G //------------------------------------
//Funcion ciclicla
R //------------------------------------
void loop() // Esta funcion se mantiene ejecutando
A { // cuando este energizado el Arduino
M //Guardar en una variable entera el valor del boton 0 ó 1
int estado = digitalRead(boton);
A
//Condicional para saber estado del pulsador
C if (estado==1)
{
I // Pulsado
Serial.println("Pulsado"); //Imprime en la consola serial
Ó } // "Pulsado"
else
N {
// No esta pulsado
Serial.println("NO Pulsado"); //Imprime en la consola serial
} // "NO Pulsado"
delay(100); //Retardo para la visualización de datos en la consola
}
//Fin programa

T 1– La codificación binaria es muy importante para transmitir datos entre 0 000


I dispositivos, son las largas cadenas de 0 y 1, por ejemplo
1 001
P 00011101010101 esto podría ser un mensaje que contiene información
referente a una clave personal para acceder a un edificio. Los números 2 010
S
en base 10 se pueden representar como valores binarios: 3 011

4 100
2– Para recordar
5 101

6 110

7 111
- Para leer una señal digital usa: digitalRead(numeroPin);

- Para escribir una señal digital usa: digitalWrite(numeroPin, valor);

- Una salida o entrada digital siempre es HIGH o LOW

72
EJERCICIOS

1
Una empresa de gaseosas tiene un sistema con dos
sensores, uno de ellos indica si la botella se ha llena-
do con el líquido y el otro sensor indica si la botella
ya tiene la tapa. Para este caso simularemos los dos
sensores por medio de dos pulsadores (S1 y S2).

La rutina se describe de esta manera: si la botella se


llena de manera adecuada (se debe activar S1 y
mostrar por consola ―Gaseosa llena‖) luego de ello si tiene la tapa colocada (se
debe activar S2 y mostrar por consola ―Gaseosa tapada‖), al finalizar el proceso
se debe encender un LED que indica que el proceso terminó bien y además se
debe mostrar un mensaje por la consola ―Gaseosa bien empacada‖. Recuerda
que primero se debe activar S1 y luego S2 para que le proceso sea válido.

Unas luces navideñas moder-


nas son las siguientes: mien-
tras se mantenga pulsado S1
una variable entera inicializa-
S1 S2
da en 0 se comienza a incre-
mentar de 20 en 20, al soltar
S1 la variable para de incre-
mentarse, cuando se pulse S2
el valor de la variable se
debe cargar a un ―Hola

Mundo‖ del LED, esto quiere decir que el LED va


estar intermitente en intervalos de tiempo iguales al valor
de la variable. Por consola serial debes ir mostrando el
valor de la variable. Para que puedas volver la variable a 0
y puedas hacer otra rutina de intermitencia, coloca la condición de que S1 y S2 se
opriman al tiempo, con ello la variable entera debe volver a 0.

MI CUADERNO DE APUNTES

73
T4 Lectura serial de una entrada análoga

¿Qué aprendo? Conocimientos previos

 Manejar una entrada análoga  Señal análoga


Ver datos por la pantalla del  Función analogRead() y
computador Serial.println()

Múltiples estados de un poten-  Opción de Consola serial,


ciómetro ver 6F (paso 3)

Leer una entrada análoga

Materiales

1
1

1
Arduino UNO
Protoboard

1
Potenciómetro 10K
3

Cable USB Tipo AB


Conectores MM

ESCANEA CON TU
SMARTPHONE

BUSCA
VIDEOTUTORIAL

T12AB
ASÍ
HD

VISITA LA OPCIÓN DE

74
P
L
A
N
O

E
S
Q
U
E
M
A

P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Este símbolo a R
de esta resistencia? función? que corresponde E
G
analogRead()
U
_______________ N
_____Ω _______________
_____KΩ _______________ T
A

75
C /*
--------------------------------------
Ó Lectura serial de entrada análoga
D --------------------------------------

I Leer una entrada análoga y mostrar por la pantalla del


G computador (consola serial) el valor luego de girar
el potenciómetro
0
Cosas de Mecatrónica y Tienda de Robótica

*/
D
//------------------------------------
E //Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
P Serial.begin(9600); //Inicia comunicación serial
}
R
O //------------------------------------
//Funcion ciclicla
G //------------------------------------
R void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
A
M //Guardar en una variable entera el valor del potenciómetro 0 a 1024
int valor= analogRead(A0);
A
C //Imprime en la consola serial el valor de la variable
Serial.println(valor);
I
Ó //Retardo para la visualización de datos en la consola
delay(100);
N
}

//Fin programa

T 1– Te invitamos a que conozcas algunos tipos de potenciómetros


I
P
S SoftPot Trimmer Encoder RGB
Sistema touch Alta precisión Giro continuo

2– Para recordar

- Para leer una señal análoga usa: analogRead(numeroPin);


- Para escribir una señal análoga de PWM usa: analogWrite(numeroPin, valor);
- Una entrada análoga va de 0 o 1023
- Una salida análoga de PWM va de 0 o 255

76
EJERCICIOS

1 Este reto es sencillo, pero te va a dar una idea de cómo


hacer grandes cosas escribiendo unas pocas líneas de
código. Como bien lo sabes, la lectura de una señal
análoga te da un valor de 0 a 1023 (si tienes alguna
duda solo revisa el código de la página anterior).

El desafío de este ejercicio consiste en mostrar por la


consola serial un número entre 0 y 10, este número
debe cambiar cuando muevas el potenciómetro. El montaje de este ejercicio
usa el mismo Esquema de conexiones que el expuesto en la página 75. Suge-
rencia… Revisa la función map()

2 Piensa en un número secreto de 0 a 1023 y guárdalo en una


variable entera, haz un programa para que tu amigo deba mo-
ver el potenciómetro, si el número que el va generando
(mostrar por consola serial el valor de la lectura del potenció-
metro) al girar el potenciómetro está 10 números por arriba o
10 números por abajo al número que tu pensaste y confirma con
el pulsador S1 que ese
es el número, el progra-
ma debe mostrar por
consola ―Adivinaste el
número‖ de lo contrario
―Intenta de nuevo‖.
S1
Este caso podría ser un
ejemplo para que lo
apliques a una Caja de
seguridad, para que
guardes mucho dinero ;)

MI CUADERNO DE APUNTES

77
T5 Escritura serial

¿Qué aprendo? Conocimientos previos

 Entrada por consola (teclado)  Señal digital


Variables booleanas  Función digitalWrite() y
Serial.read()
Estado de un LED
 Configuración de una comu-
Escritura serial digital nicación serial

 Polaridad de un LED

Materiales

1 1

Arduino UNO LED Verde

Cable USB Tipo AB

ESCANEA CON TU
SMARTPHONE

BUSCA
VIDEOTUTORIAL

T13AB
ASÍ
HD

VISITA LA OPCIÓN DE

78
P
L
A
N
O

E
S
Q
U
E
M
A

P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Nombra 4 tipos R
de esta resistencia? función? de variables E
G
Serial.read() a._______
U
_______________ b._______ N
_____Ω
_______________ c._______ T
_____KΩ
d._______ A

79
/*
C --------------------------------------
Escritura serial
Ó --------------------------------------
D Consiste en escribir por la pantalla del computador (consola serial)
una letra predeterminada, la primera vez que se escriba está
I un LED se enciende, si se vuelve a escribir por segunda vez
el LED se apaga.
G
Cosas de Mecatrónica y Tienda de Robótica
0
*/

//--------------------------------------------------
D //Declara puertos de entradas y salidas y variables
//--------------------------------------------------
E int led = 13; //Pin donde se encuentra el LED, salida
char leer; //Variable donde se almacena la letra
boolean prendido=false; //Estado LED la primera vez, apagado

//------------------------------------
P //Funcion principal
//------------------------------------
R void setup() // Se ejecuta cada vez que el Arduino se inicia
{
O Serial.begin(9600); //Inicia comunicación serial
pinMode(led, OUTPUT); //Configurar el LED como una salida
G }
R
//------------------------------------
A //Funcion ciclicla
//------------------------------------
M void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
A
//Guardar en una variable el valor de la consola serial
C leer=Serial.read();
I // Si es la letra 'a' y además el LED está apagado
if ( (leer=='a') && (prendido==false) )
Ó {
digitalWrite(led,HIGH); // Enciende el LED
N prendido=true; // Actualiza el estado del LED
}
// Si es la letra 'a' y además el LED está encendido
else if ( (leer=='a') && (prendido==true) )
{
digitalWrite(led,LOW); // Apaga el LED
prendido=false; // Actualiza el estado del LED
}
}
//Fin programa

T 1– Las tablas booleanas son muy útiles para entender la lógica de los programas,
I ¿sabes cuál es la tabla booleana de AND(&&), OR(||) y NOT(!) ?
P
S

80

También podría gustarte