Pessoal,

Eu tenho um sensor de pressão que é alimentado com 3V3 e se comunica com o ESP32 por I2C. Isso funciona perfeitamente.

Agora eu estou tentando adicionar um RTC DS1307 ao projeto. Liguei o DS1307 também em 3V3 e ele funciona perfeitamente, porem, quando eu adiciono o sensor ao barramento, o RTC para de funcionar.

Será que é porque o DS1307 funciona em 5V e eu estou ligando em 3v3? Mas se ele sozinho funciona, o que pode estar fazendo ele travar?

Nota: O endereço do sensor é 0x6D, ou seja, diferente do DS1307.

Agradeço qualquer ajuda.

Anexo o esquema de ligação que eu fiz

Exibições: 139

Anexos

Responder esta

Respostas a este tópico

Boa tarde.

Quando os dois módulos estão ligados no ESP32, se voce rodar o I2Cscanner, os endereços aparecem na listagem?

Verifique se os módulos já tem os resistores de pullups. Se tiverem é bom que tenha

somente um par de resistores no BUS.

RV mineirin

Olá Rui, bom dia!
O I2Cscanner só detecta quando tem apenas um dispositivo no bus. Quando eu coloco os dois ele retorna que os dispositivos não foram encontrados.

Eu li que DS 1307 ja vem com resistores de 3K3, então eu tirei os do meu projeto, mas mesmo assim eles não são reconhecidos.

Obrigado pelo interesse.

Zé Roberto 

Boa tarde.

Vc está usando o chip do DS1307 ou um modulo com este chip?

Se for o modulo, lembre-se que o modulo tem uma memoria EEPROM externa que também tem

um endereço de I2C.  E acho que é 0x68.

No seu esquemático não mostra a ligação dos GND dos módulos com o GND do ESP.

Qual sensor de pressão vc está usando?

RV mineirin

Boa tarde.

Esta é uma imagem que encontrei na web.

Mostra o endereço da EEPROM 24C32 existente no modulo DS1307.

Serial Monitor I2C Scanner

RV mineirin

Andei passando por problemas semelhantes e que não resolvi totalmente.
No meu caso funcionava os dois sensores no Arduino e não na esp32/cam e na esp8266.

Testes que fiz até conseguir fazer funcionar na esp8266. Na esp32 tenho que voltar um dia para testar.
1 - Use o i2c scanner com um dispositivo conectado de cada vez.

 resultado esperado achar os dois.
2 - coloque os dois juntos (detalhe, use a menor distância de fio possível, se der conecte direto na protoboard)
 execute o i2c scanner novamente e veja se aparecem.

3 - faça os testes retirando os resistores.

No meu caso ele encontrava isoladamente, porém o fio tinha uns 20cm e quando eu colocava os dois não encontrava, embora com a placa do Arduino ele achava.

obs: Eu estava testando com um módulo de bússola e um display. 

Mateus, 

Primeiro, obrigado pelo seu interesse. 

Nos meus testes, os dispositivo aparecem individualmente no I2C Scanner, nas quando conecto os dois ele não encontra.

Vou testar com o Arduino.

Zé Roberto

Bom dia, 

Verifique se o módulo DS1307 e o sensor de pressão já tem resistores de pullup. 

Vi que você inseriu mais resistores de pullup. 

Só pode ter um resistor para cada linha do I2C. 

Bom dia Murta,

Obrigado pelo seu interesse.

Do meu circuito eu já removi os resistores. Voce acha que se eu remover os do DS1307 vai resolver?
Vou fazer esse teste.

Zé Roberto

Você vai precisar de pelo menos um resistor pullup na linha SDA e um resistor pullup na linha SCL. Se tiver mais de um em cada linha, estará fora da especificação I2C. 

O resistor pullup padrão para a alimentação de 3,3V é de 3,3 K ohms. 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço