Olá
Estou utilizando um 74HC595 junto com Atmega328 para expandir as portas de saída que serão utilizadas para ligar alguns reles.
O problema é que toda vez que o circuito é energizado, o 74hHC595 inicia com as saídas em HIGH, o que está causando acionamento dos reles indevidamente.
Alguém sabe se tem como contornar esse problema no 74HC595 ?
Obrigado.
Tags:
Olá André.
Seu problema me causa estranheza, pois levei um tempo estudando o 595, fiz diversos testes e isso nunca aconteceu comigo.
Pode ser um problema na programação ou no circuito.
Para que os membros possam te ajudar melhor, eu recomendo você colocar uma foto do seu circuito e/ou anexar o sketch.
Obrigado pela resposta.
Então, ele faz isso mesmo desconectado do MCU. Apenas ligando a alimentação ele pisca algumas saídas. Tenho 2 CIs aqui e ambos estão fazendo isso.
Boa tarde AFL,
existe um pino no 595 que tem a função de desabilitar as saídas dele.
Este pino é o 13, OE Output Enable. Se ele estiver em LOW, a saídas estarão habilitadas.
Com um resistor de Pull-Up, mantenha este pino em HIGH e só coloque ele em LOW qdo quiser usar as saídas..
Depois conta o resultado pra gente.
RV
Rui, se eu manter o pino 13 em 1, com um pullup de 10k ele não pisca quando ligo. Problema resolvido, Porém em contrapartida, tive que utilizar mais um pino do MCU para controlar o pino 13 e habilitar a escrita.
Estou pensando em testar o PFC8574 que tenho aqui também.
É só adicionar 1 capacitor e voce tem um RC. Calcule o tempo que precisa para garantir que ele esteja desabilitado até que esteja pronto para obedecer aos comandos
Rui, o codigo completo tem bastante coisa (LCD gráfico, ADS IC2, etc) mas basicamente eu estou usando essa função que já peguei pronta em um canal no youtube.
André, caso seu problema não tenha sido resolvido, recomendo postar a ligação e o código.
Bom dia. Obrigado pela atenção.
A ligação que estou usando está abaixo.
O código estou utilizando uma função para facilitar o acionamento dos pinos, mas creio ser irrelevante, pois os acionamentos indevidos ocorrem antes do MCU "bootar". Mesmo eu desligando os pinos que comunicam o 74HC com o MCU continua ocorrendo os acionamentos indevidos.
Observei que se eu desligar a alimentação e esperar uns 10segundos, quando ligo novamente o problema não acontece, mas se eu desligar e já ligar logo em seguinda, o 74HC aciona as saídas e só desliga quando o MCU inicializa.
ps: não deixou eu anexar o código.
#define pinSH_CP 5 //Pino Clock
#define pinST_CP 6 //Pino Latch
#define pinDS 7 //Pino Data
#define qtdeCI 1
void saidaWrite(byte pino, bool estado);
void setup() {
pinMode(pinSH_CP, OUTPUT);
pinMode(pinST_CP, OUTPUT);
pinMode(pinDS, OUTPUT);
}
void loop() {
saidaWrite(1,1);
saidaWrite(2,1);
delay(500);
saidaWrite(2,0);
delay(500);
}
void saidaWrite(byte pino, bool estado) {
static byte ciBuffer[qtdeCI];
bitWrite(ciBuffer[pino / 8], pino % 8, estado);
digitalWrite(pinST_CP, LOW); //Inicia a Transmissão
digitalWrite(pinDS, LOW); //Apaga Tudo para Preparar Transmissão
digitalWrite(pinSH_CP, LOW);
for (int nC = qtdeCI-1; nC >= 0; nC--) {
for (int nB = 7; nB >= 0; nB--) {
digitalWrite(pinSH_CP, LOW); //Baixa o Clock
digitalWrite(pinDS, bitRead(ciBuffer[nC], nB) ); //Escreve o BIT
digitalWrite(pinSH_CP, HIGH); //Eleva o Clock
digitalWrite(pinDS, LOW); //Baixa o Data para Previnir Vazamento
}
}
digitalWrite(pinST_CP, HIGH); //Finaliza a Transmissão
}
Bem, sua ligação, se não estou enganado, é igual as que fiz.
Pessoalmente não entendo o que está acontecendo com o seu. Entretanto, existe uma questão adicional pois não utilizei relés.
Minha configuração era 100% para Leds, e logo no inicio do código eu tinha adicionado um comando para deixar todos os pinos em estado baixo (um anti-bug que costumo colocar em toda iniciação).
André,
Existe mais uma alternativa para o uso do 74HC595.
Você pode montar um circuito de power on reset. Isto é quando o circuito é energizado, o pino (10) -SRCLR é mudado para o estado LOW por alguns milisegundos e depois volta para o estado HIGH.
Quando ocorre isso, o shift register é zerado (cleared).
https://www.ti.com/lit/ds/symlink/sn74hc595.pdf
Power on reset:
https://www.maximintegrated.com/en/design/technical-documents/app-n...
https://electronics.stackexchange.com/questions/312369/reset-circui...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por