Ir ao conteúdo
  • Cadastre-se

Acumulador de crédito


tehuan

Posts recomendados

  • 2 semanas depois...

Obrigado Bcpetronzio, por reabrir o tópico!

Vou direcionar a minha pergunta ao amigo que me ajudou a montar o circuito desde o início, MatheusLPS.

Amigão se você puder me dar mais uma forcinha te agradeço muito. O problema é o seguinte, eu montei o circuito todinho em uma plaquinha de teste e funcionou perfeitamente, até o momento em que liguei um motor nos pinos A1, A2, A3, B0.

A situação é a seguinte, esses pinos estão ligados a um dipswitch, cada pino fica ativo por um determinado tempo, fazendo o motor ficar ligado o tempo que eu desejar o tempo que estiver programado cada pino, assim terei 4 velocidades pré definidas. Na saída do dipswitch eu uni os fios e acionei um transistor(bc 548), esse aciona um relé, que aciona um motor 12v(bomba d'agua de esguicho de parabrísa de carro) por terra. No momento em que o motor entra em ação o PIC reseta.

Esse problema que vem ocorrendo tem alguma coisa a ver com Brownout e Power up timer?

Link para o comentário
Compartilhar em outros sites

Teria como você postar o circuito todo desenhado no proteus mesmo?

Pode usar componentes genericos mesmo.

Isso que você esta enfrentando é um problema típico de quando se usa motores. Na hora da partida há uma queda na tensão e o pic acaba resetando. Se a fonte do PIC nao for bem estabilizada, acontece isso mesmo.

Falou

Link para o comentário
Compartilhar em outros sites

Fala Matheus!

Vou postar aqui o link do meu projeto pra você da uma olhadinha por gentileza, o esquisito é o seguinte. Eu estou usando uma fonte ATX simples para funcionar o circuito, no momento em que eu acionei o relé e o motor o sistema começou a resetar, e as vezes ele reseta só com o relé mesmo sem o motor. Pensei que a fonte não estava aguentando, então liguei o relé e o motor em uma fonte 12v de alta corrente que eu tenho aqui, e mesmo assim continuou resetando.

IMAGEM

9FVwO.png

LINK IMAGEM

CÒDIGO



#FUSES NOWDT
#FUSES INTRC_IO
#FUSES PUT
#FUSES NOPROTECT
#FUSES BROWNOUT
#FUSES NOLVP
#FUSES NOCPD
#FUSES NOMCLR

#use delay(clock=4000000)

#define liga output_high
#define desliga output_low

#define soma PIN_A0
#define subt PIN_A5

#define iniciar PIN_A7
#define insert PIN_A6


#define velo1 PIN_A1
#define velo2 PIN_A2
#define velo3 PIN_A3
#define velo4 PIN_B0

#define BCD1 PIN_B1
#define BCD2 PIN_B2
#define BCD3 PIN_B3
#define BCD4 PIN_B4
#define BCD5 PIN_B5
#define BCD6 PIN_B6
#define BCD7 PIN_B7

int credito = 0;

void digito_0 ()
{
liga (BCD1);
liga (BCD2);
liga (BCD3);
liga (BCD4);
liga (BCD5);
liga (BCD6);
desliga (BCD7);
}

void digito_1 ()
{
desliga (BCD1);
liga (BCD2);
liga (BCD3);
desliga (BCD4);
desliga (BCD5);
desliga (BCD6);
desliga (BCD7);
}

void digito_2 ()
{
liga (BCD1);
liga (BCD2);
desliga (BCD3);
liga (BCD4);
liga (BCD5);
desliga (BCD6);
liga (BCD7);
}

void digito_3 ()
{
liga (BCD1);
liga (BCD2);
liga (BCD3);
liga (BCD4);
desliga (BCD5);
desliga (BCD6);
liga (BCD7);
}

void digito_4 ()
{
desliga (BCD1);
liga (BCD2);
liga (BCD3);
desliga (BCD4);
desliga (BCD5);
liga (BCD6);
liga (BCD7);
}

void digito_5 ()
{
liga (BCD1);
desliga (BCD2);
liga (BCD3);
liga (BCD4);
desliga (BCD5);
liga (BCD6);
liga (BCD7);
}

void digito_6 ()
{
liga (BCD1);
desliga (BCD2);
liga (BCD3);
liga (BCD4);
liga (BCD5);
liga (BCD6);
liga (BCD7);
}

void digito_7 ()
{
liga (BCD1);
liga (BCD2);
liga (BCD3);
desliga (BCD4);
desliga (BCD5);
desliga (BCD6);
desliga (BCD7);
}

void digito_8 ()
{
liga (BCD1);
liga (BCD2);
liga (BCD3);
liga (BCD4);
liga (BCD5);
liga (BCD6);
liga (BCD7);
}

void digito_9 ()
{
liga (BCD1);
liga (BCD2);
liga (BCD3);
liga (BCD4);
desliga (BCD5);
liga (BCD6);
liga (BCD7);
}

void main()
{
liga (insert);


While (true)
{
if (!input(soma))
{
credito++;
if (credito > 9)
{
credito = 9;
}
do{}
while (!input(soma));


}
if (credito > 0)
{

liga(iniciar);
desliga(insert);


if (input(subt))
{

credito--;

if (credito == 255)
{
credito = 0;
}
do{}
while (input(subt));

liga(velo1);
liga(velo2);
liga(velo3);
liga(velo4);

delay_ms(1500);

desliga(velo1);
delay_ms(500);
desliga(velo2);
delay_ms(500);
desliga(velo3);
delay_ms(500);
desliga(velo4);
}
}

if (credito == 0)
{
desliga(iniciar);
liga(insert);

}

switch (credito)
{
case 0:
{
digito_0();
break;
}

case 1:
{
digito_1();
break;
}

case 2:
{
digito_2();
break;
}

case 3:
{
digito_3();
break;
}

case 4:
{
digito_4();
break;
}

case 5:
{
digito_5();
break;
}

case 6:
{
digito_6();
break;
}

case 7:
{
digito_7();
break;
}

case 8:
{
digito_8();
break;
}

case 9:
{
digito_9();
break;
}
}
}
}
#include <16F628A.h>

PROJETO COMPLETO

Abraço meu amigo, e como sempre muito obrigado.

Link para o comentário
Compartilhar em outros sites

Certo. Eb como está a fonte do PIC? De onde você está tirando os 5V do PIC?

Teria como você testar com duas fontes separadas?

Uma só para o PIC e outra para os motores. A fim de teste mesmo. Qualquer carregador de celular de 5V consegue alimentar o PIC.

Com esse teste veremos se resolve.

Provavelmente você está retirando os 5V para o PIC do cabo vermelho da fonte ATX. Já fiz isso e nao funciona. Sempre ocorre esse problema aí.

Resolvi tirando os 5V do PIC dos 12V da fonte e passando por um LM7805.

Falou

Link para o comentário
Compartilhar em outros sites

Deixa eu ver se entendi,

teste 1: Uma fonte 5v qualquer para o pic e outra para motor.

A do motor pode ser a atx mesmo? Ou outra fonte 12v.

teste 2: Usar o regulador para extrair os 5v direto da fonte ATX para alimentar o PIC.

E ligo o motor com a mesma fonte ATX? Ou uso outra fonte pra ele?

Abraço meu amigo!

Link para o comentário
Compartilhar em outros sites

Teste 1 correto. Esse mesmo. A do motor pode ser a atx mesmo. Lembre-se que o relé também é 12V. então ele divide como motor a mesma fonte. Sem problema nesse caso.

Apenas nao esqueça de interligar os terra de cada fonte ou então nao vai funcionar.

Teste 2 correto também. Usando o regulador 7805 paar conseguir os 5V. Atente-se para a ligaçao correta do 7805. Página 22 do datasheet, figura 7.

Os valores dos capacitores nao precisam ser exatamente aqueles. Podem ser maiores sem problemas.

Falou

Link para o comentário
Compartilhar em outros sites

Fala Matheus!

Ficou show funcionou perfeitamente!

Eu já fui direto no teste 2, alimentei tanto o motor quanto o PIC com os 12V da fonte. Funcionou legal, eu tive dois problemas que ocorreram só umas duas vezes, eu fiz milhões de testes, e umas duas vezes resetou, e outras duas vezes ao invés de dar um crédito if (!input(soma) deu dois. Estou pensando em usar mesmo uma "fontezinha" dessas de celular para alimentar o PIC e uma só para o motor, como você falou no teste 1. Acho que é mais seguro, essas fontes de PC são muito instáveis. Amanhã vou fazer esse teste.

Abraço amigão!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!