// Функция setup() вызываетс раз при запуске скетча void setup() { Wire.begin(); }
//Основной цикл программы void loop() { String portName = ""; delay(50); }
При этом под Arduino Pro 328 выдаётся:
In file included from rgbc_test_sketch.cpp:2: C:\arduino-0021\libraries\I2C_RGBC_Reader/I2C_RGBC_Reader.h:15: error: 'String' does not name a type
А под OR-AVR-M128 выдаётся:
In file included from C:\arduino-0021\libraries\I2C_RGBC_Reader\I2C_RGBC_Reader.cpp:23: C:\arduino-0021\libraries\I2C_RGBC_Reader\/I2C_RGBC_Reader.h:15: error: 'String' does not name a type C:\arduino-0021\libraries\I2C_RGBC_Reader\I2C_RGBC_Reader.cpp:281: error: 'String' does not name a type C:\arduino-0021\libraries\I2C_RGBC_Reader\I2C_RGBC_Reader.cpp: In member function 'void I2C_RGBC_Reader::parameters()': C:\arduino-0021\libraries\I2C_RGBC_Reader\I2C_RGBC_Reader.cpp:446: error: 'String' was not declared in this scope C:\arduino-0021\libraries\I2C_RGBC_Reader\I2C_RGBC_Reader.cpp:446: error: expected `;' before 's'
Возвращаясь к теме I2C адресации. Решения пока не нашел ... Обычно существует 2 варианта изменения адреса для устройства 1. Аппаратный - когда путем подачи 0 или 1 на определенные входы устройство формирует свой адрес 2. Программный - когда в определенный регистр записываются данные на основании которых устройство формирует адрес
Ножек отведенных под смену адреса в даташите нет, значит адрем меняется программно. Осталось выяснить что и куда писать ...
Тоже вчера ничего не нашел. Думал, мож правда бывает такое, но похоже автора просто глюкануло. Обычно в даташитах пишут зашитый i2c адрес, и делают приписку - что диапазон адресов с ... по ... доступен при индивидуальных заказах, пожалуйста, свяжитесь с фабрикой. Может это ввело в заблуждение.
Чтобы подключить несколько таких датчиков скорее всего можно использовать электронный джампер 74LVC1G66, который мы используем на своих OR-AVR-* просто SCL включать\выключать у каждого датчика и всё.
Думается всё гораздо проще решается - у этих датчиков есть SLEEP-линия - можно туда всем датчикам кроме одного подать логическую 1 и они вырубятся. Только один будет на линии и будет отвечать на запросы. Конечно это захавает N gpio портов и не очень красиво, зато это не требует дополнительных компонент.
100ms это на что уходило? По даташиту конечно не указано сколько там этот девайс просыпается, но DATA Set обещано в 0.25ms вроде, или я что-то упустил?
100ms это период отправки в терминал. Думаю эта величина оч. сильно изменяется в зависимости от кода. Тут смысл в том, что при подключении двух сенсоров скорость уменьшается