Форум РадиоКот https://radiokot.ru/forum/ |
|
Чтение пиродатчика MLX90614 https://radiokot.ru/forum/viewtopic.php?f=66&t=196107 |
Страница 1 из 1 |
Автор: | Влад56 [ Пн дек 23, 2024 16:36:41 ] |
Заголовок сообщения: | Чтение пиродатчика MLX90614 |
Методами библиотеки Wire стандартного пакета IDE пытаюсь считать показания дистанционного датчика по I2c шине. Запрашиваю температуру объекта в соответствии с даташит из 0х07 регистра, ровно так как это успешно читалось с Мемс гироскопа на основе MPU6050. Примерно так. Цитата: #include <Wire.h> float Tem; void setup() { Serial.begin(9600); Wire.begin(); // Инициализировать ардуино как мастер } void loop() { Wire.beginTransmission(0x5A); // Начать связь с MLX Wire.write(00000111); // ставим в очередь 007 регистр (T0) Wire.endTransmission(); //закончить передачу Wire.requestFrom(0x5A, 2);//запрашиваем Т0 так как этот регистр MLX поставлен в очередь на передачу Tem=(Wire.read()<< 8 | Wire.read());//получаем значение в переменную Tem=(Tem/50)-272;//и вычисляем ее значение в градусах цельсия delay(300); Serial.println(Tem); } Но в этом случае результата нет. На мониторе стабильно -272 К. В даташите есть информация, что он не поддерживает некоторых способов доступа по шине. Подозреваю, что это как раз тот случай. В интернете рекомендуется библиотека Adafruit для ратоты с этим датчиком. При ее использовании, что то вроде снимается, но она несколько урезана. Нужен второй датчик на шине, адрес которого надо изменить, чего Adafruit явно не предусматривает. Как правильно нужно прочесть регистры этого датчика? Датчик в версии GY-906 |
Автор: | Влад56 [ Вт дек 24, 2024 19:38:52 ] |
Заголовок сообщения: | Re: Чтение пиродатчика MLX90614 |
Проверяю Wire. available - 2 запрошенных байта и читаются со значением -1. Такое впечатление,что его как то инициировать нужно перед чтением, но в даташите об этом ни слова. |
Автор: | BOB51 [ Ср дек 25, 2024 13:10:06 ] |
Заголовок сообщения: | Re: Чтение пиродатчика MLX90614 |
Для MLX9039x вроде своb библиотекb имеются... Там "все включено"... Может и на 90614 уже есть - стоит поискать... В том же менеджере библиотек... ![]() |
Автор: | Влад56 [ Ср дек 25, 2024 14:14:25 ] |
Заголовок сообщения: | Re: Чтение пиродатчика MLX90614 |
Для MLX9039x вроде своb библиотекb имеются... Там "все включено"... Может и на 90614 уже есть - стоит поискать... В том же менеджере библиотек... ![]() Привет Донецку! Она и есть на 90614 от Адафрукт в нескольких релизах. И с ней что то непонятное показывает в районе 2700. 3970. 3622.3622 и т.д., но тут хоть значения не нулевые и разные. При попытке чтения чего нибудь из EEPROM 16 нулей. |
Автор: | BOB51 [ Ср дек 25, 2024 14:39:23 ] |
Заголовок сообщения: | Re: Чтение пиродатчика MLX90614 |
Тогда только чтение даташита "в оригинале" и в версиях перевода плюс наличие "подопытного кролика" для проверок... Да смотрим на вероятность помех от давления, светового луча и ГАД ЖЕтовых излучений. Как вариант - не та библиотека I2C (программная реализация вообще может не работать). ![]() |
Автор: | Влад56 [ Ср дек 25, 2024 16:27:46 ] |
Заголовок сообщения: | Re: Чтение пиродатчика MLX90614 |
Более детальный осмотре плат выявил, что на них запаяны вовсе не MLX90614, а некие деталюхи по виду и размеру похожие на него, но с непонятной маркировкой BAA5366914 и DAA5366913, хоть покупал пару одинаковых пиродатчика GY-906 на базе MLX90614 как указано в накладной. Уже написана претензия продавцу. Посмотрим, что ответит. |
Автор: | BOB51 [ Ср дек 25, 2024 19:35:13 ] |
Заголовок сообщения: | Re: Чтение пиродатчика MLX90614 |
Смотрим еще и на остатки флюса да шарики припоя - платки сейчас такими "подарками" сильно грешат... ![]() |
Автор: | Влад56 [ Чт дек 26, 2024 19:28:46 ] |
Заголовок сообщения: | Re: Чтение пиродатчика MLX90614 |
Уря. ![]() Датчики заработали. Как раз ту темперичу показывают что есть в комнате и на батарее 40 градусов. А дело оказалось в том, что необходимо запрашивать и читать 3 бит - контрольную сумму. Закрывать передачу с индексом (false). Ну и еще кое какие заморчки со сдвигом байтов в переменной. Осталось разобраться как адрес переписать одного из двух датчиков. |
Автор: | BOB51 [ Пт дек 27, 2024 10:29:08 ] |
Заголовок сообщения: | Re: Чтение пиродатчика MLX90614 |
Так у всех "умных датчиков" или контрольная сумма или CRC байт в пакете данных присутствует. ![]() |
Автор: | Влад56 [ Вс янв 05, 2025 17:09:04 ] |
Заголовок сообщения: | Re: Чтение пиродатчика MLX90614 |
Так у всех "умных датчиков" или контрольная сумма или CRC байт в пакете данных присутствует. ![]() А разве есть разница между этими понятиями? Для этого датчика на ютюбе этот бит контрольной суммой называется. В другой теме он же CRC назван. При получении данных он мне не нужен. Прочитал и забыл. А вот чтобы адрес поменять нужно его вычислить, так чтобы с результатом на стороне датчика совпало. Что такое полином Х8+Х2+Х+1 в дата шите не указано. При чтении старого адреса выдает его десятичное значение (90) т.е. 5А и РЕС (190). Как он это значение получил? Не сходиться, если подставить в полином рекомендованные числа. Мне надо адрес на 5В поменять (91). Может ему тогда (191) отправить? |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |