Problema com RA4 e relé

Circuitos eletrônicos, topologias, diagramas elétricos, etc...

Moderadores: 51, Renie, gpenga

Problema com RA4 e relé

Mensagempor antonio » 04 Fev 2012 18:10

Pessoal tudo bem!

Pessoal estou aqui com problema em acionar um relè ao PORT_RA4 do 16f627 !

Para acionar o relé estou fazendo desse jeito assim:
output_low(PIN_A4);

Onde estou errando ??

O circuito eh assim :

Imagem
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Mensagempor fabim » 04 Fev 2012 18:25

irmãozinho o Q1 está errado...
Polarisação também esta errada...

Tudo errado
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor antonio » 04 Fev 2012 18:37

fabim escreveu:irmãozinho o Q1 está errado...
Polarisação também esta errada...

Tudo errado


Depois de feito varios testes não consigo fazer ele funcionar ,bem voce falou esta tudo errado :oops: dah um xarope pro irmãozinho :D
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Mensagempor EvandrPic » 04 Fev 2012 19:03

Aciona com nível alto...
Imagem

Aciona com nível baixo...
O transistor em questão é o BC 558 e não 548 como diz nesse esquema da saber eletrônica.
(veja só a parte de acionamento do circuito)
Imagem

Imagem

Imagem
EvandrPic
Dword
 
Mensagens: 2116
Registrado em: 31 Mar 2010 15:05

Mensagempor antonio » 04 Fev 2012 19:44

EvandrPic

Cara eu jah fiz esses testes todos aqui fisicamente e não funciona !não sei que estou fazendo errado !
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Mensagempor EvandrPic » 04 Fev 2012 20:01

Você aciona em nível alto ou baixo?
Me parece que o pino RA4 é "DRENO ABERTO". Se for, é necessário colocar um resistor de pull up (entre o pino e o Vcc).
Você desabilitou os comparadores (CMCON)?
Código: Selecionar todos
MOVLW    0X07;
MOVWF    CMCON;

antonio escreveu:EvandrPic

Cara eu jah fiz esses testes todos aqui fisicamente e não funciona !não sei que estou fazendo errado !
EvandrPic
Dword
 
Mensagens: 2116
Registrado em: 31 Mar 2010 15:05

Mensagempor antonio » 05 Fev 2012 04:17

EvandrPic , ele aciona em nivel baixo ,porque eh como falou o pino RA4 é "DRENO ABERTO". sim o resistor eu no circuito tem um de 10K

Agora quanto aos comparadores eu não desabilitei nada , como fazer isso em C (ccs)?



EvandrPic escreveu:Você aciona em nível alto ou baixo?
Me parece que o pino RA4 é "DRENO ABERTO". Se for, é necessário colocar um resistor de pull up (entre o pino e o Vcc).
Você desabilitou os comparadores (CMCON)?
Código: Selecionar todos
MOVLW    0X07;
MOVWF    CMCON;

antonio escreveu:EvandrPic

Cara eu jah fiz esses testes todos aqui fisicamente e não funciona !não sei que estou fazendo errado !
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Mensagempor EvandrPic » 05 Fev 2012 04:33

tenta isso...
Em C (mikroC):
CMCON = 7;
ou
CMCON |= 7; // esta forma não altera o valor dos outros bits

http://projetoseti.com.br/hardware/elet ... -completo/

Livro linguagem C para PIC:
http://www.docstoc.com/docs/72079003/PIC-em-C


antonio escreveu:EvandrPic , ele aciona em nivel baixo ,porque eh como falou o pino RA4 é "DRENO ABERTO". sim o resistor eu no circuito tem um de 10K

Agora quanto aos comparadores eu não desabilitei nada , como fazer isso em C (ccs)?



EvandrPic escreveu:Você aciona em nível alto ou baixo?
Me parece que o pino RA4 é "DRENO ABERTO". Se for, é necessário colocar um resistor de pull up (entre o pino e o Vcc).
Você desabilitou os comparadores (CMCON)?
Código: Selecionar todos
MOVLW    0X07;
MOVWF    CMCON;

antonio escreveu:EvandrPic

Cara eu jah fiz esses testes todos aqui fisicamente e não funciona !não sei que estou fazendo errado !
EvandrPic
Dword
 
Mensagens: 2116
Registrado em: 31 Mar 2010 15:05

Mensagempor antonio » 05 Fev 2012 17:18

EvandrPic não sei que estou fazendo errado ,nada funciona direito?!

CMCON = 7; // meu compilador da erro!? (undifined identifier CMCON).

setup_adc_ports(NO_ANALOGS ); //da o mesmo erro (undifined identifier --setup_adc_ports).

setup_comparator(NC_NC_NC_NC);//assim nao da erro,mas o PORT_RA4 continuando sem funicionar!

Não sei que fazer mais!


EvandrPic escreveu:tenta isso...
Em C (mikroC):
CMCON = 7;
ou
CMCON |= 7; // esta forma não altera o valor dos outros bits

http://projetoseti.com.br/hardware/elet ... -completo/

Livro linguagem C para PIC:
http://www.docstoc.com/docs/72079003/PIC-em-C


antonio escreveu:EvandrPic , ele aciona em nivel baixo ,porque eh como falou o pino RA4 é "DRENO ABERTO". sim o resistor eu no circuito tem um de 10K

Agora quanto aos comparadores eu não desabilitei nada , como fazer isso em C (ccs)?



EvandrPic escreveu:Você aciona em nível alto ou baixo?
Me parece que o pino RA4 é "DRENO ABERTO". Se for, é necessário colocar um resistor de pull up (entre o pino e o Vcc).
Você desabilitou os comparadores (CMCON)?
Código: Selecionar todos
MOVLW    0X07;
MOVWF    CMCON;

antonio escreveu:EvandrPic

Cara eu jah fiz esses testes todos aqui fisicamente e não funciona !não sei que estou fazendo errado !
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Mensagempor _blackmore_ » 05 Fev 2012 17:36

EvandrPic não sei que estou fazendo errado ,nada funciona direito?!
CMCON = 7; // meu compilador da erro!? (undifined identifier CMCON).
setup_adc_ports(NO_ANALOGS ); //da o mesmo erro (undifined identifier --setup_adc_ports).


qual o teu compilador? os includes estão disponíveis? na IDE está tudo devidamente configurado? o acionamento funciona caso vc coloque a base do transistor em nível alto (ou baixo) sem o microcontrolador?
Ouça mais classic rock
_blackmore_
Dword
 
Mensagens: 1397
Registrado em: 28 Set 2008 13:26

Mensagempor EvandrPic » 05 Fev 2012 18:00

Antonio, provavelmente o teu problema é a configuração do CMCON...
Esse problema de configuração do CMCON (desabilitar os comparadores) é muito comum... Agora é com você e o Google...
Mesmo em C tem como inserir código em ASM... dá uma pesquisada aí.

A propósito, você montou o circuito ou está tentando simular ele no Proteus? Por que se for simulação pode ser um problema no simulador.
Quanto a parte do circuito, você verificou se o transistor aciona o relé com o nível de acionamento que você pretende por no firmware?
Monte o circuito corretamente conforme sugerido e coloque o layout novo para analisarmos como ficou. Porque senão ficamos imaginando que você fez o correto e pode ser que não tenha feito.
EvandrPic
Dword
 
Mensagens: 2116
Registrado em: 31 Mar 2010 15:05

Mensagempor antonio » 05 Fev 2012 18:07

O compilador eh o CCS
O codigo
Código: Selecionar todos
#include <16F627.h>
#fuses XT,NOWDT,NOLVP,PUT,NOBROWNOUT
#use delay(clock=4000000)

#include <flex_lcd.c>
#USE STANDARD_IO(A)
#USE STANDARD_IO(B)
int contador;
void beep(void);
short flagSeg = FALSE;
short x=0;


#INT_TIMER0
void interruption()
 {
 set_timer0(6);
 Contador--;
 if (Contador == 0)
 {
output_toggle(PIN_A2);
    Contador = 250;
    flagSeg = TRUE;
   
 }
 }

void main(void)
{

int Minutos =0;   //minutos  temporizador
int Segundos =0;   //segundos  temporizador
setup_vref(false);
//setup_comparator(NC_NC_NC_NC);
setup_counters(RTCC_INTERNAL,RTCC_DIV_16);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);

setup_adc_ports(NO_ANALOGS );

//CMCON = 7;
lcd_init();



   //configurar minutos
   lcd_putc("\fLUZ ULTRAVIOLETA,");
   
while(1)
{

   if(!input(PIN_A0)){
      While(!input(PIN_A0)){};
      //delay_ms(100);
        beep();

           Minutos++;
           
                if(Minutos >=30)
                 Minutos = 0;
                 printf(lcd_putc, "\n(%02u):%02u", Minutos, Segundos);
         delay_ms(50);
               
   }
//configurar segundos
   
 if(!input(PIN_A1))  {
      while(!input(PIN_A1)){};
         beep();
               Segundos++;
                if(Segundos >=59)
                Segundos = 0;
         
         printf(lcd_putc, "\n%02u:(%02u)", Minutos, Segundos);
         delay_ms(50);
     
     
    }
    if(!input(PIN_A3))break;
}
//começar
 
   if(!input(PIN_A3)){
     While(!input(PIN_A3)){};
      beep();
     
      do{
         if(flagSeg == TRUE){
            flagSeg = FALSE;
            output_low(PIN_A4);
            if(Segundos == 0){
               if(Minutos == 0)
               {
                  x = TRUE;   //finalizo de contar
               }   
               else
               {
                  --Minutos;
                  Segundos = 59;
               }
            }     
            else
               --Segundos;
             
               printf(lcd_putc, "\fRestante\n %02u:%02u", Minutos, Segundos);
         }
         if(x == 1){
         output_high(PIN_A4);
         break;
         }

      }while(1);
               
     reset_cpu();   
         
   }




void beep(void){
   output_high(PIN_B0);   //ativa zumbador
   delay_ms(60);
   output_low(PIN_B0);
   return;//desativa zumbador
}
   

O circuito
Imagem
Editado pela última vez por antonio em 05 Fev 2012 18:25, em um total de 2 vezes.
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Mensagempor antonio » 05 Fev 2012 18:14

EvandrPic eu simulei o circuito no proteus e nao funciona,depois montei fisicamente e nao funcionou !

no santo google tenho eu pesquisando horas forum CCs etc ,mas não encontrado que ajuda sobre a configuração dos comparadores !

foi novamente ao proteus e fiz novo codigo e novo circuito para simular e a bagunça esta continuando ,ou seja não funciona

EvandrPic escreveu:Antonio, provavelmente o teu problema é a configuração do CMCON...
Esse problema de configuração do CMCON (desabilitar os comparadores) é muito comum... Agora é com você e o Google...
Mesmo em C tem como inserir código em ASM... dá uma pesquisada aí.

A propósito, você montou o circuito ou está tentando simular ele no Proteus? Por que se for simulação pode ser um problema no simulador.
Quanto a parte do circuito, você verificou se o transistor aciona o relé com o nível de acionamento que você pretende por no firmware?
Monte o circuito corretamente conforme sugerido e coloque o layout novo para analisarmos como ficou. Porque senão ficamos imaginando que você fez o correto e pode ser que não tenha feito.
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Mensagempor EvandrPic » 05 Fev 2012 18:19

Já que você montou o circuito... foi pedido que você verificasse o acionamento do relé atráves do nível correspondente ao que o microcontrolador aplicaria (nível baixo). Se você jogar um terra tem que acionar o relé.
E aí?



antonio escreveu:EvandrPic eu simulei o circuito no proteus e nao funciona,depois montei fisicamente e nao funcionou !

no santo google tenho eu pesquisando horas forum CCs etc ,mas não encontrado que ajuda sobre a configuração dos comparadores !

foi novamente ao proteus e fiz novo codigo e novo circuito para simular e a bagunça esta continuando ,ou seja não funciona

EvandrPic escreveu:Antonio, provavelmente o teu problema é a configuração do CMCON...
Esse problema de configuração do CMCON (desabilitar os comparadores) é muito comum... Agora é com você e o Google...
Mesmo em C tem como inserir código em ASM... dá uma pesquisada aí.

A propósito, você montou o circuito ou está tentando simular ele no Proteus? Por que se for simulação pode ser um problema no simulador.
Quanto a parte do circuito, você verificou se o transistor aciona o relé com o nível de acionamento que você pretende por no firmware?
Monte o circuito corretamente conforme sugerido e coloque o layout novo para analisarmos como ficou. Porque senão ficamos imaginando que você fez o correto e pode ser que não tenha feito.
EvandrPic
Dword
 
Mensagens: 2116
Registrado em: 31 Mar 2010 15:05

Mensagempor EvandrPic » 05 Fev 2012 20:49

Circuitinho ruim de "ler" esse teu hein. Quando for desenhar o circuito procure fazer de forma mais organizada. Facilitará para você mesmo o entendimento do mesmo.

Você montou o circuito no Protoboard?

Vamos lá:
- Não vi o resitor da base de Q1.
Sugiro que você monte somente o circuito referente ao acionamento do relé e verifique o acionamento do mesmo. Q1- BC558, R1 - 1K, D1 - 1N4148 e o relé.
Ao jogar um terra no R1 o relé deve atracar. Feito isso você ja sabe que esta etapa não tem problema.
- Depois disso, elimine provisoriamente do teu circuito original o LED D2 e o seu resistor R2 de 200 ohm. Ele pode drenar muita corrente e impedir a condução do transistor Q2 e por conseguinte não irá atracar o relé... mas nesse caso acredito que o led acenderia. Melhor desconectar o LED nesse primeiro momento.

Agora é só você desabilitar o comparador no PINO RA4...
Para teste faça um programinha simples tipo Pisca-LED onde o pino RA4 fica variando a cada 5 segundos (por exemplo), ora em nível baixo, ora em nível alto. Pode colocar um led para testar a saída. Como você que acionar com nivel baixo, você coloca um resitor de 1k entre o pino e o catodo do LED e o anodo do LED vai no positivo. O Led deve piscar de acordo com a temporização do teu programa Pisca-LED.
Se conseguir isso, é so substituir o LED pelo esquema com transistor e relé.
Isso é importante para você descobrir se todos os componentes estão bons além de descobrir como setar corretamente o registrador CMCON.
Depois você parte pro teu projeto.
EvandrPic
Dword
 
Mensagens: 2116
Registrado em: 31 Mar 2010 15:05

Próximo

Voltar para Circuitos Diversos

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x