Достал датчик tmp75 из старой батареи как с ним работать ?

Тема в разделе "Arduino & Shields", создана пользователем blackflash2009, 2 авг 2022.

  1. blackflash2009

    blackflash2009 Нерд

    Отпаял старый датчик от батареи сделал макетную плату вроде даже код написал на что умишка хватило
    Ожидал что то типо такого получить в монитор порта c-0001 1001 0000 но получаю c-23. Библиотека Wire.h превращает данные в градусы или 23 это 16-ти ричный код ? при нагреве показания растут но датчик жутко тупой. Как в коде отобразить дробные числа показания градусов (23.6 например )
    Код (C++):
    #include <Wire.h>
    int temp_address = 79;// начинаем обмен с устройством с I2C адресом "44" (0x2C)


    void setup() {
    Serial.begin(9600);  
       Wire.begin();
    }

    void loop() {
    Wire.beginTransmission(temp_address);
    Wire.write(0);
    Wire.endTransmission();

    Wire.requestFrom(temp_address,12 );

    while(Wire.available() ==0);

    int c = Wire.read();
    Serial.print("c-");
    Serial.print(c);

    delay(500);
    }
     
  2. b707

    b707 Гуру

    откуда 16-ричный код. если вы читаете с датчика 1 байт всего?
    Я абсолютно не знаю, что этот датчик должен выдать - но шансов получить с таким кодом верный ответ у вас немного
     
  3. parovoZZ

    parovoZZ Гуру

    так это всем известный LM75
     
  4. blackflash2009

    blackflash2009 Нерд

    temp_address,12 а тут вроде 12 написано
     
  5. fogary

    fogary Гик

    Функция Wire.read() читает один байт.

    Результат функции Wire.requestFrom() - кол-во полученных байт. Так что можете проверить сколько байтов, из запрошенных 12-ти, возвращает устройство.