Проблема с датчиком ms5611.
- Войдите на сайт для отправки комментариев
Вс, 05/08/2018 - 13:08
Здравствуйте, уважаемые форумчане. Помогите пожалуйста разобраться в чем может быть проблема? Есть датчик давления ms5611, датчик темпеературы ds18b20 , датчик влажности si7021,arduino nano. Выполнение скетча зависает на 21 строке. Если её закоментировать, то скетч выполняеться полностью, но не работает датчик. Что делать?
#include <iarduino_RF433_Transmitter.h> #include <DallasTemperature.h> #include <Wire.h> #include <SI7021.h> #include <MS5611.h> #define ONE_WIRE_BUS 5 OneWire oneWire (ONE_WIRE_BUS); Датчик SI7021; MS5611, ms5611; unsigned long realPressure; float d; двойной referencePressure; Даллас-датчики температуры (& oneWire); радиостанция iarduino_RF433_Transmitter (12); int data [3]; int t; int h; void setup () { Serial.begin (9600); Serial.print ( "OK"); ms5611.begin (); sensors.begin (); boolean currentLineIsBlank = true; Wire.begin (); Serial.print ( "OK"); Serial.print («Oversampling:»); Serial.println (ms5611.getOversampling ()); radio.begin (); radio.setDataRate (i433_1KBPS); radio.openWritingPipe (5); } void loop () { realPressure = ms5611.readPressure (); d = realPressure / 133.322; h = датчик.getHumidityPercent (); sensors.requestTemperatures (); t = sensor.getTempCByIndex (0); данные [0] = t; данные [1] = h; данные [2] = d; radio.write (& data, sizeof (данные)); Задержка (5000); Serial.println ( "OK"); }
Никогда не встречал в тексте программы незакомментированные русские слова.
Гугл автоматом почему то перевел)
Во-первых, проверьте, правильно ли Вы инициализируете датчики. Обычно либо при объявлении, либо при инициализации датчику нужна передача некоторой информации: номера пина, адреса и т.п. В общем, Ардуина должна каким-то образом узнать, как ей обращаться к датчику.
Ну и второе: можно расставить отладочную выдачу в библиотеке, чтобы точно локализовать, на чем именно происходит затык.
А отдельно от всего датчик ms5611 работает? Отключите все остальные датчики и библиотеки для работы с ними. Убедитесь что библиотека и датчик ms5611 функционируют нормально. А уж потом по мере подключения других датчиков и библиотек для них найдёте какие библиотеки или датчики чего не поделили. В идеале следует убедиться в работоспособности всех датчиков и библиотек к ним по отдельности.
На будущее если планируется расширять и т.д. стоит посмотреть в сторону BME280, все в одном
датчик давления ms5611, датчик темпеературы ds18b20 , датчик влажности si7021 работают на разных интерфейсах и я бы не стал их ставить на одном и том же порту. Сделайте отдельный порт для ds18b20.
вполне возможно, что скетч зависает не на 21 строке, а на 22. Датчик SI7021 описан как sensor, но потом вы к нему обращаетесь как sensors. Код вообще компилируется?
Ну и выше правильно написали - в скетче нигде не указано, к каким пинам присоединены датчики SI7021 и MS5611
вполне возможно, что скетч зависает не на 21 строке, а на 22. Датчик SI7021 описан как sensor, но потом вы к нему обращаетесь как sensors. Код вообще компилируется?
Ну и выше правильно написали - в скетче нигде не указано, к каким пинам присоединены датчики SI7021 и MS5611
они i2c
А если поменять 21 и 22 строку где зависает?