sábado, 15 de maio de 2010

Código Fonte

Nesse semestre optamos por utilizar o PIC16F628A.



int motordaesteira(){

while(true){
if(input(pin_a1)==0){
output_low(pin_b4);
//fazer esperar tudo
return 0;
}
output_high(pin_b4);//mandar para o motor da esteira nivel logico alto ate o sensor detectar lata
if((input(pin_a0))== 0 ){
delay_ms (5000);//espera 5 segundos
output_low(pin_b4);
return 1;
}
}
}

int motordocompactador(){
//por pwm

if(input(pin_a1)==0){
output_low(pin_b3);//parar o compactador
output_low(pin_a3);//desliga o compactador;
//fazer esperar tudo
return 0;
}

output_high(pin_b3);//mandar valor logico alto para compactador descer
delay_ms (10000);//valor a definir
output_low(pin_b3);//parar o compactador
delay_ms (2000);//2 segundos
output_high(pin_a3);//mandar valor logico alto para compactador subir
delay_ms (10000);//valor a definir
output_low(pin_a3);//desliga o compactador;
return 2;

}


void main()
{
int aux=4;

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_16,77,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab

// TODO: USER CODE!!



while(true){//do pic

//liga motor da esteira
aux= motordaesteira();

if(aux==1){
//mandar compactador atuar
aux= motordocompactador();
}

if(aux==0){
//foi aberto a porta
//esperar ate que a mesma seja fechada
while((input(pin_a1))==0){
}
}
//compactou, retirou, necessario voltar ao normal
aux=4;
}

}

Nenhum comentário:

Postar um comentário