Вверх ↑
Главный модератор
Ответов: 2997
Рейтинг: 395
#1: 2022-02-02 00:52:23 ЛС | профиль | цитата
Перезалил схему.

BH1750 цифровой 16-битный датчик освещённости (люксметр) со стабилизатором напряжения и удобными выводами подключения:

    VCC — питание 5 В;
    GND — общий;
    SDA — данные;
    SCL — синхронизация;
    ADDR — выбор адреса;
Диапазон измерений: от 1 до 65535 люкс. Согласно datasheet, датчик BH1750 чувствителен к видимому свету и практически не подвержен влиянию инфракрасного излучения, т.е. реагирует примерно на тот же спектральный диапазон, что и человеческий глаз. У датчика BH1750 вывод ADDR — это выбор адреса на шине I2C. BH1750 отвечает на запросы, в зависимости от уровня сигнала на входе ADDR, по адресу 0x23 или 0x5C. Это значит, что управляя сигналом ADDR можно одновременно работать с двумя датчиками BH1750. Для того, чтобы работать с большим количеством датчиков BH1750 надо ставить на шину I2C расширители адресов, либо использовать динамическое управление уровнем на выводах ADDR. Я использовал второй способ, так как управление расширителем адресов шины I2C - это дополнительные расходы, а количество датчиков меньше чем выводов TTL уровня у контроллера CH341. Следующая таблица показывает логику выбора любого из 3-х датчиков для опроса по адресу 0x23:
Датчик с адресом 0x23Сигнал на выводе D0Сигнал на выводе D1Сигнал на выводе D2
1-й 0 1 1
2-й 1 0 1
3-й 1 1 0

Для работы с 3-мя датчиками собираем следующую схему и, управляя в программе уровнями сигналов на выводах D0-D2, выбираем только один датчик, который будет отвечать на адрес 0x23, что позволит прочитать данные с любого из 3-х датчиков.

P.S. Для тестирования на макетной плате подтягивающие резисторы можно не подключать.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1Core_CH341_Multi_Sensors.sha.zip [1.7KB] [214]
Редактировалось 8 раз(а), последний 2022-02-03 09:03:42