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);}
}
}
Tags:
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
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por