Práctica 5. Lectura de señales analógicas a través de un potenciómetro.

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPin on PinterestPrint this page

5.1  Objetivo General:

Trabajar con señales analógicas mediante la medición de la tensión en los terminales de un potenciómetro.  Mostrar el valor de la tensión medida por el puerto serie (monitor).

5.2  Materiales y Métodos:

  1. Una tarjeta Arduino Uno-R3 o Arduino Mega 2560.
  2. Un cable USB impresora.
  3. Un computador.
  4. Cables para el montaje del circuito.
  5. Tarjeta Protoboard.
  6. Un Potenciómetro rotatorio.

Un potenciómetro es un resistor cuyo valor de resistencia es variable. De esta manera, indirectamente, se puede controlar la intensidad de corriente que fluye por un circuito si se conecta en paralelo, o la diferencia de potencial al conectarlo en serie. Normalmente, los potenciómetros se utilizan en circuitos de poca corriente. Para circuitos de corrientes mayores, se utilizan los reóstatos, que pueden disipar más potencia.

Figura 1. Potenciómetro Rotatorio (Imagen de www. wikipedia.org)

5.3  Montaje de la práctica:

Con el fin de comprender el funcionamiento del circuito, así como verificar todas las conexiones existentes, se realiza en primer lugar el montaje del circuito en el programa Fritzing.

El Potenciómetro como ya sabemos es una resistencia variable, donde pasa una señal la cual va estar leyéndose dependiendo de qué posición se encuentre la resistencia. Si el potenciómetro se encuentra en su mínima posición leerá un voltaje, pero si se encuentra en su máxima posición leerá otro voltaje. En Arduino esa lectura de voltajes es un número entero que varía entre cero (0) y 1023.

Figura 2. Montaje del circuito en el programa Fritzing.

Para la práctica se utiliza un potenciómetro con 3 terminales (patas), donde una de ellas es el positivo que será conectado por el cable azul en el pin de 5V, otra es el negativo que será conectado por el cable rojo a tierra (ground)  y por último el pin del medio va conectado por el cable verde, la cual es la señal que va a leer la resistencia, una señal analógica  que a su vez va conectada al pin A5.

Figura 3 - P5

Figura 3. Potenciómetro que se utilizó en el laboratorio para la realización de la práctica
Luego que se tiene conectado el circuito en el programa Fritzing, se desarrolla del programa en el IDE de Arduino.

5.4 Código IDE de Arduino:

– Se debe seleccionar en la IDE de Arduino el tipo de tarjeta con el que vamos a trabajar siendo Arduino Uno-R3 o Arduino Mega 2560.

– Se selecciona el Puerto Serial, es decir el puerto USB se va a conectar la tarjeta Arduino con el computador.
– Se realiza el código:

  • Inicialmente se describe el programa que estamos desarrollando, por tanto se asigna un nombre al programa, esto se hace empleando el símbolo //. Además, // permite colocar comentarios a lo largo del código para poder facilitar la comprensión de la instrucción que realiza cada línea.
  • Se deben declarar las variables globales que serán utilizadas en el programa. En primer lugar se declara una constante de tipo entero llamada PotPin y se le asigna el pin A5. Luego se declara también como variable de tipo entero, sabemos que el potenciómetro va desde cero (0) a 1023 en valores enteros y lo llamaremos PotVal. Por último, se declara una variable angle de tipo entero, ya que se va a utilizar un potenciómetro rotatorio cuya posición viene dada entre 0 a 180 grados.
  • Seguidamente, se realiza la declaración de las configuraciones de las variables o la inicialización de la comunicación serie dentro de los corchetes que delimitan el bloque de programa void setup (). Para la realización de esta práctica, se trabaja con la comunicación serie, es decir la comunicación de datos con el computador. Para abrir el puerto serie, se utiliza el comando Serial.begin(9600); entre paréntesis se indica la velocidad de comunicación con el computador (baud rate), esta generalmente es 9600 bits por segundo, aunque otras tasas pueden ser soportadas.
  • Luego de inicializar la comunicación serie, se procede con el bloque de programación que se encuentra ubicado en el interior de los corchetes del comando void loop() el cual hace que la tarea se ejecute continuamente leyendo las entradas y generando las salidas. En las primeras instrucciones del bloque de programa se quiere leer la señal enviada por el Potenciómetro al pin A5 y mostrar a través del monitor la señal captada. Para realizar estas acciones primero se necesita declarar una variable, esta será llamada PotVal. Para ejecutar la lectura de la señal se realiza mediante el comando analogRead(PotPin). Posteriormente, se emplea la función Serial.print(); para enseñar el valor medido a través del monitor, en el interior de los paréntesis se debe colocar el valor. Si se quieren escribir palabras o frases estas deben ir delimitadas mediante los comillas, es decir Serial.print(“Pot Val:  ”), y luego para que pueda mostrar el valor de la señal debemos leer la variable, es decir Serial.print(PotVal).
  • Luego se quiere mostrar en el monitor el valor del ángulo de la posición donde encuentra el potenciómetro. Para eso se emplea una rutina o función prediseñada en arduino para realizar el “mapeo” (cambio de escala), es decir, la tarjeta  lee la señal de cero (0) a 1023;  y el resultado debe estar referido a un ángulo de cero (0) hasta 179.  Para ello, se utiliza el valor guardado en la variable PotVal la cual está a una escala de cero (0) a 1023 y queremos que lo lleve a una escala de cero (0) a 179. Se mapea y nos da un resultado número entero ya que hemos declarado todas estas variables en entero.  El comando angle=map(PotVal,0,1023,0,179) permite hacer el mapeo. Se utiliza nuevamente el comando Serial.print(). Si se quieren escribir palabras o frases estas deben ir delimitadas mediante los comillas, es decir Serial.print(“angle:    ”), y luego para que pueda mostrar el valor de la señal que contiene la variable, es decir Serial.print(angle). Por ultimo, se da un delay con un valor de 200 milisegundos, ya que si no se realiza este último paso, el valor de señal y del ángulo del potenciómetro no podrán ser visualizados.
  • Finalmente se debe verificar que al final de cada instrucción se haya colocado el respectivo punto y coma, de lo contrario habrán errores a la hora de compilar.
  • Una vez compilado el programa se ejecuta el mismo.

NOTA: Para quel IDE de Arduino pueda entender los comandos es necesario que al final de cada instrucción se coloque punto y coma (;).

El siguiente algoritmo resume los procedimientos anteriormente señalados:

// Uso de pontenciómetro y señales analógicas
int const PotPin=A5;
int PotVal;
int angle;
void setup(){
Serial.begin(9600);
}
void loop (){
PotVal=analogRead(PotPin);
Serial.print ("PotVal: ");
Serial.print (PotVal);
angle=map(PotVal,0,1023,0,179);
Serial.print ("angle= ");
Serial.println (angle);
delay (200);
}

Algoritmo 1 Código de Lectura de un valor de tensión en un pin analógico a través de un Potenciómetro.

Si se quieren ver los resultados en pantalla se puede hacer click en el boton de activar puerto serial, ver Figura 4.

Figura 4. Botón para activar el Puerto Serial.

Desarrollo del algoritmo 1 en el simulador https//123d.circuits.io:

https://circuits.io/circuits/2890016-practica-5-laboratorio-mecabot

5.4 Conclusión:

En la práctica se trabajó con los pines de entrada analógica de la tarjeta Arduino. Se estudió el funcionamiento de un potenciómetro que nos permite variar la tensión entre dos de sus terminales. El IDE del Arduino nos proporcionó una herramienta para enviar y visualizar los datos que se manejan a través del puerto Serial. Dicha herramienta se conoce como Monitor Serial y se puede encontrar en el menú de herramientas, en la opción “Monitor Serial”. Así mismo para el desarrollo y la fabricación de un sistema mecatrónico, un potenciómetro es importante ya que él nos da la capacidad de relacionar una movimientos deseados en una parte del sistema (por ejemplo, motor) con la posición del potenciómetro.

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPin on PinterestPrint this page