Pessoal, tenho um chip QMC5883L (clone Chinês) do HMC5883 pelo que andei pesquisando.
O clone tem endereço 0x0d Quando rodo um programa i2c scan no Arduino, ele encontra o endereço, e consigo usar esse chip na placa do Arduino com a biblioteca  QMC5883LCompass.h

O que não tenho conseguido de forma alguma é achar esse chip em uma ESP32 com o i2c scan, ou mesmo utilizar a biblioteca  QMC5883LCompass.h com a placa ESP32. 

Alguém já passou por esse problema. 

Exibições: 196

Responder esta

Respostas a este tópico

Eu coloquei um display i2c no barramento, e ele é encontrado.

Olá, Mateus!

   Verificou se a interface I2C do display tem os pullups?

D. T. Ribeiro.

Eu não tenho certeza, mas acredito que os dois módulos possuem os pullups:

A bússola é essa 
https://pt.aliexpress.com/item/32683701249.html?spm=a2g0o.order_lis...

E o display é esse:
https://pt.aliexpress.com/item/4001028369082.html?spm=a2g0o.order_l...

Instalei a python na ESP e tem o mesmo comportamento, só encontra o display. Já o Arduino acha os dois sem problemas.  

Bom dia, 

você diz:

"Pessoal, tenho um chip QMC5883L"

Você tem o chip ou um modulo com o chip?

Se for o modulo, poste uma foto ou link dele.

Se for modulo, quando usando com ESP32, com que voltagem vc está alimentando o modulo.

RV mineirin

Olá, Mateus!

   Achei um link com um esquema de display OLED I2C, que talvez seja o mesmo do que você está usando.

   No esquema aparecem os pullups da I2C. Veja o LINK -> http://wiki.sunfounder.cc/index.php?title=File:Rer.png

Por que você não tenta colocar os pullups ( ≈ 10 kΩ ) no circuito com a bússola. Se for este o problema, está resolvido. Se não adiantar, aí teremos de esperar que o minerim resolva! :-)

Saudações!

D. T. Ribeiro.

Olá, eu verifiquei que há resistores de. 4k7 em pull-ups.
Me chama a atenção é o Arduino reconhecer ele no barramento i2c e a ESP não.
Final de semana vou intensificar os testes.
Eu comprei um módulo “nacional” agora e vamos ver se ele irá se comportar da mesma forma.

No site do vendedor traz o esquema. | GY-273 QMC5883L Module Triple Axis Compass Magnetometer Sensor 3V-5V
https://a.aliexpress.com/_mLTQyMK

Olá.

  Sempre que eu vi problemas assim foi questão de fiação/pullup, endereço, etc.

  Mas, estava vendo a outra possiblidade, que seria a velocidade.

  Veja em:

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-ref...

  Fala que a velocidade maxima do i2c é de 4MHz.

  Ela é configurável pelo comando: i2c_config_t()

  Do outro lado tem o: 

  https://datasheet.lcsc.com/szlcsc/QST-QMC5883L-TR_C192585.pdf

  Em que na pagina 14, Tabela 9, fala que o clock maximo é 400KHz.

  Deve ser isso.

Olá, tentei inicialmente compilar o código que baixa a frequência do barramento i2c, mas o código não compila. Vou me dedicar a isso agora, tentar rodar e baixar frequência.
Essa dica faz muito sentido, pois o Arduino acha e a ESP não. Sendo ela muito mais rápida que o Arduino, pode ser por aí o problema. 

Comprei 4 bússolas de um site nacional a primeira que abri está com o endereço 0x0d (clone chinês).

 

 Ainda não foi, fiz as seguintes modificações na inicialização do Wire.

Wire.begin(14,2);

Wire.setClock(4000); 

Ou

Wire.begin(14,2,4000);


 

Olá, Mateus!

   A velocidade pode ser problema, como o Eduardo salientou, mesmo sendo a I2C uma interface síncrona, i. e., tendo uma linha de clock separada da linha de dados que determina o instante em que o dado é válido.

   Por quê? Porque sendo uma comumnicação entre dois ( ou mais ) sistemas abertos, não necessariamente as velocidades máximas de todos são iguais.

   Aí, se um dos sistemas estiver operando em uma velocidade maior do que a máxima de algum outro, a comunicação não será possível para estes dois.

   Inclusive o documento que o Eduardo conseguiu, que diz que a velocidade máxima é 400 kHz, indica que o modo utilizado é o fm+ ( fast mode plus ), o modo mais rápido disponível para a I2C nos primórdios de sua criação.

   Normalmente, neste caso, eu inicio testando com a velocidade padrão da I2C: 100 kHz porque, se os dispositivos obedecem o padrão, nesta velocidade tem que se comunicar.

   Depois vou aumentando, se necessário. Na maioria dos casos esta velocidade está de bom tamanho.


D. T. Ribeiro.

P. S.: Quando você diz "Olá, eu verifiquei que há resistores de. 4k7 em pull-ups.", imaginei que      esteja  falando da bússola, não do display.

        Se tiver um osciloscópio, meça os sinais SCL e SDA a poste-os, por favor.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço