0% encontró este documento útil (0 votos)
12 vistas18 páginas

05 Arduino

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1/ 18

Empezando con Arduino UNO - Guía práctica de iniciación

Actividad 5: Lectura de un potenciómetro


En las dos actividades anteriores el dispositivo de entrada (pulsador) solo nos podía dar dos
tipos de información: Pulsado o No pulsado (LOW o HIGH). En esta actividad
usaremos un dispositivo de entrada (sensor analógico) capaz de proporcionar
múltiples valores. El objetivo de esta actividad es además de leer la información del
sensor (potenciómetro), que aprendamos a mostrarla en una pequeña ventana en el
ordenador.

5.1 El circuito eléctrico


Este circuito es uno de los más simples que vamos a realizar. Aún así, nos ofrecerá
muchas posibilidades de cara a la programación, pudiendo servir como base para
completar o modificar ejercicios más complejos. Éste es el esquema a
montar y la lista de componentes.

Materiales:

(UND
Un cable USB del tipo A - B

Una placa Arduino UNO

Una placa de conexiones de 400


contactos

Un potenciómetro circular de 10K

Tres cables de prototipado M-M


Actividad 5: Lectura de un potenciómetro
67

Empezando con Arduino UNO-Guía práctica de iniciación

Por simple que sea el montaje, lo realizaremos con la placa Arduino desconectada del
ordenador.

A modo de referencia, a continuación se muestra el circuito eléctrico que se corresponde


con el montaje de esta actividad:

P1
10K
68

ΕΛ
Ε
RESET

RESETZ

AREF

ioref
AS
INIA

DO/RX

D1/TX

D2

A1
222
D3 PWM

D4

D5 PWM

D6 PWM

A3
Arduino Uno
(Rev3)
D7

D8

A4/SDA
J

A5/SCL
D9 PWM

D10 PWM/SS

D11 PWM/MOSI

D12/MISO

D13/SCK
GND

FIRE
Diagrama eléctrico del circuito de la actividad 5

Precaución: Ten cuidado al realizar las conexiones. Sí ponemos el cursor (terminal


central) del potenciómetro a 5V o GND puede producir un
cortocircuito al llevar el mando a alguno de los extremos.

Actividad 5: Lectura de un potenciómetro


BTY

Empezando con Arduino UNO - Guía práctica de iniciación

5.2 Antes de nada, definir el problema


La primera parte del programa parece sencilla, solo hay que leer el valor que nos
proporcione el potenciómetro. La cuestión es, ¿que hacemos con esa medida?,
¿cómo podemos visualizarla? Los ordenadores habituales (la placa Arduino UNO
también es como un pequeño ordenador) disponen, o se les puede conectar, algún
tipo de pantalla donde poder mostrar información.

Placa adaptadora (Shield) que proporciona una pantalla


LCD de texto y un pequeño teclado.

Si bien a una placa Arduino UNO se le puede conectar un pequeño display


(pantalla), de texto o gráfica, que nos permita mostrar alguna información, en esta
actividad vamos a prescindir de este display. El objetivo es conseguir que los datos
se muestren en el propio ordenador de trabajo, el que está conectado a la placa
Arduino UNO. Un poco más adelante, en esta misma actividad, veremos como se
hace, solo adelantar que es realmente sencillo.

Actividad 5: Lectura de un potenciómetro


69

Empezando con Arduino UNO – Guía práctica de iniciación

Esta característica, la de mostrar en el ordenador información que resida en la placa


Arduino UNO, es de gran utilidad para múltiples aplicaciones, incluso para
comprobar el correcto funcionamiento de una parte de un programa
(depuración).

5.3 El diagrama de flujo El


diagrama de flujo de esta actividad es
realmente sencillo, pero esto no sirve de
excusa para que omitamos su realización.
Recuerda que los diagramas de flujo
simplifican la vida del programador.
En la figura de la derecha se muestra su diseño.

Algo que resulta chocante res- pecto a


los anteriores diagramas de flujo, es
que en este caso no hay
configuración de pines.
Efectivamente, la única configu- ración
que tenemos es la comu- nicación entre
la placa y el orde- nador (más adelante
explicare- mos en que consiste esto).

Cuando usamos entradas analó- gicas con las


funciones de Ardui- no no es necesario
hacer configu- ración alguna. La propia
función de medida (lectura analógica)
ya se encarga de hacer los ajustes
pertinentes cada vez que se eje-
cuta.

Inicio

Configuración
comunicación

Lee entrada Analógica del potenciómetro

Envía medida

Espera

70
Actividad 5; Lectura de un potenciómetro www

Empezando con Arduino UNO - Guía práctica de iniciación


.........
ZIN

Una de las grandes ventajas del uso de las funciones de


Arduino es que no nos tenemos que preocupar por los, en
ocasiones, complejos procesos de configuración del
microcontrolador.

Eso sí, si lo que buscamos es la máxima eficiencia, tendremos que realizar esta
configuración por nuestra cuenta, aunque podemos usar
como base el código interno de las funciones de Arduino.

¡Una de las grandes ventajas del código abierto!

Te habrás fijado que hemos añadido una pequeña espera una vez que enviamos la medida.
El motivo es hacer que el programa tenga un comportamiento acorde con su utilidad. Como
ya hemos comentado, el procesador de la placa Arduino es bastante rápido: puede hacer
un montón de operaciones en un corto espacio de tiempo (hasta 16 millones de
operaciones sencillas por segundo).

Si el objetivo final del programa es mostrar una información en la pantalla de ordenador,


de nada sirve visualizar esa información a una velocidad más rápida que la que
cualquier persona puede percibir. La pequeña espera hace que el programa se ejecute
a una velocidad humanamente adecuada.

La parte de un programa que se comunica con las personas se llama interface de


usuario, y tiene que adecuarse a las necesidades del mismo.

pantalla. Cualquier cambio que


En nuestro caso estamos mostrando información en la
ocurra en un tiempo menor de 25ms no será percibido por el
ojo humano.

Actividad 5: Lectura de un potenciómetro


71

Empezando con Arduino UNO - Guía práctica de iniciación


5.4 Escribe el programa
A continuación se muestra el programa que hace funcionar esta actividad, como ya es costumbre
lo copiamos en el IDE de Arduino. Más adelante veremos algunos detalles de su
funcionamiento.

// Empezando con Arduino UNO

// Actividad 5: Lectura de un potenciómetro

// Leemos el valor entregado por un potenciómetro conectado a


una
// entrada analógica y enviamos dicha lectura por el puerto USB

// para su visualización en el ordenador.

//

// www.complubot.com

// Asociamos el potenciómetro con una entrada analógica

#define POT @

// Definimos la velocidad de comunicación entre el ordenador y


// la placa Arduino

#define VELOCIDAD COM 9600


+

72
//Definimos una variable, valor, para almacenar la medida
int valor;

void setup()

}
// Inicializamos la comunicación a la velocidad seleccionada

Serial.begin (VELOCIDAD_COM);

Actividad 5: Lectura de un potenciómetro

Empezando con Arduino UNO – Guía práctica de iniciación

void loop()

// Almacenamos la lectura de la entrada analógica

// en la variable

valor = analogRead (POT);

// Enviamos la informacion al ordenador

Serial.print("La medida es: ");


Serial.println(valor);

}
// Esperamos un poco para no enviar mas medidas

// de las necesarias

delay(100);

5.5 Cómo se lee una entrada analógica


Una de las novedades de esta actividad es que vamos a leer una señal conectada a una
entrada analógica. Como vimos en las actividades anteriores las entradas digitales sólo
pueden tomar dos estados o valores. Por contra, las entradas analógicas pueden
tomar múltiples valores. El número de valores distintos que puede distinguir una
entrada analógica está determinado por el número de bits del convertidor
Analógico/Digital que se encuentra en el interior del microcontrolador de la
placa Arduino UNO.

En este caso concreto se trata de un convertidor Analógico/Digital de 10 bits por lo


que el número de valores está determinado por la siguiente expresión:

Número de valores = 2 número


de bits_ -1024

Es decir que podemos tener 1024 medidas distintas, de forma que la medida de la
entrada analógica será un valor comprendido entre 0 y 1023.

Actividad 5: Lectura de un potenciómetro


73

Empezando con Arduino UNO - Guía práctica de iniciación

El potenciómetro que tenemos conectado a la entrada analógica funciona como un


divisor resistivo variable. De esta manera al mover el eje del potenciómetro
aplicaremos un voltaje que variará entre 0 y 5V

Importante: A una entrada analógica de una placa Arduino UNO nunca


se puede aplicar un voltaje superior a 5V. Si queremos medir
tensiones por encima de este valor, tendremos que poner un
divisor de tensión adicional entre la medida y la entrada
analógica. Posteriormente, en el programa, corregiremos el
factor de escala aplicado por el divisor.

Para calcular el voltaje que corresponde a cada lectura del convertidor


Analógico/Digital podemos aplicar esta expresión:

V
Entrada
=
V
Max
•Lectura
1024

Así, por ejemplo, si la medida es de 422, el voltaje que está siendo aplicado en ese
momento será de:
X

Entrada
5V

1024
422=2,06 V

Para poder operar/almacenar números decimales tenemos que


usar variables definidas como float, es decir "coma flotante"

74
Actividad 5: Lectura de un potenciómetro
KISTAN
...............
Empezando con Arduino UNO - Guía práctica de iniciación

5.6 Ejecutemos el programa


Una vez cargado el programa en la placa Arduino UNO es de esperar que el programa
comience a funcionar como ocurría en las actividades anteriores. Y así es, aunque
aparentemente no ocurra nada. ¿O sí?

5.7 La comunicación entre la placa Arduino y el


ordenador

proceso de carga de
Vamos a prestar especial atención a dos pequeños LEDs de color amarillo que hay en la
placa Arduino UNO, cerca del conector USB. Igual el lector se ha dado cuenta que
estos LEDs se encienden y parpadean durante el los programas.

Efectivamente, estos LEDs monitorizan las comunicaciones entre el ordenador y la placa


Arduino UNO:

LED TX: comunicación placa Arduino UNO → Ordenador.

LED RX: comunicación Ordenador



placa Arduino UNO.

Una vez cargado el programa de esta actividad en la placa Arduino UNO, el LED TX se
queda iluminado de forma permanente. Eso quiere decir que la placa Arduino UNO
está enviando información al ordenador aunque de momento no podamos verla.

Para poder visualizar estos datos, hay que abrir una ventana en el ordenador que se
comporta como un pequeño terminal de texto. Para ello tenemos un botón en el menú rápido
de funciones del IDE de Arduino. Es el que se encuentra a la derecha del todo:

Monitor Serial 0-

Al pulsarlo se nos abre la ventana del "Monitor Serial y en ella se mostrarán las
medidas de la entrada analógica donde está conectado el potenciómetro, tal y como se
aprecia en la siguiente imagen.

Actividad 5: Lectura de un potenciómetro


75

75
76
Empezando con Arduino UNO - Guía práctica de iniciación

COM4

La mediada es: 728 La mediada


es: 728

La mediada es: 728

La mediada es: 728

La mediada es: 728


La mediada es: 728
La mediada es: 728
La mediada es: 728
La mediada es: 728

La mediada es: 728


La mediada es: 728

La mediada es: 728

La mediada es: 728

La mediada es: 728

La mediada es: 728

Desplazamiento automático
No hay fin de línea.
9600 baud
Enviar
TO.

En la parte inferior derecha de la ventana se muestra la velocidad de comunicación: 9600


baudios. Este número tiene que coincidir con el valor que pusimos en la función
Serial.begin en el programa.

El número que aparece como medida, 728, representa el valor obtenido por el
convertidor Analógico/Digital (recordamos que dicho valor tiene que estar en el rango de 0
a 1023). Si aplicamos la fórmula que hemos visto anteriormente podemos calcular el
valor de la tensión que hay en la entrada analógica:

V
Entrada
5V

1024
-728=3,55 V

Fíjate en el programa: hemos usado la función Serial.print


para seguir escribiendo en la misma línea y Serial.println
para escribir y cambiar de línea.

Actividad 5: Lectura de un potenciómetro


磁迢
*B...

Empezando con Arduino UNO - Guía práctica de iniciación

Al mover el eje del potenciómetro veremos que el valor que muestra la ventana varía, y
que lo hará justamente entre los límites de 0 a 1023.

Para continuar trabajando con el programa, vamos a cerrar esta ventana.

5.8 Operaciones en coma flotante


Las operaciones en coma flotante nos permiten operar con números decimales. Para que esto
funcione correctamente todos los elementos involucrados en las operaciones (datos y
variables) tienen que estar expresados en el formato adecuado.

Por ejemplo, vamos a ver como podemos calcular el voltaje de una medida analógica
mediante un programa para Arduino. En este ejemplo solo vamos a poner las partes
representativas, no el programa completo.

En primer lugar necesitamos una variable donde guardar el resultado:

float valor voltios;

A continuación vamos a realizar la medida y el cálculo en la misma operación:

valor_voltios-
(5.0/1024.0)*analogRead(POT);

Al poner 5.0 y 1024.0 (el "" es el delimitador decimal en este lenguaje de programación),
estamos diciendo al programa que trate estos dos valores como números decimales, así el
resultado de la operación será un número decimal.

5.9 Ejercicios propuestos


Vamos a practicar un poco lo que hemos visto con los siguientes ejercicios.

Ejercicio 5.1 Lectura del potenciómetro en voltios

Vamos a modificar el programa de esta actividad. El objetivo es mostrar en la


ventana del ordenador el valor en voltios de la entrada analógica donde está
conectado el potenciómetro. Algo así como:

"La medida es: 2.37 V"

Actividad 5: Lectura de un potenciómetro


77

Empezando con Arduino UNO-Guía práctica de iniciación

Ejercicio 5.2 Lectura del potenciómetro con indicación digital Tomando como
base la Actividad 5, vamos a modificar el circuito y el programa. En primer lugar
añadimos un LED (con su resistencia) a una salida digital. A continuación
cambiaremos el programa para que el LED se encienda cuando la lectura de la
entrada analógica supere un determinado valor: 500, por ejemplo.

f
Todos los esquemas de este libro los
hemos realizado mediante un programa, de descarga
gratuita, que se llama Fritzing (www.fritzing.org). Tu
también puedes usarlo para documentar los ejercicios que te
hemos propuesto hacer.

sketch.zz - Fritzing - Vista de Protoboard (placa de


Prototipos)]
Un

Archivo Editar Parte


f Welcome
Vista Ventana Routing.
Ayuda
Protoboard
- Esquema

Liste

78
fritzing
PCB

6.493 0.036 in 12276

Entorno de trabajo Fritzing

Actividad 5: Lectura de un potenciómetro


Partes

Core Parts
CORE Basic

MINE ***

Input

Inspector
Breadboard1
V.4

Breadboard

Placement

focation
-0.052 0.000
rotation 0.0

Locked

Propiedades

Fami
breadboard

tamaño
ful+
GX

También podría gustarte