Amigos gostaria de uma ajuda num projeto que estou tentando fazer.

se puder ajuda agradeço muito e simples so que não consigo procurei ajuda mais nada.

entao estou tentando fazer um misturador com dois sensor.

quando aperto o botão ele funciona tudo automatico:

apertando o botão ele fica uma bomba e esta bomba vai para quando o sensor um liga da desliga a bomba um e liga a bomba 2 e quando o sensor dois liga ele desliga a bomba 2 e liga um motor que vai misturar os líquidos dai pronto.

mais estou com 2 problema com o código fonte:

vou posta se for possível me ajuda:

#include<16F877A.h>

#fuses HS,NOWDT,NOPROTECT,NOLVP

#use delay(clock=8000000)

#include "LCD8B.c"

         main(){

 

     lcd_ini();//inicializa o display

     delay_ms(2000);//aguarda inicialização

     lcd_pos_xy(1,1);//posiciona o cursor na 1 linha

     printf(lcd_escreve," Projeto tcc    ");

     lcd_pos_xy(1,2);//posiciona o crsor na 2 linha

     printf(lcd_escreve," Misturador     ");

     delay_ms(4000);//aguarda inicialização

     lcd_pos_xy(1,1);//posiciona o cursor na 1 linha

     printf(lcd_escreve,"Apertar B1 para");

     lcd_pos_xy(1,2);//posiciona o cursor na 2 linha

     printf(lcd_escreve,"ligar misturador");

     DELAY_MS(3000);

\\ primeiro problema: ele ta funcionando mais ele vai direto não espera eu aperta o botão 1

Ele executando tudo sozinho  e preciso aperta pra ele funciona como posso melhorar isso?

   

  

   while (true){

     lcd_pos_xy(1,1);//posiciona o cursor na 1 linha

     printf(lcd_escreve,"   Misturador   ");

    lcd_pos_xy(1,2);//posiciona o cursor na 2 linha

    printf(lcd_escreve,"   em Execucao  ");

     //bomba

    

 if  (!input(pin_b0))

 { output_low(PIN_a5);}

 if(!input(pin_a0)) {output_high(pin_a5);}

 if (!input(pin_a0)&&(input(pin_a2)))

 \\ Segundo problema ele tambem ta funcionando  mais quando começo tirar o liquido o sensor dois liga novamente eu preciso que ele funcione uma vez so,  quando for tirar o liquido ele não pode funcionar

 

 { output_low(PIN_a3);}

 if(!input(pin_a2)) {output_high(pin_a3);}

delay_ms(250);

{ output_low(PIN_b2);}

Delay_ms(3000);

{output_high(pin_b2);}

 }

 }

Exibições: 707

Responder esta

Respostas a este tópico

explique novamente os passo a passo do projeto..

entao amigo tenho 2 reservatorio de um determinado liquido.
e quando alguem aperta um botao ele liga a bomba um e manda para o reservatorio principal,
e o reservatorio principal tem dois sensores, quando o liquido chega no primeiro ele desliga bomba um e liga bomba dois quando o liquido chega no sensor dois, ele desliga a bomba dois e liga um motor para agita e misturar os liquido.
e isso tudo e escrito numa tela de lcd, enquanto ninguem nao aperta o botao ele aparece na tela;
aperte botao para ligar misturador.
e quanto for apertado; aparece misturador sendo executado.

problema do projeto:
ele funciona mais ele nao espera eu aperta o botao ele fica funcionando sozinho sem eu aperta.
segundo problema:
o reservatorio principal fica tudo a mistura, e quando vou tirar o liquido dele ele liga de novo por que abaixa do sensor 2 e o 1 ta ativado.
entendeu mais ou menos?
obrigado parceiro

Anexos

mandei um desenho tbm da uma olhada amigo

amigo vc pode fazer o controle utilizando SwitchCase ou com While

Fica +- assim a logica e so vc implementar o codigo 

main(){

lcd_ini();//inicializa o display
delay_ms(2000);//aguarda inicialização
lcd_pos_xy(1,1);//posiciona o cursor na 1 linha
printf(lcd_escreve," Projeto tcc ");
lcd_pos_xy(1,2);//posiciona o crsor na 2 linha
printf(lcd_escreve," Misturador ");
delay_ms(4000);//aguarda inicialização
lcd_pos_xy(1,1);//posiciona o cursor na 1 linha
printf(lcd_escreve,"Apertar B1 para");
lcd_pos_xy(1,2);//posiciona o cursor na 2 linha
printf(lcd_escreve,"ligar misturador");
DELAY_MS(3000);
\\ primeiro problema: ele ta funcionando mais ele vai direto não espera eu aperta o botão 1
Ele executando tudo sozinho e preciso aperta pra ele funciona como posso melhorar isso?


while (true){
lcd_pos_xy(1,1);//posiciona o cursor na 1 linha
printf(lcd_escreve," Misturador ");
lcd_pos_xy(1,2);//posiciona o cursor na 2 linha
printf(lcd_escreve," Desligado ");
//bomba aperte botao para ligar misturador

while(input(PINO DO BOTAO LIGA)); // o programa fica parado aqui ate que o botao liga seja acionado
lcd_pos_xy(1,1);//posiciona o cursor na 1 linha
printf(lcd_escreve," Misturador ");
lcd_pos_xy(1,2);//posiciona o cursor na 2 linha
printf(lcd_escreve," em Execucao ");
output_high(PINO DA BOMBA1); // liga a bomba 1

while(input(PINO DO SENSOR1));// o programa fica parado aqui ate que o nivel do tanque fique no sensor 1
output_low(PINO DA BOMBA1); // desliga a bomba 1
output_high(PINO DA BOMBA2); // liga a bomba 2

while(input(PINO DO SENSOR2));// o programa fica parado aqui ate o tanque fica cheio
output_low(PINO DA BOMBA2); // desliga a bomba 1
output_high(PINO DA MISTURADOR); // liga o misturador
Delay_ms(3000); // tempo do misturador
output_low(PINO DA MISTURADOR); // desliga o misturador
output_high(PINO DA BOMBA OU VALVULA PARA SECA O TANQUE); // liga bomba ou valvula


while(!input(PINO DO SENSOR DO NIVEL SECO DO TANQUE));// o programa fica parado aqui ate o tanque fique seco
output_low(PINO DA BOMBA OU VALVULA PARA SECA O TANQUE); // desliga bomba ou valvula

// tanque seco o sistema volta para o inicio
}

estude as funcao de controle SwitchCase ou com While

obrigado amigo deu uma iluminada boa

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço