54612 lx на GY-30

Pahom-ka
Offline
Зарегистрирован: 01.12.2014

Добрый день!

Использую Mega 2560 rev.3

Подключаю GY-30, использую скетч из примера, однако постоянно ответ - 54612, не меняется. Гуглил - народ сталкивался такой же проблемой, однако решений не нашёл. Никто не сталкивался?

 

Logik
Offline
Зарегистрирован: 05.08.2014

Pahom-ka пишет:

Добрый день!

Использую Mega 2560 rev.3

Подключаю GY-30, использую скетч из примера, однако постоянно ответ - 54612, не меняется. Гуглил - народ сталкивался такой же проблемой, однако решений не нашёл. Никто не сталкивался?

 

В строке 84 не правильный индекс.

Pahom-ka
Offline
Зарегистрирован: 01.12.2014

Logik пишет:

В строке 84 не правильный индекс.

может 74? тем не менее - никакого результата, другое число но всё равно статичное

Pahom-ka
Offline
Зарегистрирован: 01.12.2014

Так никто не подскажет? И пины уже разные пробовал и А5-А4 и 53-52 как на самой микросхеме написано.

Logik
Offline
Зарегистрирован: 05.08.2014

Pahom-ka пишет:

Так никто не подскажет?

Нет конечно. Если Вам не приходит в голову мысль о необходимости выложить скетч, изобразить схему подключения, то почему это должно кого либо волноват? 

Pahom-ka
Offline
Зарегистрирован: 01.12.2014

Никого не должно:) Но спасибо за наводку. Итого, дано:

Arduino Mega 2560 rev3

Датчик освещённости Gy-30 (подключён через макетку).

Скетч:

#include <Wire.h>
#include <BH1750.h>
BH1750 lightMeter;
void setup(){
  Serial.begin(9600);
  lightMeter.begin();
  Serial.println("Running...");
}
void loop() {
  uint16_t lux = lightMeter.readLightLevel();
  Serial.print("Light: ");
  Serial.print(lux);
  Serial.println(" lx");
  delay(500);
}

VCC->5v, GND->GND

SCL, SDA пробовал и как A5,A4, так и 21,20. Если откинуть датчик кстати, то всё равно в порт пишется это значение. 

Logik
Offline
Зарегистрирован: 05.08.2014

Надеюсь либа отсюда - https://github.com/claws/BH1750. 

Если верить этому

// Start measurement at 0.5lx resolution. Measurement time is approx 120ms.
// Device is automatically set to Power Down after measurement.
#define BH1750_ONE_TIME_HIGH_RES_MODE_2  0x21

То надо бы паузу делать перед получением результата. Вы получаете 54612, это cоответствует 0xffff от датчика. Учитывая полное отсутствие контроля ошибок в либе это могут быть и проблемы на i2c. Проверяйте соединения. Есть ли другие устройства i2c, чтоб подключить вместо виновника и проверить? Полезно будет найти datasheet на датчик (это вобще всегда полезно, с этого нада начинать) может есть друге команды кроме конфигурирования и получения результата. Стоит попробовать прочитать с него что попроще, особенно хороше версию, модель, номер или вобще что у него есть.

Попробуйте запустить i2c сканер, он перебирает адреса и ищет кто ответит. Это и шину проверит и на случай старинной китайской шутки - тихой замены адреса устройства поможет. Либа ищет его на 0x23.

Pahom-ka
Offline
Зарегистрирован: 01.12.2014

Благодарю за ответ. Обновил на библиотеку по указанному адресу. Залил скетч из примера опять. Не помогло, тоже самое. 

i2c scanner, проработав всю ночь, ничего не показал. Из i2c устройств есть ещё RTC часы, попробую их подключить сегодня вечером. Даташит мне не особо поможет, квалификация не та. 

В любом случае спасибо за помощь! А не подскажете - а как проверить-прозвонить i2c на работоспособность?

Flymen-33
Offline
Зарегистрирован: 22.05.2016

Решил эту проблему установкой библиотеки BH1750FVI.h Вот ссылочка: https://github.com/enjoyneering/BH1750FVI