GY-30 (BH1750) - не дружит с остальными модулями

sveloga
Offline
Зарегистрирован: 02.07.2016

H!



Имеется GY-30 - люксметр

подключен к Mega2560 на 20 и 21 пин

работает прекрасно!



Стоит подключить HMI Nextion на 2 - 10 пин, показания при том же освещении падают в два раза.



Если добавить еще DHT-22 (пин 4) и часы ZS-042, то просто перестает работать



И вдогонку про I2C вопрос: Я так понимаю все устройства подключаются параллельно?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Питание? В смысле - недостаток питания?

И да - на I2C все устройства подключаются параллельно. Смотрите также, чтобы подтягивающие резисторы были только на одном устройстве, иначе номиналы подтяжки сильно упадут и будет работать по фазам Луны.

sveloga
Offline
Зарегистрирован: 02.07.2016

Nextion питается отдельно. А глюки уже наблюдаются.... 

Про подтягивающий резистор: в каких случаях он необходим и каким номиналом?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

sveloga пишет:

Nextion питается отдельно. А глюки уже наблюдаются.... 

Про подтягивающий резистор: в каких случаях он необходим и каким номиналом?

Без вашей схемы подключения, без знания, какой источник питания юзается, без подробной информации - не разобраться, что происходит.

Для I2C подтягивающие обычно ставят 10К на линии SDA и SCL, они на китайских модулях (том же BH1750) уже встроены на платку модуля. Просто если у вас будет N таких плат с подтягивающими, получится, что резисторы подключены к шине параллельно, следовательно, номинал подтяжки сильно падает. Если у вас только BH1750 висит на шине - забейте, должен работать.

sveloga
Offline
Зарегистрирован: 02.07.2016

Причем, если вместо BH1750 ставлю часы реального времени, то проблем не наблюдается.

Схема:

 

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Отрубите Nextion и гляньте, что будет. Не вижу объединение GND от Nextion с GND дуины - хоть и питаются от одного компа, но уровни выровнять не помешает.

Вообще - странное поведение: и меня на I2C трудятся и Si7021, и DS3231, и BH1750 - все вместе, китайскими платками, всё работает и есть не просит.

И да - странное у вас подключение Nextion - пины вразброс, пятый и десятый :) Как понимаю, юзаете SoftwareSerial? На схеме все элементы, которые подключены? И дайте уже скетч, что ли - может, и там какая закавыка.

sveloga
Offline
Зарегистрирован: 02.07.2016

Объеденить каким образом? GND от панели соеденить с GND на плате Меги? 

Т.е. лучше пользоваться одним источником питания? Как лучше по питанию сделать? 

Делаю проект в flprog, и там почему-то выбор пинов для меги такой. Не выберешь пин 2 и пин 3. 

А что скетч... ?

Самый примитив из примеров к библиотеке BH1750.

#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(1000);
}

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

sveloga пишет:

Про подтягивающий резистор: в каких случаях он необходим и каким номиналом?

По дэйташиту от 1.8к до 47к. Должен быть обязательно. Проблема в том, что если Вы пользуетесь не "голым" чипом, а спаянным китайцами модулем, обычно они там уже присутствуют. Причем, не слишком большого номинала. Мне встречались приборы с впаянными резисторами 2.2к. Подсоединить к такому другой модуль с ЛЮБЫМИ резисторами уже проблемаимяно. В этом случае единственный вариант - выпаивать.

sveloga
Offline
Зарегистрирован: 02.07.2016

про подтягивающие резисторы учту на будущее!!!

А проблема-то оказалась в питании! 

Если nextion и arduino питать от одного компа разными с разных усб портов, то получаю вышеописанные глюки!

Если ардуину от УСБ, а некстион от БП, то панель не дружит с ардуиной.

Если на ардуину от БП 12В, а некстион от адрдуины, то ардуина греется аццки!

чем кормить, подскажите?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Поставить импульсный преобразователь 12->5 и от него питать все 5-вольтовые цепи.