Foros
Nuevos mensajes
Buscar en foros
Novedades
Nuevos mensajes
Nuevos recursos
Última actividad
Recursos
Últimas revisiones
Buscar recursos
Acceder
Registrarse
Novedades
Buscar
Buscar
Buscar sólo en títulos
De:
Nuevos mensajes
Buscar en foros
Menú
Acceder
Registrarse
Install the app
Instalar
Principiantes
Cuestiones Elementales de Electrónica
Conflicto entre dos Sensores Usando el Pic 18F4550
JavaScript está desactivado. Para una mejor experiencia, por favor, activa JavaScript en el navegador antes de continuar.
Estás usando un navegador obsoleto. No se pueden mostrar este u otros sitios web correctamente.
Se debe actualizar o usar un
navegador alternativo
.
Responder al tema
Mensaje
[QUOTE="moraga10, post: 839059, member: 297225"] Tengo estos dos Sensores cada uno si me trabaja individual pero cuando ambos los manipulo el programa ya no hace lo que yo esperaria el programa es de dos sensores de temperatura el primero se activa a 3 Grados luego apaga el led a los 24 y se empieza a disminuir esta, despues se activa el otro en 24 para que empiece a sensar el otro es un ciclo. [code]#include "PICPLAY_18F4550.h" // Definiciones para el programa #define condensador PIN_C1 #define luz_lcd Pin_B3 #define alarma Pin_B2 #define boton_up input(PIN_B0) // Boton que incrementa la temperatura deseada por le usuario #define boton_down input(PIN_B1) // Boton que decrementa la temperatura deseada por el usuario #define presionado 0 // los botones al presionarse dan 0 #define no_presionado 1 // los botones al no presionarse dan 1 #define limite_evaporador 2.9 #define limite_inferior 17.0 #define limite_superior 30.0 //**************************************************************************************** #include "picplay_lcd.c" // libreria para LCD #include "picplay_adc.c" //float temperatura_central=24.0; // temperatura_central deseada inicialmente de 24.0°C float t_ambiente,t_evaporador; // temperatura medida tambien como float float temperatura_central; void pitido(void); // declaramos funcion pitido() para hacer sonido con buzzer void main(void){ lcd_init(); // inicializa el lcd on(luz_lcd); // enciende luz del lcd (PIN_B3) adc_init(ADC_REF_EXTERNAL); // Voltaje de referencia externo, lo ajustaremos a 2.56V mediante POT2 de la tarjeta (RA3/Vref+) temperatura_central=24.0; //inicializa temperatura central while(true){ // LAZO INFINITO t_ambiente=read_adc10(0); // leemos el canal 0 del ADC en formato 10 bits t_evaporador=read_adc10(1); // leemos el canal 1 del ADC en formato 10 bits t_ambiente=t_ambiente*0.25; // convertimos a °C, (en esta ocacion los decimales no se truncan porque "temperatura" es float) t_evaporador=t_evaporador*0.25; // convertimos a °C, (en esta ocacion los decimales no se truncan porque "temperatura" es float) lcd_gotoxy(9,1); printf(lcd_putc,"T1=%3.2f",t_ambiente); // imprime temperatura en LCD en formato de punto flotante lcd_gotoxy(1,2); printf(lcd_putc,"T2=%3.2f",t_evaporador ); // imprime temperatura en LCD en formato de punto flotante lcd_gotoxy(1,1); printf(lcd_putc,"TD=%3.2f",temperatura_central); // imprime temperatura deseada en LCD en formato de punto flotante if (t_evaporador >= temperatura_central) { t_evaporador = 0; } if((t_evaporador>=limite_evaporador)&& (t_evaporador<temperatura_central)) { on(condensador ); } else if (t_evaporador>=temperatura_central) { off(condensador ); } if((t_ambiente>temperatura_central)) { on(condensador ); } else if ((t_evaporador<=limite_evaporador)) { off(condensador ); } else if ((t_evaporador<temperatura_central)&& (t_ambiente>temperatura_central)) { off(condensador ); } if(boton_up==presionado){ temperatura_central+=1; pitido(); delay_ms(100); } if(boton_down==presionado){ temperatura_central-=1; pitido(); delay_ms(200); } } // cierra lazo infinito } // cierra main void pitido(void){ on(alarma); delay_ms(50); off(alarma); } ...[/code] [/QUOTE]
Verificación
Responder
Principiantes
Cuestiones Elementales de Electrónica
Conflicto entre dos Sensores Usando el Pic 18F4550
Arriba