Hice un control de iluminación y ahora quiero mejorarlo...

miren resulta que hace tiempo en una clase de microcontroladores hice un control de iluminación y ahora me pidieron que lo presente para una clase de inducción para los de nuevo ingreso, quiero mejorarlo y a la hora de ver el programa le active las resistencias pull-ups eso quedo bien, y luego quería agregar mas niveles por así decirlo para que el sensor que utilizé los identifique y entonces enciendan o se apaguen los leds, según yo lo requiera, la duda es, como voy a variar dichos niveles, pues en mi programa puse conv <=400, conv>400 && >=800, conv>800 && conv<=1023, como le hago para poner mas niveles, ahí dejo mi programa para guiarlos en mi duda, funciona correctamente pero como llevo tiempo sin hacer este tipo de programas ahora no recuerdo como cambiar eso. (a que se refieren los números 400,800,1023)


Código:
#include <16f887.h>
#device adc = 10 // especifica convertidor  de 10 bits 
#fuses  INTRC_IO, NOWDT,PUT,NOMCLR,NOBROWNOUT,NOLVP,NOCPD,NOPROTECT
#use delay(clock=4M)

Void main(){
 long conv;
 float valor;
   setup_adc_ports(sAN0);//canal analogico 0 
   setup_adc(ADC_CLOCK_INTERNAL); // FUENTE DE RELOJ
set_tris_d(0x00);
port_b_pullups(true);
     
     while(1){
       set_adc_channel(0); //habilita el canal 
        delay_us(20);           //tiempo de retardo
         conv = read_adc();  // lee el dato
			valor=conv*5.0/1023.0;

 

  		if (conv<=400) {     
		 output_b(0x00);
        output_low(PIN_B5); 
		output_low(PIN_B6);
		output_low(PIN_B7);

}
		if (conv>400 && conv<=800) { 
		output_b(0x00);     
        output_high(PIN_B5); 
		output_high(PIN_B7);
		output_low(PIN_B6);
}
		if (conv>800 && conv<=1023) {
		 output_b(0x00);      
        output_high(PIN_B5);
		output_high(PIN_B6);
		output_high(PIN_B7);

}
}
}
 
Última edición por un moderador:
Atrás
Arriba