I2C'шные датчики
eddy_em — 10.10.2025
Решил провести сравнительный анализ разных датчиков (прежде всего,
измеряющих влажность воздуха). Для начала нужно свести к
единообразному интерфейсу все наработки (ну и дописать для тех
датчиков, с которыми я еще не работал). Пока три датчика едут с
алиэкспресса (оказывается, у меня еще не весь "зоопарк" из
более-менее распространенных есть; правда, более дорогие жаба
задушила покупать, возможно, когда-нибудь попозже), решил начать с
того, что уже есть — подготовить почву, так сказать.Пока только BMP180. Зато уже основную 'ООПщину' сделал. Если заменить i2c.c, можно и на микроконтроллере запускать.
Для непосредственного доступа к датчикам по I2C "в обход микроконтроллеров" использую переходник на основе CP2112. Ну, а чтобы в одну шину объединить датчики с одинаковыми адресами (а таких, увы, достаточно много - и нет никаких ног, позволяющих хотя бы один младший бит адреса поменять), использую мультиплексор PCA9548A.
Сначала думал подгрузить кернельный модуль, который вроде как создает 8 "подустройств", но, во-первых, так и не понял, что за параметры нужно передавать в modprobe (как минимум, нужно его адрес указать и устройство, на котором он сидит), а во-вторых, таки проще им рулить напрямую, не плодя файловые дескрипторы (все равно нужно, похоже, закрывать один и открывать другой, чтобы не смешивать разные устройства с одинаковыми адресами в одной шине).
|
|
</> |
Муж, жена и соцсети
Бутербродик на завтрак
Распаковка зимняя
За что студента могут отчислить из вуза (и когда стоит побороться за свои права)
Неслучайное фото
Мадуро, конечно, жалко
“Не судите меня”: чем питается Индия Хикс
Косолапое совершенство: чем уникальна конструкция грузовых внедорожников Tatra

