Eu tenho uma placa com quatro relés. Possui pinos Vcc, Gnd e In1-In4 padrão. Eu quero controlá-lo com o Arduino ou, no meu caso, um ESP32. No entanto, notei que, quando o pino de saída do meu controlador é puxado ALTO, nada acontece quando ele é puxado BAIXO, o relé será ativado.
Esse é um problema quando a placa é redefinida, pois todos os interruptores do relé serão ativados até e isso não é o que eu quero. Depois de algumas escavações, fiz o seguinte:
Isso funciona como desejado, sempre há 5V no relé e o relé é desativado o tempo todo. Quando eu emitir um sinal para a base do Q1, ele puxará a saída para o chão e o relé será ativado.
No momento, tenho quatro desses relés e em breve terei mais. Então, eu gostaria de resolver isso com um IC. Em particular, eu estava olhando para o IC7404, que é um monte de portas NÃO, no entanto, não tenho certeza se isso resolverá o meu problema.
Então, existe um IC que puxe a saída para o chão quando o sinal estiver presente na entrada? O 7404 funcionará e não estou vendo nada? :)
Edit: Este é o módulo de relé que estou usando . Não consegui encontrar nenhuma ficha útil sobre ele.
fonte
Respostas:
O fato de os relés estarem atuando na redefinição quando os pinos devem estar no modo de alta impedância é preocupante, e é algo que você precisa entender completamente para validar e corrigir o sistema.
Edit: agora que está claro que este é um erro de software no seu código, para resolver a unidade inadvertida baixa durante a inicialização, configure o bit do registro de dados de saída do pino para alto antes de definir o pino como uma saída.
Dito isto, uma resposta literal à sua pergunta original seria um chip contendo várias
open collector inverters
.O 74xx05 é um exemplo.
O 74xx06 é semelhante, mas permite aplicar uma tensão aceitável à saída, mesmo quando ela excede a tensão de alimentação, por exemplo, você pode operar a peça em 3,3v, mas reduzir as saídas de 5v.
Mas estas não são a solução para o seu problema real .
fonte
A solução mais simples é trocar as conexões dos pinos NO e NC do relé.
A próxima opção é inverter a lógica de programação para esse pino. Você pode adicionar algumas constantes
Para influenciar os relés para um determinado estado durante a redefinição (enquanto o pino de saída é de alta impedância), você pode adicionar um resistor de pull-up ou pull-down conforme necessário. O pino de IO sobrecarrega facilmente a corrente vazada através do resistor e ainda comuta adequadamente o relé.
Usando essas 2 técnicas, você pode escolher o estado padrão do relé para o estado sem energia. Ou porque ele é usado na maioria das vezes ou porque é a opção à prova de falhas.
fonte
Aqui está um "Manual do usuário" para o seu relé. Você realmente nunca deve projetar um sistema sem ter todas as planilhas de dados primeiro.
A partir do esquema fornecido lá, pode-se ver claramente que você pode simplesmente conectar seu controlador diretamente aos pinos InX. Ou seja, nenhum dos esquemas que você criou é necessário.
Como a entrada dos optoacopladores é capaz de operar no modo de coletor aberto , sugiro que você mantenha os pinos correspondentes do seu uC como entrada / Z-alto quando desejar manter os relés no NC.
Como não estou familiarizado com o seu controlador, aqui estão alguns pseudo-códigos para ajudá-lo:
Inicialização, para cada pino que controla um relé:
Relé de comando para NÃO:
Retransmissão de comando para NC:
Normalmente, um uC acorda com seus pinos já como entrada, portanto a primeira linha da inicialização é redundante, mas é sempre mais seguro executá-lo para garantir que o sistema esteja em um estado conhecido. Verifique se você não possui algum código que inicie todos os pinos de maneira geral, com alguns valores como parte de algum código da placa da caldeira, sabe-se que os iniciantes cometem esse erro.
PS Para o tempo em que você realmente precisará de algum driver atual de inversão, use algo como um ULN2003A !
fonte