L5 4 Ard GLab4-ADC

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

Guía de Laboratorio N°4

Obteniendo señales externas con el ADC


1 Objetivos
• Reconocer el principio de operación de un conversor analógico-digital (ADC).
• Entender la correspondencia entre los valores de un ADC y las señales físicas reales.
• Leer variaciones de tensión a través del ADC incorporado en el Arduino.

2 Fundamento Teórico
2.1. ADC (Conversores Analógico-Digitales). Son dispositivos capaces de traducir señales analógicas (adoptan
cualquier valor y se encuentran en la naturaleza) en señales digitales (solo adoptan valores específicos) las cuales
son empleadas por sistemas de procesamiento y computadoras [1].

2.2. Tipos de ADC. Existen diferentes tipos, entre los cuales se encuentran los ADCs de aproximaciones sucesivas
(SAR), ADCs Sigma-Delta, Flash y Pipeline, cada uno de ellos con ciertas características y aplicaciones
específicas. En el caso de los microcontroladores, lo más común es que cuenten con ADCs Sigma-Delta [1].

2.3. Características del ADC. Los ADCs tiene dos características principales: la frecuencia de muestreo y la
resolución en bits. La primera determina la máxima frecuencia de la señal que puede capturar sin pérdida de
datos, mientras que la segunda define la máxima cantidad de valores diferentes que puede asumir la señal digital
resultante. En el caso, del ADC del Arduino UNO, su microcontrolador cuenta con un ADC de 10 bits de
resolución [2] con una frecuencia de muestro aproximada de10kHz [3].

2.4. Potenciómetro. Es un dispositivo electrónico que tiene la propiedad de variar su resistencia a partir de un
control mecánico externo, usualmente en forma de una perilla. Existen dos tipos principales: lineales y
logartímicos, los cuales están relacionados con la proporción de cambio en la resistencia, respecto al cambio en el
giro de la perilla de control. Tiene tres terminales, de las cuales los extremos definen el valor máximo mientras
que la terminal del centro corresponde a la terminal variable [4].

3 Equipos y materiales
• Tarjetas de desarrollo
o Tarjeta Arduino UNO (Ver Figura1 (a))
o Tarjeta de expansión (diseñada para el curso, ver Figura 1(b))
• Componentes electrónicos
o Potenciómetro (incluido en la tarjeta de expansión)

1
(a) Tarjeta Arduino (b) Tarjeta de expansión
Figura 2. Diagrama de conexiones, experiencia variación de tensión con potenciómetro
Fuente: Elaboración propia Figura 1. Tarjetas de desarrollo
Fuente: (a) Arduino UNO Rev 3 (https://store.arduino.cc/usa/arduino-uno-rev3),
(b) Adaptado de Domótica e IoT (R. Acosta y R. Yauri, 2018)

Tabla 1. Tabla de conexión entre el Arduino UNO y la tarjeta de expansión

Recursos o periféricos J15 J14 J2 J11 J7 J13 PinOUT


LED rojo 5V_IZQ C A4
Pulsador (N. O.) 5V_IZQ C A3
Potenciómetro 10Kohm 5V_IZQ C_DER A0
LED RGB 5V_IZQ NC NC C A5, A4, A3
Sensor DHT22 5V_IZQ A1
Sensor DS18B20 5V_IZQ C A2
Sensor UV 5V_IZQ C_IZQ A0
OLED 5V_IZQ NC NC NC A4(Señal), A5(CK)
C: Conexión con Jumper NC: No conexión de Jumper
C_DER: Conexión con jumper lado derecho C_IZQ: Conexión con jumper lado izquierdo

Fuente: Adaptado de Domótica e IoT (R. Acosta y R. Yauri, 2018)

o LED RGB (incluido en la tarjeta de expansión)


• Accesorios
o Cable de conexión USB-B a USB-A
• Computador personal

Para las conexiónes entre los componentes electrónicos y las tarjetas Arduino y de expansión, se puede verificar en Tabla1.

4 Experiencias
En este laboratorio se realizará dos experiencias:

4.1. Experiencia 1: Variación de tensión eléctrica con un


potenciómetro

2
A través de esta experiencia se aprenderá a leer la información de las variaciones de tensión ocasionadas por la variación de
posición de un potenciómetro dentro de un circuito eléctrico, gracias al ADC incorporado en el Arduino.

4.1.1. Diagrama de conexiones


La conexión requerida para esta experiencia se puede apreciar en la Figura 2, donde se observa la conexión de alimentación a
5V a través del jumper J15, así como la conexión al potenciómetro a través del jumper J14, cuando se encuentran conectados
los pines de la derecha.

4.1.2. Programa en el microcontrolador


Los programas empleados para esta experiencia se presentan a continuación:

Código 1. Programa para imprimir tensión de potenciómetro


/*
* Ejemplo para leer ADC de potenciometro
* Referencia: https://www.arduino.cc/en/Tutorial/AnalogInOutSerial
*/

int sensorPin = A0; // Pin conectado al potenciómetro


int sensorValue = 0; // variable que almacena el valor del sensor

void setup() {
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(sensorPin);
float voltageValue = sensorValue * (5.0 / 1023.0); // convierte a tension
Serial.print("ADC value: ");
Serial.print(sensorValue);
Serial.print("\t Voltage value: ");
Serial.println(voltageValue);
delay(10);
}

Código 2. Programa para mostrar gráfica de tensión de potenciómetro


/*
* Ejemplo para leer ADC de potenciometro y graficar resultados
* Referencia: https://www.arduino.cc/en/Tutorial/AnalogInOutSerial
*/

int sensorPin = A0; // Pin conectado al potenciómetro


int sensorValue = 0; // variable que almacena el valor del sensor

void setup() {
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(sensorPin);
float voltageValue = sensorValue * (5.0 / 1023.0); // convierte a tension
Serial.print("5.0");
Serial.print(",");
Serial.print(sensorValue);
Serial.print(",");
Serial.println("0.0");
delay(10);
}

4.1.3. Procedimiento
1. Abrir el código de ejemplo en Archivo>Proyecto>GLab4-ADC>4-1_ADCPotenciometro
2. Seleccionar la tarjeta en Herramientas>Placa>Arduino/Genuino UNO.

3
Figura 3. Diagrama de conexiones, experiencia control LED con potenciómetro
Fuente: Elaboración propia

3. Seleccionar el puerto en Herramientas>Puerto>COMx Arduino/Genuino UNO, donde “x” es el número del


puerto reconocido por Windows.
4. Subir el programa haciendo clic en (Subir).
5. Abrir el monitor serial desde Herramientas>Monitor Serie.
6. Observar los mensajes que aparecen en la consola cuando se mueve la perilla del potenciómetro.
7. Abrir el código de ejemplo en Archivo>Proyecto>GLab4-ADC>4-2_ADCPotenciometroPlot
8. Seleccionar la tarjeta en Herramientas>Placa>Arduino/Genuino UNO.
9. Seleccionar el puerto en Herramientas>Puerto>COMx Arduino/Genuino UNO, donde “x” es el número del
puerto reconocido por Windows.
10. Subir el programa haciendo clic en (Subir).
11. Abrir el monitor serial desde Herramientas>Serial Plotter.
12. Observar las señales generadas en la nueva venta abierta así como su variación cuando se mueve la perilla del
potenciómetro.

4.2. Experiencia 2: Control de LED con potenciómetro


A través de esta experiencia se aprenderá a leer la información de las variaciones de tensión ocasionadas por la variación de
posición de un potenciómetro dentro de un circuito eléctrico, gracias al ADC incorporado en el Arduino y con esta variación
controlar el tiempo de encendido y apagado de un LED o su intensidad.

4.2.1. Diagrama de conexiones


La conexión requerida se puede apreciar en la Figura 3, donde se observa la conexión a la alimentación de 5V, a través del
jumper J15, la conexión del potenciómetro a través del jumper J14 y la conexión al LED RGB a través del jumper J13. Notar
en este caso, que los jumpers J11 y J2 correspondientes al LED rojo y pulsador, respectivamente, deben estar desconectados.

4.2.2. Programa en el microcontrolador


Los programas empleados para esta experiencia se presentan a continuación:

4
Código 3. Programa para variar los tiempos de activación del LED de acuerdo a valor de potenciómetro
/*
* Ejemplo para controlar tiempos con entrada analogica
* Basado en AnalogInput, extraido de https://www.arduino.cc/en/Tutorial/AnalogInput
*/
const int sensorPin = A0; // selecciona el pin del potenciometro
const int ledPin = A3; // selecciona el pin del LED
int sensorValue = 0; // variable que almacena el valor del potenciometro

void setup() {
// declara el pin del LED como salida (OUTPUT):
pinMode(ledPin, OUTPUT);
}

void loop() {
// lee los mensajes del sensor:
sensorValue = analogRead(sensorPin);
// enciende el LED
digitalWrite(ledPin, HIGH);
// detiene el programa por <sensorvalue> milisegundos:
delay(sensorValue);
// apaga el LED:
digitalWrite(ledPin, LOW);
// detiene el programa por <sensorValue> milisegundos:
delay(sensorValue);
}

Código 4. Programa para controlar intensidad mediante señal del potenciómetro


/*
* Ejemplo para controlar brillo con variacion de potenciometro
* Basado en AnalogInOutSerial, extraido de https://www.arduino.cc/en/Tutorial/AnalogInOutSerial
*/
const int sensorPin = A0; // entrada analogica del potenciometro
const int ledPin = A3; // salida analogica del LED

int sensorValue = 0; // valor leido del potenciometro


int outputValue = 0; // valor de salida al PWM

void setup() {
// Inicializa la comunicacion serial
Serial.begin(9600);
}

void loop() {
// lee el valor analogico:
sensorValue = analogRead(sensorPin);
// mapea el valor a la salida analogica:
outputValue = map(sensorValue, 0, 1023, 0, 255);
// cambia el valor de salida:
analogWrite(analogOutPin, outputValue);

// imprime la salida al monitor serial:


Serial.print("sensor = ");
Serial.print(sensorValue);
Serial.print("\t output = ");
Serial.println(outputValue);

// espera 2 milisegundos antes de la siguiente conversion


// para que el ADC se estabilice despues de ultima lectura
delay(2);
}

4.2.3. Procedimiento
1. Abrir el código de ejemplo en Archivo>Proyecto>GLab4-ADC>4-3_ADCControlTiempos
2. Seleccionar la tarjeta en Herramientas>Placa>Arduino/Genuino UNO.
3. Seleccionar el puerto en Herramientas>Puerto>COMx Arduino/Genuino UNO, donde “x” es el número del
puerto reconocido por Windows.

5
4. Subir el programa haciendo clic en (Subir).
5. Observar el comportamiento del LED cuando se mueve la perilla del potenciómetro.
6. Abrir el código de ejemplo en Archivo>Proyecto>GLab4-ADC>4-2_ADCControlIntensidad
7. Seleccionar la tarjeta en Herramientas>Placa>Arduino/Genuino UNO.
8. Seleccionar el puerto en Herramientas>Puerto>COMx Arduino/Genuino UNO, donde “x” es el número del
puerto reconocido por Windows.
9. Subir el programa haciendo clic en (Subir).
10. Abrir el monitor serial desde Herramientas>Monitor Serie.
11. Observar el comportamiento del LED cuando se mueve la perilla del potenciómetro.

5 Ejercicios propuestos
5.1. Empleando la configuración de la Experiencia 2, empleando el programa 4-4_ADCControlIntensidad y
tomando como referencia el programa 4-2_ADCPotenciometroPlot graficar los valores asignados al LED.
5.2. Empleando la configuración de la Experiencia 2, empleando el programa 4-4_ADCControlIntensidad, variar la
intensidad de los colores rojo y azul, en forma opuesta que el color verde. Es decir, que mientras el rojo y el azul
aumentan su intensidad, el verde disminuye y viceversa.
5.3. Para el ejercicio anterior, agregar una gráfica de variación de los valores asignados a las componentes rojo, verde y
azul, del LED RGB.

Referencias
[1] W. Kester, D. Sheingold y J. Bryant, «Fundamentals of Sampled Data Systems,» de The Data Conversion HandBook,
Oxford. UK, Newnes, Elsevier, 2005, pp. 57-58.
[2] Arduino, «Analog Input Pins,» [En línea]. Available: https://www.arduino.cc/en/Tutorial/AnalogInputPins. [Último
acceso: 09 2019].
[3] Arduino, «analogRead(),» [En línea]. Available: https://www.arduino.cc/reference/en/language/functions/analog-
io/analogread/. [Último acceso: 09 2019].
[4] Andrew Singmin, «Potentiometers,» de Beginning Digital Electronics through Projects, United States of America,
Newnes, 2001, pp. 11-12.

También podría gustarte