Bom dia, como estão ?

DESCRIÇÃO:


Gostaria de saber se alguém já passou pelo mesmo problema. Tenho um ESP-01 e um módulo relé 1.0 (IMAGEM 1).

Para que o ESP-01 inicie o programa gravado na flash é necessário fazer algumas modificações no módulo:

1) Conectar o GPIO0 ao Vcc através de um Resistor de Pull-UP de 10K

2) Conectar o CH_PD (EN) direto ao Vcc (podendo tbm utilizar o resistor 10k)

Resultando nesta configuração: IMAGEM 2

Vi isso em dezenas e dezenas de fóruns de tudo quanto é nacionalidade.

O PROBLEMA:

Fiz alguns testes e não obtive sucesso satisfatório. O ESP-01 conectado à ponte serial funciona perfeitamente, porém quando conectado ao módulo relé, não inicia o código mesmo após as modificações.

TESTES REALIZADOS:

1) Fechei um curto direto entre GPIO0 e Vcc e alimentei o relé, removendo o jumper logo em seguida. O Relé é acionado e o ESP-01 inicia o código normalmente.

2) Alterei os valores do resistor de pull-up (antes de 10K).

Em alguns casos ocorria o mesmo (não iniciar o ESP) e em outros casos, acontecia que o relé ativava, o ESP iniciava e logo em seguida desativava o relé.

O problema desse caso 2 é o risco, pois durante a inicialização o que estiver ligado ao relé será acionado por um pequeno intervalo de tempo, de forma indesejada.


Gostaria de saber se alguém passou por esse problema e como solucionou-o. Ou se tem alguma sugestão de solução.

Agradeço a atenção!

Exibições: 2094

Responder esta

Respostas a este tópico

olá João Vitor.

      Nestas plaquinhas com Relé e conector para o ESP-01, o Relé é acionado por um Transistor Driver (há versões de plaquinhas com NPN e PNP, dependendo se o Relé é acionado com o "HIGH" ou "LOW" do Arduino). O caminho do circuito do terminal Base desse Transistor deveria ter uma impedância alta o suficiente, para não corromper um eventual Nível Lógico que vc esteja provendo no correspondente pino de controle digital (através de um Resistor de "pulldown" ou "pullup").

      No entanto, muitas vezes isso não é levado em consideração no projeto destas plaquinhas, e a impedância "vista" pelo seu pino de controle digital (no seu caso um pino do ESP8266) é baixa o suficiente, para corromper o Nível Lógico que vc pensa estar definindo com um Resistor de "pullup" ou "pulldown".

      Quando o seu pino de controle digital está no modo saída (normalmente um "push-pull totem pole") isto não é um problema, já que a impedância desta saída é baixa e forte o suficiente para definir claramente o Nível Lógico nesta saída, e a impedância do circuito de base do transistor não afeta este Nível Lógico.

     Porém, quando seu pino de controle digital está no modo entrada (que é o modo que alguns pinos do ESP8266 estão devido ao Reset), ele terá uma alta impedância, e se tiver um "pullup" ou um "pulldown" conetado ao mesmo (seja internamente ao pino de saída, seja um resistor que vc proveu externamente ao pino), este formará um divisor de tensão com o circuito da Base do Transistor do Relé. Ou seja: a tensão resultante desse divisor de tensão poderá, dependendo da impedância do circuito da Base do Transistor, corromper o Nível Lógico que vc espera obter com o Resistor de "pullup" ou "pulldown". Consequentemente, se o pino for lido como um sinal de entrada, certamente não terá no Nível Lógico que vc espera. Conclusão: não terá o efeito desejado.

      No ESP8266, há uma combinação de sinais que determinam o comportamento do mesmo durante o "Boot" (a sequência imediatamente após o Reset). Se algum desses pinos não tiver o Nível Lógico desejado para determinado comportamento (por exemplo ir para o "modo Flash" ou "modo UART") durante o "Boot", então certamente este comportamento não ocorrerá. Veja as tabelas a seguir, que mostram esses níveis para o ESP8266:

      Um colega aqui no LDG teve problema semelhante. Eu indiquei a ele o tratamento adequado, mas não sei se ele aplicou (infelizmente há uma tentação forte em fazer as "gambis" ao invés do tratamento técnico próprio). Dê uma olhada naquele tópico, pois lá coloquei muitas outras informações que provavelmente serão relevantes para vc.

      O link é este:   "Esp-01 travando com Rele na GPIO2"

      Espero ter colaborado pra elucidar a questão. Caso tenha algo que eu possa ajudar e esteja ao alcance, não deixe de perguntar.

      Abrçs

     Elcids

Bom dia, Elcids!

Muito obrigado pela atenção e pelo conteúdo transmitido.

Dei uma estudada melhor sobre o diagrama da placa e constatei o que você mencionou...

Darei uma olhada no link da postagem sugerida, sobre trocar o acionamento pro GPIO2. Era uma alternativa que havia me passado pela cabeça.

Assim que possível (ando sem tempo algum), farei alguns testes e volto para dar o feedback!

Boa tarde, 

As imagens enviadas não podem ser acessadas. 

Estranho, estavam OK.  Parece que o site adicionou um "https://" no fim do link.

Mas, segue novamente abaixo:

IMAGEM 1:  LINK

IMAGEM 2:  LINK

As imagens não são de minha autoria. Mas possuo o mesmo hardware e testei a modificação ilustrada.

Aqui no Lab tem inúmeros tópicos sobre acionamento indevido de relé com o ESP01, durante a energização. 

Não sei o como o pessoal resolveu.

Sugiro que pesquise no Lab. 

Boa noite amigo, já tive esse problema em um projeto, depois de um tempo de pesquisa e testes solucionei o problema habilitando o resistor de pullup através do software.
Depois disso tudo rodou sem problemas!

ABS.

Agradeço pela informação, Renato!
Até hoje não tive tempo de voltar a realizar testes. Farei assim que possível.

Grato.

Olá Renato, tem como falar qual código vc inseriu ? Estou passando por este problema tbm

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço