Я уже писал статью про APDS9960 https://dzen.ru/media/mega_animeshnik/661de897dbc1430ad9b68196 но там была речь про библиотеку от SparkFun. Сегодня, я хотел потестить датчик для определения температуры света, получилась хрень, то ли датчик мой совсем паль, то ли что.
Проблема
Скаченная библиотека и скетч из примера, не хотят работать с датчиком и выдают только "failed to initialize device! Please check your wiring."
Решение
В файле Adafruit_APDS9960.h, найти и заменить
APDS9960_GCONF4 = 0xAB,
на
APDS9960_GCONF4 = 0xA8,
В файле Adafruit_APDS9960.cpp
uint8_t x = read8(APDS9960_ID);
if (x != 0xAB) {
return false;
}
заменить на
uint8_t x = read8(APDS9960_ID);
if (x != APDS9960_GCONF4) {
return false;
}
После этого, палёный датчик, скорее всего заработает, мой заработал.
Имейте в виду, что если вы захотите заменить датчик, вам может понадобится обратно 0xA8 заменить на 0xAB.