Olá, acho que deve ser uma dúvida banal, porem estou com dificuldades com meu leitor de temperatura infravermelho, estou com o MLX9614 e utilizando o ESP32, a leitura fica fixa em:
Ambiente = 1037.55*CtObjeto = 1037.55*C
Ambiente = 1037.55*CtObjeto = 1037.55*C
Ambiente = 1037.55*CtObjeto = 1037.55*C
Ambiente = 1037.55*CtObjeto = 1037.55*C
Ambiente = 1037.55*CtObjeto = 1037.55*C
Ambiente = 1037.55*CtObjeto = 1037.55*C
Ambiente = 1037.55*CtObjeto = 1037.55*C
Ambiente = 1037.55*CtObjeto = 1037.55*C

o código peguei na Arduino e CIA:

https://www.arduinoecia.com.br/sensor-de-temperatura-mlx90614-arduino/

temp.ino

O que devo fazer para que a leitura fique correta. 

PS.: Mesmo aproximando outras temperatura ela permanece idêntica 

Exibições: 590

Responder esta

Respostas a este tópico

Por favor não cole código na área de texto do tópico.

fica poluído e perde caractere e formatação.

Remova o que vc postou e anexe como arquivo clicando no

pequeno clip acima da tela.

RV mineirin

Boa noite,

Para testar a comunicação I2C com o ESP32, use esse programa para identificar o endereço do chip. 

No meu sensor, o endereço foi 90 (0X5A). 

I2C Scanner: 

https://github.com/Gustavomurta/ESP32-DVM/blob/master/ESP32_I2Cscan...

Para testar o sensor, eu usei essa biblioteca: 

Adafruit-MLX90614-Library

https://github.com/adafruit/Adafruit-MLX90614-Library

Tutorial :

https://learn.adafruit.com/using-melexis-mlx90614-non-contact-senso...

Você nãp pode usar o circuito do link que enviou, pois o barramento do ESP32 usa 3,3V. 

O barramento do MLX90614 usa 3,3V também. 

Mas o LCD usa 5V - não pode conectar junto. Para usar o LCD, vai precisar de um conversor de nível lógico. 

Teste o sensor sem LCD - leitura na console da IDE Arduino. Depois implemente o LCD. 

Boa noite KC,   (se não gosta que te chame pelas iniciais, avise),

obrigado por atender a minha solicitação.

Pelo que expos, você está usando a serial para ver o resultado da temperatura.

A minha sugestão é que você desligue o LCD do seu ESP e concentre primeiro em resolver a comunicação 

I2C com o  MLX9614 .

NO arduino o I2C é fixo, mas no ESP32 voce tem que informar quais ports vai usar para o I2C,

e não existe esta definição no link que postou.

Vc define assim:

Exemplo:

# define SDA_I2C 23    // Ligue o SDA no port 23
# define SCL_I2C 25     // Ligue o SCL no port 25

e no setup()


Wire.begin (SDA_I2C, SCL_I2C); 

Na biblioteca Adafruit_MLX90614.h, no arquivo "Adafruit_MLX90614.cpp",  na linha 23 está escrito:

      * @param i2caddr The I2C address to use. Defaults to 0x5A

Portanto é muito provável que o seu MLX9614 tenha este endereço.

O valor acima esta aparecendo pois o ESP32 não conseguiu comunicar com o MLX9614.

O uso de um sketch  de  scan é bom pois ao mostrar o endereço significa que o ESP conseguiu 

 se comunicar com o dispositivo.

RV mnineirin

PS:  Alguns sensores  MLX9614 não tem os resistor de pull-up exigidos pelo Bus I2C.

veja este caso: https://components101.com/sensors/melexis-mlx90614-contact-less-ir-...

Observe o esquema.

Isto pode causar erro de leituras no dispositivo.

Poste uma foto do seu dispositivo de frete e verso para que possamos verificar se ele tem os resistores,

ou se quiser testar, coloque um resistor de 10K do +3.3V para cada port do bus I2C.

No datasheet do MLX9614  encontrei mais uma informação importante.

https://www.sparkfun.com/datasheets/Sensors/Temperature/MLX90614_re...

Se ele for um  MLX9614 A  ele é para 5V  e se for MLX90614 B é para 3V.

Qual modelo você tem aí?

Bom dia Rui, 

No meu sesnor MLX90614 tem um regulador de 3,3V para alimentação.

E possui também dois resistores de pullup de 4,7K ohms. 

Abraços

Bom dia José Gustavo Abreu Murta,

qual modelo é o seu sensor?   Letra A ou B?

Abraços.

RV mineirin

Rui, 

Meu sensor BAA2844A16 para 3,3V

Part No. MLX90614 X   X   X
                           (1) (2) (3)
(1) Supply Voltage:
A - 5V power
(adaptable for 12V)
B - 3V power


(2) Number of thermopiles:
A – single zone
B – dual zone


(3) Package type:
A – Filter inside
B – Filter outside

???

Meu sensor é BAA

B - 3V power

José Gustavo Abreu Murta

Corrigindo o link 

https://mel-prd-cdn.azureedge.net/-/media/files/documents/datasheet...

7.1. MLX90614Axx

Parameter            Symbol Test Conditions    Min  Typ   Max    Units

External supply        VDD                             4.5    5     5.5      V

7.2. MLX90614Bxx, MLX90614Dxx

Parameter            Symbol Test Conditions    Min   Typ  Max   Units

External supply       VDD                              2.6    3      3.6    V

RV mineirin

Meu módulo do sensor MLX90614 (HW-691) 

Possui um regulador de 3,3V  e dois resistores de 4,7K de pullup do barramento I2C (3,3V). 

VIN = 5V 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço