Помогите подключить max31865 к arduino uno

Тема в разделе "Arduino & Shields", создана пользователем Dimanoid, 11 окт 2020.

  1. Dimanoid

    Dimanoid Нуб

    Привет всем.
    Помогите подключить MAX31865 pt100 к ARDUINO UNO.
    Прошерстил весь форум, попробовал, то что там предложено.
    Монитор порта показывает одни нули и в конце -235

    Не пойму, либо UNO не поддерживает, либо платка дохлая, либо библиотеки не те.
    В общем прошу помощи пжл.
    С уважением, Дмитрий
     
  2. asam

    asam Гик

    Как подключено? Какие библиотеки? Скетч?
     
  3. asam

    asam Гик

  4. Dimanoid

    Dimanoid Нуб

    • 5.10. Запрещено публиковать исходный код без BB-кода — CODE.

    Вложения:

  5. parovoZZ

    parovoZZ Гуру

    Там надо обязательно учитывать величину опорного прецизионного резистора. В даташите на MAX31865 есть вся необходимая информация.
     
  6. Dimanoid

    Dimanoid Нуб

    На плате RREF 431 в сктче указано define RREF 430.0
    Даташит пересмотрел, но пока ничего не увидел.
    Перемычки на плате соединял и разъединял. Подключал и по 2-х и по 3-х проводке.
    Датчик измерял 120 Ом примерно.
    С датчиком или без датчик показывает одно и тоже.
    Если что то с величиной опорного прецизионного резистора, то я думаю он будет врать, а тут вообще ничего.

    Направьте в нужное русло или помогите за что зацепиться. ПЖЛ
    Если есть возможность выложит рабочий скетч со схемой подключения именно на UNO. С рабочими библиотеками.
    Спасибо.

    Библиотеки хоть те?

    Скеч вроде правильно вложил.

    Код (C++):
    ***************************************************
      This is a library for the Adafruit PT100/P1000 RTD Sensor w/MAX31865

      Designed specifically to work with the Adafruit RTD Sensor
      ----> https://www.adafruit.com/products/3328

      This sensor uses SPI to communicate, 4 pins are required to
      interface
      Adafruit invests time and resources providing this open source code,
      please support Adafruit and open-source hardware by purchasing
      products from Adafruit!

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

    #include <Adafruit_MAX31865.h>

    // Use software SPI: CS, DI, DO, CLK
    Adafruit_MAX31865 thermo = Adafruit_MAX31865(10, 11, 12, 13);
    // use hardware SPI, just pass in the CS pin
    //Adafruit_MAX31865 thermo = Adafruit_MAX31865(10);

    // The value of the Rref resistor. Use 430.0 for PT100 and 4300.0 for PT1000
    #define RREF      430.0
    // The 'nominal' 0-degrees-C resistance of the sensor
    // 100.0 for PT100, 1000.0 for PT1000
    #define RNOMINAL  100.0

    void setup() {
      Serial.begin(115200);
      Serial.println("Adafruit MAX31865 PT100 Sensor Test!");

      thermo.begin(MAX31865_3WIRE);  // set to 2WIRE or 4WIRE as necessary
    }


    void loop() {
      uint16_t rtd = thermo.readRTD();

      Serial.print("RTD value: "); Serial.println(rtd);
      float ratio = rtd;
      ratio /= 32768;
      Serial.print("Ratio = "); Serial.println(ratio,8);
      Serial.print("Resistance = "); Serial.println(RREF*ratio,8);
      Serial.print("Temperature = "); Serial.println(thermo.temperature(RNOMINAL, RREF));

      // Check and print any faults
      uint8_t fault = thermo.readFault();
      if (fault) {
        Serial.print("Fault 0x"); Serial.println(fault, HEX);
        if (fault & MAX31865_FAULT_HIGHTHRESH) {
          Serial.println("RTD High Threshold");
        }
        if (fault & MAX31865_FAULT_LOWTHRESH) {
          Serial.println("RTD Low Threshold");
        }
        if (fault & MAX31865_FAULT_REFINLOW) {
          Serial.println("REFIN- > 0.85 x Bias");
        }
        if (fault & MAX31865_FAULT_REFINHIGH) {
          Serial.println("REFIN- < 0.85 x Bias - FORCE- open");
        }
        if (fault & MAX31865_FAULT_RTDINLOW) {
          Serial.println("RTDIN- < 0.85 x Bias - FORCE- open");
        }
        if (fault & MAX31865_FAULT_OVUV) {
          Serial.println("Under/Over voltage");
        }
        thermo.clearFault();
      }
      Serial.println();
      delay(1000);
    }
     
  7. parovoZZ

    parovoZZ Гуру

    Я бы на интерфейс SPI встал бы ЛА или же в дебаг режиме посмотрел, что там твориться. Вообще, есть ли ответ от микросхемы на шине SPI. Это же так просто.
    Я данный модуль для 3D принтера покупал здесь
    https://www.electronshik.ru/item/ADAFRUIT/PT100 RTD Temperature Sensor Amplifier - MAX31865
    Заработал без каких-либо танцев с бубном.
     
  8. Dimanoid

    Dimanoid Нуб

    На SPI я вроде вставал на UNO 10,11,12,13 это и есть SPI. Но скетч использовал тот же, только строчки поменял. Толку ноль.
    в дебаг режиме посмотреть - это как. Но помогите уж. ПЖЛ. Для вас это просто. Для меня напр. линию промышленную роботизированную длиной в 100м починить просто, а для вас ответ от микросхемы на шине SPI просто. Каждому свое.
    Спасибо за понимание.
     
    Последнее редактирование: 11 окт 2020
  9. parovoZZ

    parovoZZ Гуру

    чем? Осциллом или ЛА?
    как там в дуринах - не знаю. Год как снёс.

    АСУТП я проектирую профессионально

    в данном случае это существительное. Пишется с одной "н".
     
  10. Dimanoid

    Dimanoid Нуб

    Мы ремонтируем без программаторов. Вся логика работы в голове.

    Извини бывает.

    Может быть такое, что не к тем пинам подключаю. Может они не работают в данном режиме?
    Я дурино только изучаю. В LOGO все как то проще, но громозко получается и дороговато.
     
  11. parovoZZ

    parovoZZ Гуру

    В UNO аппаратный SPI один. MISO надо подключить к MISO, MOSI надо подключить к MOSI. CLK к CLK. Проверить подключение ChipSelect.

    В мире МК без программаторов вообще никак. А ещё никак без дебаггера и логического анализатора. Последние инструменты упрощают жизнь в разы, превращают часы в минуты.
     
    Daniil нравится это.
  12. Dimanoid

    Dimanoid Нуб

    Извините,
    Проверить подключение ChipSelect -это как?

    Мы люди старой закалки и найти неисправность мы можем в разы быстрее, чем человек с программатором, только если это не баг в программе.
    Принцип работы следующий;
    Вызывается наладчик АСУТП. Он все проверяет.
    Затем наладчик вызывает программиста.
    Если сделать на оборот простой в 95% может затянуться.

    Но сейчас главное, что не хватает max31865 и можно ли проверить платку.
     
  13. parovoZZ

    parovoZZ Гуру

    Асутп здесь причём?
    Самый простой ЛА стоит 500 рублей. Можно и тестером смотреть, но частоту SPI надо снижать до каких-нибудь миллиГерц. Если с питанием платы все нормуль, команды по SPI улетают, а ответа нет - плату в утиль.
     
  14. asam

    asam Гик

    Ну, наверное это проверить куда подключен ChipSelect
    Бага в программе нет, библиотека правильная. С уно эта платка прекрасно работает. Проверял. Так что карты вам в руки. Проявляйте свой талант, а мы пока в сторонке покурим.
     
  15. Dimanoid

    Dimanoid Нуб

    CS подключен на 10 пин
     
  16. Dimanoid

    Dimanoid Нуб

    перемычку где 24 3 надо резать? Если подключать по 3-х проводке.
     
  17. asam

    asam Гик

  18. Dimanoid

    Dimanoid Нуб

    А просто ответить ДА или НЕТ, там на картинке ХП.
     
  19. b707

    b707 Гуру

    может текстом будет понятнее - вроде яснее некуда
    [​IMG]

    For 3-wire usage. Solder closed the jumper labeled 2/3 Wire and cut the wire connecting the left side of the 2-way jumper right above Rref. Then solder closed the right side labeled 3
     
  20. asam

    asam Гик

    Ну как я, ничтоже сумняшеся программист, могу указывать что делать целому наладчик АСУТП!
    Максимум, что я могу позволить это нижайше поднести ему нужный документ, в котором он должен мгновенно узреть истину своим могучим умом.