UNIVERSIDAD DE GUADALAJARA Práctica 8

UNIVERSIDAD DE GUADALAJARA
CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS
División de Electrónica y Computación | Departamento de Electrónica
I7292 - SISTEMAS DE MEDICIÓN
Práctica 8 - Medición diferencial
En esta práctica se utilizará el puente de Wheatstone para hacer la medición diferencial. Por tal motivo,
será necesario que estudie el funcionamiento de éste para entender mejor esta práctica.
1. Comprobar funcionamiento del puente de Wheatstone.
Implementar en el protoboard el diagrama de la Figura 1 bajo la siguiente condición:
R1 = R2 = R3 = R4
Medir la diferencia de potencial entre los puntos A y B. Tomar nota de la medición obtenida.
2. PWM con Arduino.
Utilice la función de PWM de Arduino, para variar la intensidad de un LED color rojo en función
del giro de un potenciómetro (puede hacer variar la intensidad de forma distinta, no necesariamente
con un potenciómetro).
Mida la resistencia máxima y mı́nima del LDR utilizando el LED con PWM, aislándolo de la luz
ambiente.
Utilice la hoja de datos del LDR para conocer el cambio resistivo.
3. Variación diferencial con puente de Wheatstone.
Implementar en el protoboard el diagrama de la Figura 2 utilizando valores de resistencias que
correspondan a las variaciones de resistencia del LDR.
Balancear el circuito con la referencia más baja, es decir, 0 % de intensidad (LED apagado).
Encender el LED con intensidad máxima correspondiente al 100 %. Registrar la diferencia de potencial
entre los puntos A y B y tomar nota de la medición obtenida.
Calibrar el sistema a 0 % cuando el LED está apagado y 100 % cuando está encendido.
Realizar mediciones controlando el valor del PWM para variar la intensidad del LED.
Figura 1: Puente de Wheatstone balanceado.
Figura 2: Puente de Wheatstone con LDR.
4. Comunicación bidireccional Scilab- Arduino.
Por último, implementé una interfase que interactué de forma bidireccional Scilab-Arduino, es decir,
que a través de Scilab le indique a Arduino cuando quiere la medición.
La información tiene que ser guardada y graficada de 0 % a 100 % y de 100 % a 0 %. No es necesario
que grafique en tiempo real.
Utilice el siguiente código de Arduino y Scilab, como base para implementar lo que se pide. En
conjunto ambos códigos cumplen la función de prender y apagar el LED de Arduino mediante una
instrucción de Scilab, correspondiente a 1 o 0, respectivamente.
Código de Arduino
1
2
3
4
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
}
// Se habilita el puerto 13 como puerto de salida.
// Se habilita y configura el puerto de comunicacion serial.
5
6
7
8
9
10
11
12
13
14
15
16
void loop() {
if (Serial.available()) {
int dato = Serial.read()-48;
if (dato == 1) {
digitalWrite(13,HIGH);
}
else if (dato == 0) {
digitalWrite(13,LOW);
}
}
}
//
//
//
//
Si en puerto de comunicacion tiene informacion, entra a la condicion.
Registra en la variable dato, lo que recibe del puerto serie (ascii) menos 48.
Si dato es igual a 1 entra a la condicion.
Enciende el LED que esta en el puerto digital 13.
// Si dato es igual a 0 entra a la condicion.
// Apaga el LED que esta en el puerto digital 13.
Código de Scilab
1
2
clear;
clc;
// Borra todas las variables
// Limpia la consola de Scilab
3
4
i=0;
5
6
7
8
9
10
11
12
13
14
15
16
17
18
h=openserial(’/dev/ttyACM0’,"9600,n,8,2");
// Configuramos el puerto
mprintf(’Presiona 0 para apagar el LED \n’)
mprintf(’Presiona 1 para encender el LED \n’) // Muestra este texto en la consola \n indica un salto de linea.
mprintf(’Presiona 9 para salir \n’)
while i == 0
dout = input("Off(0)/On(1)/Exit(9): ")
// Registra en la variable dout, lo que ingrese desde el teclado.
if (dout ~= 9) then
// Si dout es diferente que 9, entra a la condicional del if.
writeserial(h,string(dout));
// Envia dout como un caracter a traves del puerto serie.
else
i=i+1;
// Si no se cumple la condicion del if, se aumenta el valor de i para salga del while.
end
end
closeserial(h)
// Se cierra el puerto de comunicacion serial.