You are on page 1of 6

Instrumentación y control en Sistemas de

Climatización
Trabajo Dirigido #6
Programación de Microcontrolador Arduino
Lectura de una Entrada Analógica
Fecha: Elaboró: Validó
Marco Soto Olguín

Aprendizaje Esperado
2.2.- Realiza el procedimiento de conexión, montaje y diagramación de un sistema de control
en un proceso productivo automatizado.

Criterios de Evaluación
2.2.1.- Conecta instrumentos, componentes y accesorios, a partir de la estructura de un programa de
control automático.
2.2.2.- Comprueba el funcionamiento de los sistemas de control, mediante la ejecución de un
programa de control automático.
2.2.3.- Realiza los ajustes y configuraciones finales, de acuerdo al resultado de las pruebas ejecutadas
y en función de la correcta operación del programa de control automático.
2.2.4.- Elabora un informe explicativo del diseño de control y diagramas de conexión correspondientes,
de acuerdo a la automatización de un proceso productivo.
Requisitos Previos

1. Lectura Libro Arduino


Información de consulta
 Libro Arduino
Datos del estudiante
Integrantes:

Sección:

Fecha de entrega:
Contextualización:

LECTURA DE VALORES ANALÓGICOS (POTENCIÓMETROS):

Un potenciómetro es una resistencia variable controlable por su patilla central,


pero ¿cuál es esta señal analógica que recibe la placa Arduino proveniente de
él? Esta señal es el voltaje existente entre la patilla central y el extremo del
potenciómetro conectado a tierra. Por pura y simple Ley de Ohm, al variar la
resistencia existente entre la patilla central y sus extremos, varía también la
caída de potencial entre estos puntos. Concretamente, cuando entre la patilla
central y el extremo del potenciómetro conectado a la alimentación haya una
resistencia cercana a cero (y por tanto la resistencia entre la patilla central y el
otro extremo, el conectado a tierra, sea máxima), el voltaje leído por la entrada
analógica será cercano a 5 V. Cuando la patilla central esté en el otro lado,
tocando al extremo conectado a tierra, la lectura será cercana a 0 V.

La placa Arduino dispone de un conversor analógico-digital que solo permite


utilizar valores entre 0 y 1023, por lo que el valor máximo del voltaje leído a
través del potenciómetro (es decir, los 5 V) es convertido siempre al valor
numérico 1023 (y el mínimo, lógicamente a 0). Los valores intermedios son
convertidos proporcionalmente según la cantidad de voltaje recibido por el pin.
Ejemplo 6.20: Empezaremos por un circuito muy sencillo para ver en la práctica
todo lo que se acaba de explicar. Consta tan solo de un potenciómetro y nada
más, conectado tal como se ha dicho. El pin de entrada analógico escogido ha
sido el nº 0.

Si ejecutamos el siguiente sketch y


movemos el potenciómetro, veremos por
el “Serial monitor” las lecturas realizadas
a través del pin analógico 0, que no son
más que valores entre 0 y 1023.
Notar que no se ha utilizado la función
pinMode() como hasta ahora porque los
pines-hembra analógicos de la placa
Arduino solo pueden ser de entrada.
int valorPot=0;

void setup(){
Serial.begin(9600);
}

void loop(){
valorPot=analogRead(0);
Serial.println(valorPot);
delay(100);
}
De todas formas, tendría más gracia observar el valor analógico
correspondiente a esa lectura. Es decir, ya sabemos que si vemos un 1023
este valor se corresponde con 5 V (esto es solo porque suponemos que
estamos alimentando el potenciómetro con 5 V), pero ¿y si vemos un 584?
¿Cuántos voltios se reciben en ese caso por la entrada analógica?
Para saberlo, simplemente debemos aplicar una regla de proporcionalidad:
multiplicar el valor leído por 5/1023.

Código para Sketch


int valorPot=0;
float voltajePot=0;

void setup(){
Serial.begin(9600);
}

void loop(){
valorPot=analogRead(2);
voltajePot=valorPot*(5.0/1023.0);
Serial.println(voltajePot);
delay(100);
}

En este código convierte el valor de valorPot en un valor de voltaje.


Fijarse que los valores obtenidos de analogRead() van desde 0 a 1023 y los
valores que queremos van desde 0 a 5.
Podríamos pensar en utilizar la función map(), pero esta solo devuelve valores
enteros, por lo que no nos sirve. Afortunadamente, como en este caso particular
los mínimos de ambos rangos son 0, en vez de map() podemos escribir una
simple regla de proporcionalidad.
Hay que tener en cuenta el detalle de haber especificado los valores numéricos
de la fórmula como de tipo “float” (añadiéndoles el 0 decimal) para que el
resultado obtenido sea de tipo “float” también y no se trunque.
Actividad N°1 – Realice la conexión de un potenciómetro a una
entrada analógica de la tarjeta Arduino y mostrar el resultado en el
monitor serial
La Actividad finaliza después de:

 Cargue el programa en su ARDUINO.


 Realice la conexión de los componentes en la placa ARDUINO, según se
especifica.
 Energice su placa desde su NoteBook con el cable de datos conectado
 Abra desde el menú herramientas el monitor Serial
 Modifique los valores de su potenciómetro y observe el voltaje que
indica el monitor.

Leer voltaje analógico


Este ejemplo muestra cómo leer una entrada analógica en el pin analógico 0,
convertir los valores de analogRead () en voltaje e imprimirlo en el monitor
serie del software Arduino (IDE).

Hardware requerido

 Arduino o Genuino Board


 Potenciómetro de 10 k ohmios

Circuito

Conecte los tres cables del potenciómetro a su


tarjeta microcontroladora ARDUINO:

 El primero va a tierra desde uno de los


pasadores externos del potenciómetro.
 El segundo pasa a 5 voltios del otro pasador
externo del potenciómetro.
 El tercero va desde el pin central del
potenciómetro a la entrada analógica 0.

Al girar el eje del potenciómetro, cambia la


cantidad de resistencia del potenciómetro.
Esto cambia la tensión en el pin central.
El voltaje en el pin central se acerca a 5 voltios cuando la resistencia entre el
centro y el lado conectado a 5 voltios estan cercanos.
Cuando las resistencias se invierten, la tensión en el pin central se acerca a 0
voltios, o tierra.

Este voltaje es el voltaje analógico que está


leyendo como entrada.
El microcontrolador de la placa tiene un circuito
interno denominado convertidor analógico
digital o ADC que lee esta tensión variable y la
convierte en un número entre 0 y 1023.
Cuando el eje gira completamente en una
dirección, hay 0 voltios que van al pin, y el valor
de entrada es 0. Cuando el eje se gira
completamente en la dirección opuesta, hay 5
voltios que van al pin y el valor de entrada es
1023.
En el medio, analogRead () devuelve un
número entre 0 y 1023 que es proporcional a la
cantidad de voltaje que se aplica al pin.

Código para el Sketch

void setup() {

Serial.begin(9600); // inicializa comunicación serial a 9600 bits por


segundo:
}

void loop() {

int sensorValue = analogRead(A0); // lectura del valor analógico a


través del A/D

float voltage = sensorValue * (5.0 / 1023.0); // convierte el valor


analógico en voltaje

Serial.println(voltage); // imprime el valor en el monitor serial


}
Actividad N°2 – comparando nivel analógico

Ahora se puede utilizar el código de lectura de un valor analógico para


realizar una comparación y con ello la activación o desactivación de un
pin digital de salida.
Lo primero será declarar una variabe global entero con nombre propio
y asignarle un número que corresponde al pin de salida. Luego, al final
del programa utilizará una sentencia “si, sino” (If, Else) para realizar
la comparación y seguida activación o desactivación del pin de salida.

Código Sketch:

int LED1 =5;


int sensorValue = 0;
float voltage = 0;

void setup() {

Serial.begin(9600); // inicializa comunicación serial a 9600 bits por segundo:


}

void loop() {

sensorValue = analogRead(A0); // lectura del valor analógico a través del


A/D

voltage = sensorValue * (5.0 / 1023.0); // convierte el valor analógico en


voltaje

Serial.println(voltage); // imprime el valor en el monitor serial

if (voltage > 2.5 && voltage < 3.2){

digitalWrite(LED1,HIGH);

}
Else {

digitalWrite(LED1,LOW);

You might also like