Alguém me ajuda...

Fiz um circuito no LDmicro-LADDER onde em uma mesma entrada liga uma saída e com outro pulso desliga...

fiz a lógica ultizando 5 entradas e 5 saídas onde a mesma funcionou no LDmicro e gerei o arquivo HEX e testei no PROTEUS, onde funcionou também mas acionando apenas leds... quando coloco um 4N26(optoacoplador) para acionar um relé o led pisca muito rapto e não aciona o relé... não saí a tensão suficiente para acionar o 4N26 e não atua o relé...

ALGUÉM SABE COMO DEVO FAZER PARA ACIONAR RELÉ? 

Exibições: 4326

Responder esta

Respostas a este tópico

Anexos

SEGUE AS FOTOS DOS COMPONENTES Q TE FALEI...

Anexos

Oi Felix, bom  dia.

Qual é a corrente da bobina (ou a resitencia ohmica) deste rele que voce está usando?

A máxima corrente de trabalho deste optoacoplador (4N26) é de 50ma, e á máxima com duração < 1milisegundo é 100ma.

Voce pode postar um arquivo com o esquema em pdf?

Rui

Rui segue o esquema em pdf como deveria funcionar...

Anexos

Oi Felix, boa noite.

Eu identifiquei um problema no seu esquema.

Voce não deve ligar a saíida da porta do PIC direto no pino 1 dos 4N26, pois pode até queimar ou a porta do PIC ou o LED do 4N25.

Coloque um resistor em serie entre a saída da porta e o pino 1 dos 4N25, (100 ohms) .

A corrente recomendada das Portas dos PICs é:

Maximum output current sunk by any I/O pin.................................25 mA
Maximum output current sourced by any I/O pin ...........................25 mA

e a corrente do LED do 4N25 pode chegar até 60ma.

 

Depois disto talvez os LEDs externos acendam constante e o relé feche.

De  retorno

Rui

Oi Rui, boa noite...

obrigado pela ajuda antes de tudo... 

mas coloquei o resistor na saída do PIC e tambem não funcionou o circuito do jeito que eu queria, segue em anexo o arquivo para abrir no proteus o arquivo hex e o arquivo LD para abrir no LDmicro, para guando vc puder da uma analisada...

Anexos

continuação dos anexos...

Anexos

Oi Felix, boa tarde.

Escrevi o código em C (Hi-tech) com a sua necessidade, e gravei em um PIC16F628.

Montei no proto
com algumas modificações e funcionou, mas com disse antes,

não é a melhor forma de fazer, pois reles tem vida curta.

Vou postar aqui o código em C, o desenho e o arquivo Hexa, caso você queira gravá-lo em um PIC.

Fiz também outro desenho com a minha recomendação de uso com MOC3023 e TRIAC.

Não testei ainda, mas estarei testando, talvez ainda hoje.

Vou postar também este desenho.

O código é o mesmo pra as 2 soluções.

Rui

Versaão com rele:

Versão com TRIAC

Código em C

// ******************************************************************************************
//PIC16F828A

#ifndef _XTAL_FREQ
#define _XTAL_FREQ 4000000
#endif

#define Bot0 RB0 // Botão 0
#define Bot1 RB1 // Botão 1
#define Bot2 RB2 // Botão 2
#define Bot3 RB3 // Botão 3
#define Bot4 RB4 // Botão 4

#define Rele0 RA0 // Rele 0
#define Rele1 RA1 // Rele 1
#define Rele2 RB5 // Rele 2
#define Rele3 RB6 // Rele 3
#define Rele4 RB7 // Rele 4
unsigned char Filtro = 32;

unsigned char Click0 = 0;
unsigned char Click1 = 0;
unsigned char Click2 = 0;
unsigned char Click3 = 0;
unsigned char Click4 = 0;

#include <htc.h>

__CONFIG(FOSC_INTOSCCLK & WDTE_OFF & PWRTE_OFF & BOREN_OFF & LVP_OFF & CP_OFF & CPD_OFF & MCLRE_ON);//Interno

//***************************** Main ********************************
void main (void)
{
TRISB = 0b00011111;
TRISA = 0b00000000;
CMCON = 0x07;
nRBPU = 0;

for(;;)
{
// ================= botão e rele 0 ===================
if(!Bot0)
{
__delay_ms(Filtro);
if(!Bot0)
{
Rele0 = 1;
Click0++;
if (Click0 >2)
{
Click0 = 0;
Rele0 = 0;
}
while(!Bot0) //wait for button release
__delay_us(1);
}
}
// ================= botão e rele 1 ===================
if(!Bot1)
{
__delay_ms(Filtro);
if(!Bot1)
{
Rele1 = 1;
Click1++;
if (Click1 >2)
{
Click1 = 0;
Rele1 = 0;
}
while(!Bot1) //wait for button release
__delay_us(1);
}
}
// ================= botão e rele 2 ===================
if(!Bot2)
{
__delay_ms(Filtro);
if(!Bot2)
{
Rele2 = 1;
Click2++;
if (Click2 >2)
{
Click2 = 0;
Rele2 = 0;
}
while(!Bot2) //wait for button release
__delay_us(1);
}
}
// ================= botão e rele 3 ===================
if(!Bot3)
{
__delay_ms(Filtro);
if(!Bot3)
{
Rele3 = 1;
Click3++;
if (Click3 >2)
{
Click3 = 0;
Rele3 = 0;
}
while(!Bot3) //wait for button release
__delay_us(1);
}
}
// ================= botão e rele 4 ===================
if(!Bot4)
{
__delay_ms(Filtro);
if(!Bot4)
{
Rele4 = 1;
Click4++;
if (Click4 >2)
{
Click4 = 0;
Rele4 = 0;
}
while(!Bot4) //wait for button release
__delay_us(1);
}
}
}
}

Anexos

Felix,

o valor do resistor no pino 1 do MOC3023 na versão com TRIAC não é de 1K não,  

o valor correto é 120 ohms.

Rui

Bom Dia Rui...

    meu amigo muito obrigado pela ajuda, estou vendo sua postagem agora... assim que eu tiver um tempo vou testar sim, mas pelo que ja vi vai dar certo sim... Depois se vc puder me ajudar de novo vou mandar um outro projeto que fiz que também não deu certo...kkkkkkkkkk

Pode Mandar.

Abra um novo post.

Rui

Fiz algo similar mas com o ULN2003A como interface, é um CI muito barato e ocupa pouco espaço em relação a vários opto.

Segue simulação no Proteus.

https://www.youtube.com/watch?v=NL4DAbqaJ2U&feature=youtu.be

Abs.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço