caros amigos estou com umas duvida alguem poderia me ajuda?

como faço para aciona uma bomba dágua de limpador de para brisa 12v com o pic 16f877a

estou com duvida de como fazer o codigo fonte para esta situção, estou usando rele para acionar o pic ja. 

Exibições: 1313

Responder esta

Respostas a este tópico

Amigo esplique direitinho o q quer ai poderemos ajudar, se nao a resposta vai ser altura do comprendimento da pergunta.....

do jeito q esta comentando, nem precisa de pic, apenas um botao ligado aos 12v ao motor..

aguardamos detalhes

então amigo!

primeira mente obrigado pela atenção.

eu estou tentando faze um controle de nível num tanque de agua!

bem simples fazendo por curiosidade mesmo, onde tenho uma bomba e 2 sensores de nivel

sendo s1 e s2, s2 aciona a bomba e s1 desliga a bomba para não deixa passa o nivel!

então amigo  ate fiz o codigo fonte mais não entendi muito: 

#fuses xt,nowdt,noprotect,put,brownout,nolvp,nocpd,nowrt
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)

#byte porta = 0x05
#byte portb = 0x06
#byte portc = 0x07
#byte portd = 0x08
#byte porte = 0x09

#bit LMotor = portb.0
#bit S1 = portb.2
#bit S2 = portb.3



void main ()
{
set_tris_a(0b11111111);
set_tris_b(0b11110110);
set_tris_c(0b11111111);
set_tris_d(0b11111111);
set_tris_e(0b00000111);

porta=0x00;  // aqui estou configurando a saida certo?
portb=0x00;
portc=0x00;
portd=0x00;
porte=0x00;

while(TRUE)
{

if((!S1)&&(!S2))
LMotor =1;
if((S1)&&(S2))
LMotor = 0;
}
}

estaria certo isso?

E para aciona a saida do pic para o rele coloco o que tanto para protege de corrente reversa?

uns manda por capacitor e resistor outros manda por um transistor estou perdido no assunto?

Bom.. agora ja da p ter uma ideia do quer fazer e facilita a ajuda.. bom me parece um codigo da pag do "vidal", eu acho assim para vc começar pode simplificar muita coisa\. por ex. fast io, acredito nao ter necessidade pois nao precisa configurar os pinos para tanta velocidade e nem a todos os ports.... 2. expressoes como 0x00 dificulta a qm é iniciante portanto utilize os inputs, outputs_bla-bla .. setar os estados de tds os pino no void main nao me parece ser necessario (0b000001.....)

e por fim a logica eu talves nao utilizaria essa.. imagine q seu sensor de tanque baixo desse problema, entao oif((S1)&&(S2)) 
LMotor = 0; 

nao iria funcionar ,, use como te mostro no codigo, alias , depois de uma condicao se usa {} ou seja, { LMotor = 0; }.

no mais falta o clock e o pic usado..

uma dica eu utilizaria um timer para fazer o motor desligar caso desse pane no sensor de nivel alto. neste caso se viesse a acontecer teria menos desperdicio de agua... t+

#include <16f877A.h>
#fuses xt,WDT,NOPROTECT,put, NOLVP
#use delay(clock=4000000)

#define Vazio PIN_b1 // sensor de tanque vazio
#define Cheio PIN_b0 // sensor de tanque cheio
#define Bomba PIN_b2

void main ()
{
output_low(bomba);
while(TRUE)
{

IF (!input(vazio) && !input(cheio))
{
output_high(bomba);
}
IF ( input(cheio))
{
output_low(bomba);
}
}
}

vou faze como falou amigo.

valeu pela ajuda...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço