Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CARRIÓN
FACULTAD DE INGENIERÍA INDUSTRIAL, SISTEMAS E INFORMÁTICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
Trabajo de Investigación
Sistemas Embebidos
Presentado por:
Roman Huerta, Bruss Danferd
Rosales Yanac Halford Mackinder
Ciclo:
VII
Docente
Ing. Ernesto Ronceros
Huacho - Perú
2018
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
Índice:
Marco Teórico:................................................................................................................................................ 3
Sensores: ................................................................................................................................................. 3
Pt100: ...................................................................................................................................................... 3
El termistor NTC ...................................................................................................................................... 4
Microcontrolador: ................................................................................................................................... 4
tarjeta de adquisición de datos:.............................................................................................................. 5
1. Mencione y demuestre los diferentes métodos para digitalizar sensores analógicos (resistivos y
ópticos). .......................................................................................................................................................... 6
2. Realice el esquema electrónico para el acondicionamiento y transmisión de un sensor de
temperatura PT100 hacia una PC. Explica a detalle cada una de las etapas. ............................................ 10
3. Realice el esquema para una tarjeta de adquisición de datos. .......................................................... 17
4. Bibliografía:........................................................................................................................................... 27
2
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
Marco Teórico:
Sensores:
Un sensor es todo aquello que tiene una propiedad sensible a una magnitud del medio, y al variar esta
magnitud también varía con cierta intensidad la propiedad, es decir, manifiesta la presencia de dicha
magnitud, y también su medida.
Un sensor en la industria es un objeto capaz de variar una propiedad ante magnitudes físicas o químicas,
llamadas variables de instrumentación, y transformarlas con un transductor en variables eléctricas. Las
variables de instrumentación pueden ser, por ejemplo: intensidad lumínica, temperatura, distancia,
aceleración, inclinación, presión, desplazamiento, fuerza, torsión, humedad, movimiento, pH, etc. Una
magnitud eléctrica puede ser una resistencia eléctrica (como en una RTD), una capacidad eléctrica (como
en un sensor de humedad), una tensión eléctrica (como en un termopar), una corriente eléctrica, etc.
Un sensor se diferencia de un transductor en que el sensor está siempre en contacto con la magnitud que
la condiciona o variable de instrumentación con lo que puede decirse también que es un dispositivo que
aprovecha una de sus propiedades con el fin de adaptar la señal que mide para que la pueda interpretar
otro dispositivo. Por ejemplo, el termómetro de mercurio que aprovecha la propiedad que posee el
mercurio de dilatarse o contraerse por la acción de la temperatura. Un sensor también puede decirse que
es un dispositivo que convierte una forma de energía en otra.
Áreas de aplicación de los sensores:1 Industria automotriz, robótica, industria aeroespacial, medicina,
industria de manufactura, etc.
Los sensores pueden estar conectados a un computador para obtener ventajas como son el acceso a la
toma de valores desde el sensor, una base de datos, etc.
Pt100:
3
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
El termistor NTC
es un tipo de sensor de temperatura muy usado en electrónica, debido a varios factores como su coste y
facilidad de uso. Es por esto que es buena idea conocer cómo se usan y que formas tenemos de
conectarlo al resto del nuestro circuito.
El termistor es un transductor (sensor) que se fabrica con óxidos metálicos. Esto se traduce en que entre
las patillas de un termistor siempre podremos medir una resistencia.
Un termistor está formado por el encapsulado y sus dos terminales, a efectos prácticos, lo podemos
entender como una simple resistencia. Una resistencia que varía su valor en función de la temperatura a
la que se ve sometido. El truco de las NTC está en conocer cómo se produce esa variación respecto de la
temperatura.
La principal diferencia entre estos dos tipos de termistor y la que caracteriza sus nombres es el signo de la
sensibilidad de cada sensor. Es decir, como varia la resistencia al variar la temperatura que intentamos
medir.
Microcontrolador:
Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan a velocidad de reloj con
frecuencias tan bajas como 4 kHz, con un consumo de baja potencia (mW o micro watts). Por lo general,
tendrá la capacidad de mantenerse a la espera de un evento como pulsar un botón o de otra interrupción;
así, el consumo de energía durante el estado de reposo (reloj de la CPU y los periféricos de la mayoría)
puede ser sólo de nano watts, lo que hace que muchos de ellos sean muy adecuados para aplicaciones
con batería de larga duración. Otros microcontroladores pueden servir para roles de rendimiento crítico,
donde sea necesario actuar más como un procesador digital de señal (DSP), con velocidades de reloj y
consumo de energía más altos.
4
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
Cuando es fabricado el microcontrolador, no contiene datos en la memoria ROM. Para que pueda
controlar algún proceso es necesario generar o crear y luego grabar en la EEPROM o equivalente del
microcontrolador algún programa, el cual puede ser escrito en lenguaje ensamblador u otro lenguaje para
microcontroladores; sin embargo, para que el programa pueda ser grabado en la memoria del
microcontrolador, debe ser codificado en sistema numérico hexadecimal que es finalmente el sistema
que hace trabajar al microcontrolador cuando éste es alimentado con el voltaje adecuado y asociado a
dispositivos analógicos y discretos para su funcionamiento.
las cuales sirven para obtener una muestra de una variable física (voltaje, temperatura, nivel de sonido),
es decir, toman una señal de un sensor (sistema analógico) y después la adecuan para transformarla en un
dato que pueda ser reconocido y registrado por un sistema digital, con el fin de que la pueda leer una
computadora y realizar una tarea en específico mediante un s ¿A qué nos referimos con adquisición de
datos?
La adquisición de datos es comúnmente conocida con las siglas DAQ por su significado en inglés, el cual es
“data adquisición”, el cual se refiere al proceso de medir con una computadora un fenómeno físico o
eléctrico. Un sistema DAQ se conforma de 3 elementos principales: el sensor, las tarjetas de adquisición
de datos (hardware) y una computadora (software programable).
Gracias a su conexión con una computadora se pueden obtener muchos beneficios y aprovechar el
rendimiento que esta tiene, tal como la potencia del procesador, la visualización y la conectividad
ofreciendo soluciones más confiables, accesibles y más rentables en comparación con muchos otros
equipos.
Todo el proceso de adquisición de datos comienza con el sensor, el cual es un aparato capaz de registrar
los fenómenos mencionados anteriormente. Por ejemplo, queremos medir la temperatura de una
habitación en la que se van a resguardar alimentos durante un tiempo, es muy importante que el clima se
5
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
mantenga por debajo de los diez grados centígrados, entonces el sensor es el dispositivo que va a poder
captar el frío del lugar.
Las tarjetas de adquisición de datos (hardware) actúan como la interfaz entre una computadora y señales
físicas, es decir, la información recaudada por el sensor se pasa al DAQ, el cual se encarga de transformar
los códigos del mundo real a los códigos digitales, como si se tratara de un intérprete que traduce de un
lenguaje a otro, con el fin de que el sistema digital (es decir, cualquier computadora o dispositivo
electrónico) sea capaz de comprender los signos del analógico.
Las tarjetas de adquisición de datos consisten en tres partes principales: por un lado, está el circuito de
acondicionamiento de señales, después está el convertidor analógico-digital (ADC por sus siglas en inglés)
y, finalmente, el bus del ordenador. software específico.
Los signos o información recaudada por los sensores pueden ser muy inestable para el medidor, ya que,
por ejemplo, si se está queriendo registrar el voltaje de una planta generadora de electricidad, éste puede
ser de una intensidad demasiado variable, es por ello que se necesita de un circuito de acondicionamiento
de señales, el cual ajusta la información recibida del exterior con el fin de que pueda ser leída
correctamente por el convertidor analógico-digital.
El circuito tiene la capacidad de amplificar la intensidad o magnitud de la señal, por otro lado, también es
capaz de disminuirla con el fin de que la potencia sea menor, asimismo, es capaz de realizar una especie
de filtrado, en el que elimina los picos más altos de la señal y se queda con los más estables, finalmente,
puede actuar como aislante de las perturbaciones externas que afectan el registro de la señal.
6
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
METODOS DE DIGITALIZACION:
1. Un método es usar el CI ADC0804: Convertidor análogo digital de 8 bits.
7
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
Usaremos un sensor de temperatura llamado NTC, este sensor cuando aumenta su temperatura
su resistencia disminuye, o viceversa.
Lo bueno de usar un microcontrolador es que es más fácil ejecutar una orden en la temperatura
que nosotros deseamos.
En el ejemplo: Cuando la temperatura esta entre el rango de 35 hasta 50 activa un led. Y si es que
no está entre ese rango esta encendido otro led. Además se podrá observar la temperatura actual
en un LCD.
8
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
SIMULACION:
#include <lcd.c>
#include <math.h>
void main(){
float vt,rt,temp,y;
int16 value;
trisa=1;
porta=1,
trisc=0;
portc=0;
lcd_init();
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
while(true){
set_adc_channel(0);
value=read_adc();
vt = 5.0 * value / 1024.0;
9
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
10
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
Para trabajar con el sensor PT100, primero debemos ver la tabla de cambios de resistencias al variar la
temperatura.
𝑉 =𝐼∗𝑅
5𝑉 = 𝐼(1𝐾 + 100)
𝐼 = 4.5𝑚𝐴
𝑉𝑠𝑎𝑙1 = 4.5𝑚 ∗ 100 = 0.45𝑣
CASO 02: Cuando el sensor esta en 130.9 ohm (80°C).
𝑉 =𝐼∗𝑅
5𝑉 = 𝐼(1𝐾 + 130.9)
𝐼 = 4.42𝑚𝐴
𝑉𝑠𝑎𝑙1 = 4.42𝑚 ∗ 130.9 = 0.58𝑣
11
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
𝑉 =𝐼∗𝑅
5𝑉 = 𝐼(1𝐾 + 123.24)
𝐼 = 4.45𝑚𝐴
𝑉𝑠𝑎𝑙1 = 4.45𝑚𝐴 ∗ 123.24 = 0.548 ≅ 0.55
12
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
13
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
EL EJEMPLO QUE HIZE CON EL SENSOR PT100 ES, QUE NOS MUESTRE LA TEMPERATURA DE 0°C
HASTA 80°C EN UN LCD, Y TAMBIEN PODEMOS VERL EN GRAFICA MEDIANTE EL SOFTWARE
MATALB, LE AÑADI UNA ACCION, QUE CUANDO LA TEMPERATURA ESTEE ENTRE 50°C Y 60°C
ENCIENDE UN MOTOR(led), CASO CONTRARIO SE APAGARA EL MOTOR(led).
Simulación:
14
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
#include <16f877a.h>
#device adc=10
#fuses xt
#use delay(clock=4M)
//********************
#byte trisa=0x85
#byte porta=0x05
#byte trisb=0x86
#byte portb=0x06
#byte trisc=0x87
#byte portc=0x07
#byte trisd=0x88
#byte portd=0x08
#use RS232(BAUD=9600,XMIT=PIN_C6,RCV=PIN_C7,BITS=8,STOP=1,PARITY=N)
//******************
#include <lcd.c>
//************************
void main(){
float volt,temp,bin;
trisb=0;
portb=0;
trisa=1;
porta=0;
lcd_init();
setup_adc_ports(AN0);
setup_adc(adc_clock_internal);
while (true){
set_adc_channel(0);
bin=read_adc();
volt=(bin*5.0)/1024.0;
temp=volt/0.05;
delay_ms(100);
printf("%4.1F\r\n",bin);
lcd_gotoxy(1,2);
printf(lcd_putc,"TEMP = %2.2f c",temp);
lcd_gotoxy(1,1);
printf(lcd_putc,"VOLT = %2.2f v",volt);
if((temp>50.0) && (temp<60.0)){
portb=1;
}
else{
portb=0;
}
}
15
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
Código para la visualización de cambio de temperatura obtenido por el PT100 hecho en MATLAB:
function PT100Comunicacion(muestras)
temp=0;
delete(instrfind({'port'},{'COM2'}));
puerto= serial('COM2');
puerto.BaudRate=9600;
fopen(puerto);
contador=1;
figure('Name','CAMBIO DE TEMPERATURA OBTENIDA POR EL PT100');
title('PT100-SENSOR DE TEMPERATURA');
xlabel('Numero de muestras');
ylabel('TEMPERATURA (C°)');
grid off;
hold on;
while (contador<=muestras)
ylim([0 80]);
xlim([0 contador+10]);
volt = fscanf(puerto,'%d')';
temp(contador)=(volt*5)/51.2;
plot(temp);
drawnow
contador=contador+1;
end
fclose(puerto);
delete(puerto);
clear all
end
16
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
a. AI:
I. 4 señales de 4 a 20mA
Bueno primero debemos hallar los valores de las resistencias que vamos a utilizar. Para este
circuito debemos aplicar dos casos.
CASO 01: Cuando el potenciómetro toma el valor de 0 ohm. En este caso necesito 20mA.
𝑉 = 𝑙𝑎 𝑓𝑢𝑒𝑛𝑡𝑒 𝑑𝑒 𝑎𝑙𝑖𝑚𝑒𝑛𝑡𝑎𝑐𝑖ó𝑛.
𝑉 =𝐼∗𝑅
10 = 𝐈(𝑹𝟏 + 𝐏𝐎𝐓)
𝟏𝟎 = 𝟐𝟎𝒎𝑨(𝑹𝟏 + 𝟎)
𝟏𝟎 = 𝟐𝟎𝒎𝑨𝑹𝟏
𝑹𝟏 = 𝟓𝟎𝟎
Obtenemos que R1 será de 500 ohm.
CASO 02: Cuando el potenciómetro toma el valor total de ohmios. En este caso necesito 4mA.
𝟏𝟎 = 𝟒𝒎𝑨(𝑹𝟏 + 𝐏𝐎𝐓)
𝟏𝟎 = (𝟒𝒎𝑨 ∗ 𝟓𝟎𝟎) + (𝟒𝐦𝐀 ∗ 𝐏𝐎𝐓)
𝟏𝟎 − 𝟐 = 𝟒𝐦𝐀 ∗ 𝐏𝐎𝐓
𝟖
= 𝐏𝐎𝐓
𝟒𝒎𝑨
𝐏𝐎𝐓 = 𝟐𝐊
Obtenemos que el potenciómetro debe ser de 2k ohm.
17
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
Podemos observar que cuando el potenciómetro esta en 0 ohm nos da 2volt y 4mA.
𝟒𝐦𝐀 ↔ 𝟐𝐕
Ahora cuando el potenciómetro esta en 2k ohm nos da 10volt y 20mA.
𝟐𝟎𝐦𝐀 ↔ 𝟏𝟎𝐕
Pero el microcontrolador soporta como máximo 5volt. Entonces lo que hicimos fue hacer un
divisor de tensión para generar 5voltios cuando nos entrega 10volt, y generar 1voltio cuando nos
entrega 2voltios.
𝑹𝟐
𝟓𝐕 = 𝟏𝟎𝐕 ( )
𝑹𝟏 + 𝑹𝟐
𝟓𝐕𝑹𝟏 + 𝟓𝐕𝑹𝟐 = 𝟏𝟎𝑽𝑹𝟐
𝟓𝐕𝑹𝟏 + 𝟓𝐕𝑹𝟐 = 𝟏𝟎𝐕𝑹𝟐
𝟓𝐕𝑹𝟏 = 𝟓𝑹𝟐
𝑹𝟏
= 𝟏 ↔ 𝑹𝟏 = 𝑹𝟐
𝑹𝟐
Bueno aplicando thevenin, nos dice que la relación de las resistencias debe ser de 1, nosotros
colocamos dos resistencias de 50k, para no perder corriente.
18
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
Aplicamos thevenin:
𝑅2
5V = 10V ( )
𝑅1 + 𝑅2
5V ∗ 𝑅1 + 5V ∗ 𝑅2 = 10𝑉 ∗ 𝑅2
5V ∗ 𝑅1 + 5V ∗ 𝑅2 = 10V ∗ 𝑅2
5V ∗ 𝑅1 = 5 ∗ 𝑅2
𝑅1
= 1 ↔ 𝑅1 = 𝑅2
𝑅2
En este caso colocamos resistencias de 10k.
b.DI
i 4 señales de 0-24 volt:
Este diseño consta de un 78l24 este regulador nos entrega un voltaje estable de 24volt.
pero el microcontrolador como máximo soporta 5volt lo que hicimos fue hacer un divisor
de tensión.
𝑅12
5 = 24( )
𝑅11 + 𝑅12
5𝑅1 + 5𝑅2 = 24𝑅2
5𝑅1 = 19𝑅2
𝑅1
= 3.8
𝑅2
R1 y R2 deben tener una relación de 3.8.
19
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
20
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
c. DO:
21
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
d.A0
i 4 señales de 0-24 volt:
En este diseño usamos un operacional en modo amplificador con una ganancia de 2. Si la salida
del microcontrolador es de casi 5voltios, esta etapa eleva la salida hasta los 10voltios. La salida
puede variar dependiendo la entrada. Podemos usar PWM para variar el voltaje de salida, pero
como máximo serán 10voltios.
𝑅41
𝐺 =1+
𝑅42
𝑅41
2=1+
𝑅42
𝑅41
1=
𝑅42
e.COMUNICACIONES:
USB: RS232:
22
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
ESQUEMA PROTEUS:
PROGRAMA EN CCS:
#include <18f4550.h>
#device adc=10
#fuses xt, NOUSBDIV
#use delay(clock=4M)
#byte trisa=0xf92
#byte porta=0xf80
#byte trise=0xf96
#byte porte=0xf84
#byte trisb=0xf93
#byte portb=0xf81
#bit C1=portb.0
#bit C2=portb.1
#bit C3=portb.2
#bit C4=portb.3
#bit R1=portb.4
#bit R2=portb.5
#bit R3=portb.6
#bit R4=portb.7
23
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
#include <lcd.c>
void main(){
int16 bin1;
int16 bin2;
float amp1,amp;
float volt2;
float volta2;
//********************
int16 bin3;
int16 bin4;
float amp2,amp3;
float volt3;
float volta3;
//********************
int16 bin5;
int16 bin6;
float amp4,amp5;
float volt4;
float volta4;
//********************
int16 bin7;
int16 bin8;
float amp6,amp7;
float volt5;
float volta5;
trisb=0;
portb=0;
setup_port_A(all_analog);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
lcd_gotoxy(1,1);
printf(lcd_putc,"SISTEMAS" );
lcd_gotoxy(1,2);
printf(lcd_putc,"EMBEBIDOS");
delay_ms(500);
printf(lcd_putc,"\f");
//********************
lcd_gotoxy(1,1);
printf(lcd_putc,"ENCENDIDO DE " );
lcd_gotoxy(1,2);
printf(lcd_putc,"COLECTOR Y RELE");
portb=1;
delay_ms(100);
portb=2;
delay_ms(100);
portb=4;
24
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
delay_ms(100);
portb=8;
delay_ms(100);
portb=16;
delay_ms(100);
portb=32;
delay_ms(100);
portb=64;
delay_ms(100);
portb=128;
delay_ms(100);
printf(lcd_putc,"\f");
while(true){
//**************************************
set_adc_channel(0);
bin1=read_adc();
amp1=(bin1*5)/1024.0;
amp=amp1/0.25;
delay_ms(25);
lcd_gotoxy(1,1);
printf(lcd_putc,"A1=%1.2fmA",amp);
set_adc_channel(1);
bin2=read_adc();
volt2=(bin2*5)/1024.0;
volta2=volt2/0.5;
delay_ms(25);
lcd_gotoxy(1,2);
printf(lcd_putc,"V1=%1.2fV",volta2);
//**************************************
set_adc_channel(2);
bin3=read_adc();
amp2=(bin3*5)/1024.0;
amp3=amp2/0.25;
delay_ms(25);
lcd_gotoxy(12,1);
printf(lcd_putc,"A2=%1.2fmA",amp3);
set_adc_channel(3);
bin4=read_adc();
volt3=(bin4*5)/1024.0;
volta3=volt3/0.5;
delay_ms(25);
lcd_gotoxy(12,2);
printf(lcd_putc,"V2=%1.2fV",volta3);
//*************************************
set_adc_channel(4);
bin5=read_adc();
25
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
amp4=(bin5*5)/1024.0;
amp5=amp4/0.25;
delay_ms(25);
lcd_gotoxy(21,1);
printf(lcd_putc,"A3=%1.2fmA",amp5);
set_adc_channel(5);
bin6=read_adc();
volt4=(bin6*5)/1024.0;
volta4=volt4/0.5;
delay_ms(25);
lcd_gotoxy(21,2);
printf(lcd_putc,"V3=%1.2fV",volta4);
//*************************************
set_adc_channel(6);
bin7=read_adc();
amp6=(bin7*5)/1024.0;
amp7=amp6/0.25;
delay_ms(25);
lcd_gotoxy(32,1);
printf(lcd_putc,"A4=%1.2fmA",amp7);
set_adc_channel(7);
bin8=read_adc();
volt5=(bin8*5)/1024.0;
volta5=volt5/0.5;
delay_ms(25);
lcd_gotoxy(32,2);
printf(lcd_putc,"V4=%1.2fV",volta5);
}
}
26
“Universidad Nacional José Faustino Sánchez Carrión” Facultad de Ingeniería industrial, Sistemas e Informática
4. Bibliografía:
https://es.wikipedia.org/wiki/Microcontrolador
https://es.wikipedia.org/wiki/Sensor
http://todoelectrodo.blogspot.com/2013/02/pic-18f4550.html
https://www.rinconingenieril.es/como-usar-un-termistor-ntc/
https://www.makerelectronico.com/convertidor-analogo-digital-adc-pic18f4550/
https://es.slideshare.net/juandanielhernandezramirez1/tarjeta-de-adquisicin-de-datos
27