Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
LABORATORIO 03
TEMA:
DISEÑO Y SIMULACION DE MEDICIÓN DE TEMPERATURA CON UN
DSPIC33FJ32MC202
CURSO:
MICROCONTROLADORES Y SISTEMAS EMBEBIDOS
DOCENTE:
ING. ASTOCONDOR VILLAR, JACOB
ESTUDIANTE:
2021-N
I. OBJETIVOS
¿QUE ES UN TERMISTOR?
R F=R 0 e
B
( T T )
−
0
R0 =Resistencia de referencia
Una señal analógica es una magnitud que puede tomar cualquier valor dentro
de un intervalo, esta característica es muy importante a la hora de trabajar con
sensores, debido a que estos entregan valores de tensión para reflejar la
variable física que está midiendo.
void ADC_Init(void){
//************configuracion del adc******************
AD1CON2bits.VCFG=0b000; // el adc se alimenta con AVDD=3.6v ,AVSS=0
AD1PCFGLbits.PCFG0=0; //AN0 COMO ANALOGICO
AD1CHS0bits.CH0SA=0b0000; //0
AD1CHS0bits.CH0NA=1; //AN1 NEGATIVO
AD1CON3bits.ADCS=0b01001; //ADCS=9 SELECCION DE FRECUENCIA DE RELOJ
ADC
AD1CON1bits.ASAM=0; //MUESTREO FORMA MANUAL, muestreo comienza cuando
se establece el bit SAMP
AD1CON1bits.AD12B=0; // Seleccionar la resolucion con 10 bits o 12 bits
AD1CON1bits.SSRC=0b000; //ELEGIR FUENTE DE CONVERSION MANUAL
//Borrar bit de muestra finaliza el muestreo y comienza la conversión
AD1CON1bits.ADON=1; //HABILITAR ADC
}
int main(){
XLCDInit(); //Inicia la pantalla LCD
ADC_Init(); //Inicia el ADC
WriteCmdXLCD(CLEAR_XLCD); //Limpia la pantalla
// LCD al reiniciar
XLCDgotoXY(0,0);
putrsXLCD(" PROYECTO 3");
__delay_ms(1000);
WriteCmdXLCD(CLEAR_XLCD);
XLCDgotoXY(0,0);
putrsXLCD(" TEMPERATURA:");
while(1){
AD1CON1bits.SAMP = 1; //Inicio del muestreo
__delay_ms(500); //Tiempo de muestreo
AD1CON1bits.SAMP = 0; //Finalizar el muestreo
while(!AD1CON1bits.DONE);
AD1CON1bits.DONE = 0;
adc_result = ADC1BUF0;
vm = (float)adc_result*3.6/4096; //0 ~ 4095 (palabra de 12 bits)
rntc = rAux/((vcc/vm)-1);
temperaturaK = beta/(log(rntc/r0)+(beta/temp0));
temperaturaC = temperaturaK - 273.15;
__delay_ms(10);
sprintf(adc_vector,"%.2f",temperaturaC);
printf("%.2f\n",temperaturaC);
XLCDgotoXY(1,6);
putrsXLCD(adc_vector);
XLCDgotoXY(1,12);
putrsXLCD("C");
}
return 0;
}
V. DIAGRAMA EN PROTEUS
VI.
CONCLUSIONES
VII. BILIOGRAFIA
- https://www.google.com/search?
q=dspic30f4013+mplab&oq=DSPIC&aqs=chrome.2.69i57j69i59j35i39j0l
2j69i60j69i61j69i60.3143j0j7&sourceid=chrome&ie=UTF-8