Контроль исправности i2C датчика

Нет ответов
Osgiliath
Offline
Зарегистрирован: 03.09.2016

Всем доброго времени суток! Пишу скетч для часов на ГРИ, на шине I2C висят 3 датчика: DS3231, BME280 и BH1750. Если во время работы отключить ВМЕ280, гаснут индикаторы. Не выводится не только температура и влажность с ВМЕ280, но и время. Почему перестаёт работать DS3231 я так и не понимаю...

Вот функция, считывающая показания с 2 датчиков 

void ReadData() {
  time.gettime();  
  hour = time.Hours;    
  minute = time.minutes;   
  second = time.seconds; 
  day = time.day; 
  month = time.month;
  year = uint8_t(time.year);
  if(millis()%1000==0) {
    humidity = bme280.getHumidity();
    temp = bme280.getTemperature();
  }
}

Самое интересное, если записать в humidity и temp  0, даже после отключения ВМЕ280, DS3231 продолжает стабильно работать.

if(millis()%1000==0) {
    //humidity = bme280.getHumidity();
    //temp = bme280.getTemperature();
    humidity = 0; 
    temp = 0;
  }

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