Помогите перевести MLX90614 из PWM mode в I2C
- Войдите на сайт для отправки комментариев
Помогите, как перевести пиродатчик MLX90614 из ШИМ режима в режим цифровой передачи по I2C.
Китаец прислал 5 датчиков, все в ШИМ -режиме. Голову сломал как это сделать. С программированием дружу только на уровне Ардуино. Если у кого есть решение, буду очень благодарен - в долгу не останусь, отблагодарю (финансово). Выкидывать жалко датчики.
В цифровой режим переводятся коротким подтягиванием SCL к +5 во время включения датчика, и показывают все верно.
Есть информация https://geektimes.ru/post/285226/ о том как перевести из режима ШИМ. Но мне нужно это реализовать это на уровне ардуино или каким нибудь более простым методом.
Тут есть информация http://forum.arduino.cc/index.php?topic=314581.0 как прочитать eeprom , вот бы на этом примере реализовать скетч по внесению изменений в него.
Работают оба способа!!!
Особенно спасибо за библиотеку которая может переписывать еепром датчика. Все работает. Хотя сама библиотека не совсем функционирует, но главной в ней для меня функция работает. ))
Напишите мне в личку или на почту pavts80@mail.ru свой телефон, яндекс, киви или карту сбера. Как обещал отблагодарю ))) еще раз огромнейшее спасибо.
Помогите пожалуйста у меня проблемма купил два датчика GY-906 MLX90614ESF залил скейтч, подключил и не чего не рабоает, потом залил сканнер I2C и он не неодит не одно устройство, я так понял эти датчики прили в PWM режиме, сделал выше описанное не помогает, подскажите как быть и как вообще можно проверить их?
Выполните только пункт 1) сначала. Если поможет и температура станет правильно отображаться, то датчики в ШИМ режиме. Если все равно не будет ничего, то деле не в ШИМ режиме.
скажите первый пункт правельно выполнил?
Похоже на правду. Только pinMode(A5, INPUT) напрасно делаете, по-моему. Сразу Wire.begin() после переключения и пошли читать/сканировать адреса...
Похоже на правду. Только pinMode(A5, INPUT) напрасно делаете, по-моему. Сразу Wire.begin() после переключения и пошли читать/сканировать адреса...
кстати думал нужо ли pinMode(A5, INPUT) делать или нет, но попробовал и так и так и результата нет ни какого , обидно заказал два датчика и оба не работают(((
Зайдите с другой стороны и проверьте их в PWM-mode. Покажут правду - значит в PWM, нет - видимо проблема с датчиком/соединением.
еще ба знать как проверить их в PWM режиме, есть скейтчи у кого примерочные?
Спасибо, помогло. Тоже столкнулся с датчиком, у которого SDA пин работал в режиме PWM и шина i2c зависала. Видимо, китайцы ставят Б/У датчики, в которых не стоят настройки по-умолчанию. Вместо одной строчки я использовал функцию setEEPromDefaults, чтобы сбросить все настройки датчика по умолчанию, а то неизвестно, что там накрутили китайцы. У моего датчика много настроек было исковеркано. Так же нашел неплохую библиотеку sparkfun mlx90614, у неё ещё больше плюшек, есть режим сна и пробуждения датчика. А вот запись в EEPROM в ней не в публичных функциях, поэтому без изменения библиотеки EEPROM не записать. Но один момент я у них взял - это режим отключения PWM по пункту 1, он короче, чем в вашем примере. Выкладываю итоговый код. Сперва надо раскомментировать два участка кода в setup, выполнить его с датчиком, настройки датчика будут сброшены в режим "по умолчанию" и включится режим i2с, а потом надо обесточить всю систему, снова закомментировать эти два участка кода и наслаждаться стабильным режимом i2c.
Код можно и сократить, но я решил не вырезать функции коррекции ошибок и пр. навороты.
Помогите пожалуйста у меня проблемма купил два датчика GY-906 MLX90614ESF залил скейтч, подключил и не чего не рабоает, потом залил сканнер I2C и он не неодит не одно устройство, я так понял эти датчики прили в PWM режиме, сделал выше описанное не помогает, подскажите как быть и как вообще можно проверить их?
У меня работал датчик MLX90614 на плате GY-906 и в какой-то момент перестал работать. Использовал ардуино-нано.
I2C сканер ничего не находил.
Чудесным образом заработал после того как я подключил к ногам самого датчика провода и подключил их к ардуино SCL, SDA, 5V, GND. После подключения к ардуино ничего не работало, даже ардуино выключался (переставал показывать монитор порта), потом я подключил датчик через ноги платы и все заработало, но датчик теперь работает только от 3V (от 5V как раньше не работает).
Я не понял почему так получилось, если интересно попробовать могу подробнее описать.
У меня работал датчик MLX90614 на плате GY-906 и в какой-то момент перестал работать. Использовал ардуино-нано.
I2C сканер ничего не находил.
Чудесным образом заработал после того как я подключил к ногам самого датчика провода и подключил их к ардуино SCL, SDA, 5V, GND. После подключения к ардуино ничего не работало, даже ардуино выключался (переставал показывать монитор порта), потом я подключил датчик через ноги платы и все заработало, но датчик теперь работает только от 3V (от 5V как раньше не работает).
Я не понял почему так получилось, если интересно попробовать могу подробнее описать.