Как подключить два датчика APDS-9960

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить
Аватара пользователя
iCCCP
Встал на лапы
Сообщения: 139
Зарегистрирован: Ср мар 27, 2024 07:33:06

Как подключить два датчика APDS-9960

Сообщение iCCCP »

Здравствуйте, делаю макет манипулятора управляемый через два датчика жестов APDS-9960, которые в свою очередь управляют сервами(Один датчик управляет сервой захвата(сжатие\разжатие) сигнальный провод сервопривода идет на D7 Arduino и сервопривод поднятия(вверх\вниз) сигнальный провод сервопривода идет на D9 Arduino, а второй датчик управляет сервой поворота(право\лево) сигнальный провод сервопривода идет на D10 Arduino и сервой выдвижения(вперед\назад) сигнальный провод сервопривода идет на D8 Arduino). И возник такой вопрос как правильно подключить два датчика APDS-9960 по i2c к Arduino Uno. Мне сказали что нужен конвертер логических уровней( так как датчики APDS-9960 должны быть запитаны от 3,3 v) и мультиплексор CD74HC4067 , но мне не ясно как этот мультиплексор будет работать если он аналоговый.
Пробовал собрать по этой схеме
photo_5312202692467821408_y.jpg
(190.84 КБ) 85 скачиваний
, но датчики не работают (даже ИК светодиоды не горят), но если подключать к Arduino один датчик на прямую и запитывать его от 5 v, то все работает (ИК светодиоды горят)
Кому не сложно пришлите пожалуйста схему\код
photo_5312202692467821445_y.jpg
(181.67 КБ) 76 скачиваний
Примерный код, написанный нейронкой:
код.txt
(6.7 КБ) 72 скачивания
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6646
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Re: Как подключить два датчика APDS-9960

Сообщение AlexS4 »

у APDS-9960 вроде нет установки адреса устройства I2C - значит действительно надо разделить SDA,
но применять мультиплексор для этого особого смысла нет, экономии gpio это не даст, лучше в I2C библиотеке сделать SDA на 2 разных GPIO для разных сенсоров.

что касается конвертирования уровней, для конкретно вашего случая нужно 3 резистора ~200..300ohm
между gpio mcu и i2c-io (на соединенные входы SCL1,2 - 1 общий и по 1 отдельному на каждый вход-выход SDA1,2).
при этом можно включить встроенные в mcu пуллапы для gpio на которые навешаны SDA1,2 или навесить внешние 3.3..10k со стороны SDA1,2 на +3.3V.
Ответить

Вернуться в «Arduino»