Как проверить работоспособность модуля

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем kolkapetkinsyn, 18 янв 2019.

  1. kolkapetkinsyn

    kolkapetkinsyn Нерд

    Есть датчики htu21d, bmp280. Как проверить живые ли они?
    Ножки паял сам и мог перегреть или замкнуть. как правильно тестить?
     
  2. Пушной звер

    Пушной звер Оракул

    ну попинай их, если откликнутся значит живы.
     
  3. kolkapetkinsyn

    kolkapetkinsyn Нерд

    не знал что петросян ардуинщик.
    а по сути вопроса?
     
  4. AlexU

    AlexU Гуру

    Как хитровывернутые имена придумывать -- мозгов хватает. А как осмыслить предложение -- уже нет.
    "Попинай" -- значит подключи к микроконтроллеру и сделай пару запросов к датчикам.
     
  5. parovoZZ

    parovoZZ Гуру

    открываешь даташит и читаешь регистры. Потом пишешь в них. Потом опять читаешь. Если считал то, что записал - цифровая часть жива. Аналоговую часть без поверочной аппаратуры не потестишь.
     
  6. kolkapetkinsyn

    kolkapetkinsyn Нерд

    мои извинения, не знаком с подобной терминологией)
    А как сделать запрос, не зная их адресов?
    Скорее всего я туплю, но ситуация?
    у меня nodemcu82669(живой. wi-fi работает), на соответствующих i2c пинах висят 2 датчика. Как к ним обратится?
    Заливаю скетч сканер i2c, ответ тишина
     
  7. parovoZZ

    parovoZZ Гуру

    через их адрес. Подробности в даташите.
     
  8. kolkapetkinsyn

    kolkapetkinsyn Нерд

    htu21d адрес 0х40
    при загрузке скетча примера, отдаёт
    Код (C++):

    load 0x4010f000, len 1384, room 16
    tail 8
    chksum 0x2d
    csum 0x2d
    vbb28d4a3
    ~ld

     
    про это в даташите не чего

    bmp280 вообще молчит
     
  9. parovoZZ

    parovoZZ Гуру

    у этого может быть два адреса. Мой BME280 на 76 откликается.
     
  10. kolkapetkinsyn

    kolkapetkinsyn Нерд

    в коде теста не нашёл где адрес менять, заливал без изменений
    Код (C++):
      /***************************************************************************
      This is a library for the BME280 humidity, temperature & pressure sensor

      Designed specifically to work with the Adafruit BME280 Breakout
      ----> http://www.adafruit.com/products/2650

      These sensors use I2C or SPI to communicate, 2 or 4 pins are required
      to interface. The device's I2C address is either 0x76 or 0x77.

      Adafruit invests time and resources providing this open source code,
      please support Adafruit andopen-source hardware by purchasing products
      from Adafruit!

      Written by Limor Fried & Kevin Townsend for Adafruit Industries.
      BSD license, all text above must be included in any redistribution
    ***************************************************************************/


    #include <Wire.h>
    #include <SPI.h>
    #include <Adafruit_Sensor.h>
    #include <Adafruit_BME280.h>

    #define BME_SCK 13
    #define BME_MISO 12
    #define BME_MOSI 11
    #define BME_CS 10

    #define SEALEVELPRESSURE_HPA (1013.25)

    Adafruit_BME280 bme; // I2C
    //Adafruit_BME280 bme(BME_CS); // hardware SPI
    //Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI

    unsigned long delayTime;

    void setup() {
        Serial.begin(9600);
        Serial.println(F("BME280 test"));

        bool status;
       
        // default settings
        // (you can also pass in a Wire library object like &Wire2)
        status = bme.begin();
        if (!status) {
            Serial.println("Could not find a valid BME280 sensor, check wiring!");
            while (1);
        }
       
        Serial.println("-- Default Test --");
        delayTime = 1000;

        Serial.println();
    }


    void loop() {
        printValues();
        delay(delayTime);
    }


    void printValues() {
        Serial.print("Temperature = ");
        Serial.print(bme.readTemperature());
        Serial.println(" *C");

        Serial.print("Pressure = ");

        Serial.print(bme.readPressure() / 100.0F);
        Serial.println(" hPa");

        Serial.print("Approx. Altitude = ");
        Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
        Serial.println(" m");

        Serial.print("Humidity = ");
        Serial.print(bme.readHumidity());
        Serial.println(" %");

        Serial.println();
    }
    ё
     
  11. kolkapetkinsyn

    kolkapetkinsyn Нерд

    перед загрузкой скетча вылазит ошибка
    Код (C++):
    Uploading 256128 bytes from C:\Users\serov\AppData\Local\Temp\arduino_build_840228/i2c.ino.bin to flash at 0x00000000
    Не могу найти её значение и решение. Но то что всё из-за неё, даже мне понятно
     
  12. parovoZZ

    parovoZZ Гуру

    Это не ошибка, это уведомление.
     
  13. b707

    b707 Гуру

    ищи в коде библиотеки Adafruit_BME280
    но вообще если на сканер не отвечает. то и в счетче вряд ли откликнется