Caros,

Estou tentando utilizar 3 dispositivos na interface I2C, em um Wemos D1-R2 mini:

MPU6050 - acelerômetro e giroscópio

MAX30100 - frequencímetro de pulso e medidor de O2

GY906-MLX90614 - medidor de temperatura ambiente e de objeto

Mas quando conecto os 3 o GY906 fica maluco, coletando um valor fixo nas 2 temperaturas 1307 graus aproximadamente, isso pode ser devido ao resistor de pull-up? caso seja qual seria o valor ideal para esses resistores, estou utilizando alimentação de 3,3V para todos os dispositivos.

Exibições: 2009

Responder esta

Respostas a este tópico

Aqui vão:

Todos já com o resistor de pullup soldados na placa.

Vou tentar mudar o endereço do termômetro de 0x57 para outro qualquer totalmente diferente.

Bom dia, 

Não entendi . De qual placa você retirou os resistores de pullup ??

Você não deve usar 3 pares de resistores de pullup. Somente um par - o recomendado é de 4,7K. 

https://en.wikipedia.org/wiki/I%C2%B2C

http://www.arduinobr.com/arduino/i2c-protocolo-de-comunicacao/

https://learn.sparkfun.com/tutorials/i2c/all

Eu tirei dos 2 últimos dispositivos, mas deu problema, o MPU6050 não está mais comunicando de forma adequada, não sei se você reparou mas os 3 dispositivos possuem reguladores e os resistores de pullup estão ligados a eles, você acha recomendável retirar todos os 3 pares e colocar apenas um par na alimentação principal como estão nos docs que você indicou?

Os resistores de pullup não tem nada a haver com reguladores de tensão.

Eu pedi que enviasse as fotos dos módulos para eu confirmar se retirou os resistores corretos.

Ficarei aguardando essas fotos. Sugiro que mantenha somente os resistores de 4,7K do GY906-MLX90614.

Envie as fotos dos 3 módulos novamente. 

Os módulos tem reguladores de 3,3V. 

Informe o valor da tensão aplicada nos pinos de alimentação (não pode ser somente 3,3V) 

GY906-MLX90614 - VIN ( 4.3V<Vin<6V) 

MPU6050 - VCC 

MAX30100 - VIN 

DEVE SER POR ISSO QUE TEM OCORRIDO PROBLEMAS NA SUA MONTAGEM.

Realmente o GY906 a tensão de alimentação é 5V, (https://www.wiltronics.com.au/wp-content/uploads/datasheets/ard2-21...) e a saída é 3V3 por causa do regulador 662K.

O GY521-MPU6050 a alimentação pode variar de 3 a 5V e o RWCL0530-MAX30100 o VIN pode varia de 1,85 a 5,5V, talvez por isso que n]ao estivesse dando certo, vou ligar a alimentação do GY906 em 5V para ver no que dá.

O meu medo é que uso o ESP8266 no qual todas as entradas são de 3V3 e no datasheet diz que se entrar com 5V ele pode pifar.

Carlos, 

Tem que pesquisar bastante antes de ir ligando os módulos. Senão vai ter inúmeros problemas. 

O GY906-MLX90614  deve ser alimentado com 5V !

https://www.wiltronics.com.au/wp-content/uploads/datasheets/ard2-21...

O GY521-MPU6050 deve ser alimentado com 5V !

https://maker.pro/arduino/tutorial/how-to-interface-arduino-and-the...

https://github.com/tobozo/Rotatey_Cube

O MAX30100  deve ser alimentado com 5V !

https://pekolibrary.wordpress.com/2018/05/27/rcwl-0530-max30100/

https://www.teachmemicro.com/max30100-arduino-heart-rate-sensor/

Por isso os seus módulos funcionam incorretamente. 

Ok, tudo bem, vou testar.

Você não acha melhor eu tirar todos os resistores de pullup dos módulos e colocar um externo para 3v3 próximo do ucontrolador?

Não. Sugiro  que siga as minhas recomendações. 

Bom dia, 

O Datasheet do MAX30100 informa esses seguintes endereços. 

Favor testar e confirmar :

I2C Write Address = AE Hex
I2C Read Address = AF Hex

No protocolo da interface I2C use a velocidade de 400 KHz somente. 

Fiz o que você sugeriu tirei os pullups do MAX30100 e do MPU6050, mas o problema continua o mesmo, o termômetro está doido mostrando nas duas temperaturas 1037.55.

Boa tarde, Carlos, Favor responder . 

1) Alimentou todos os módulos com 5V ?

2) Rode o I2S scanner com cada um dos módulos. Envie todas as mensagens do programa.

3) Depois rode novamente o I2Scanner com os três modulos conectados. Envie todas as mensagens do programa.

Arduino I2C scanner 

https://playground.arduino.cc/Main/I2cScanner

Sim, todos os módulos ligados em 5V.

Rodando o i2c_scanner:

Com o módulo GY906-MLX90614:

Scanning...
I2C device found at address 0x5A !
done

Com o módulo GY521-MPU6050:

Scanning...
I2C device found at address 0x68 !
done

Com o módulo MAX30100:

Scanning...
I2C device found at address 0x68 !
done

Com os 3 módulos conectados:

Scanning...
I2C device found at address 0x57 !
I2C device found at address 0x5A !
I2C device found at address 0x68 !
done

Aparentemente tudo certo, tudo normal.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço