Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

MAX31855 не работает

Тема в разделе "Сенсоры/датчики для DIY устройств", создана пользователем pliz, 1 фев 2018.

  1. pliz

    pliz Новичок

    Сообщения:
    23
    Симпатии:
    1
    MAX31855 - пытаюсь подключить - и ничего хорошего не выходит. Лезет в мониторе какой-то бред.
    Это было ещё на ардуине. Я тогда подумал, что может по ошибке уровень сигнала не согласовал (питание давал 3,3). Заказал не на али, как предыдущий - а заказал пару с ебея. Пришли. Пытаюсь подключить - та же фигня. В монитор порта сыпется бредовые показания.Ну не могут же все ТРИ датчика быть "некачественными"? термопаты - тоже пробовал разные - и простую в стеклотканной обмотке, и в металлической оплётки. Разьём пропаян нормально (такие размеры спаять станцией проблем нет) Библиотеку использую адафрутовскую - хотя пробовал и другие - те же бубенчики...

    Код (C):
    1. */
    2. #include <MAX31855.h>
    3.  
    4.  
    5. // Pin connections.
    6. #define MISO 12
    7. #define SCK  14
    8. #define CS   15
    9.  
    10. // Create the temperature object, defining the pins used for communication
    11. MAX31855 temp(MISO, CS, SCK);
    12.  
    13. void setup() {
    14.   Serial.begin(9600);
    15. }
    16.  
    17.  
    18. void loop (){
    19.   Serial.print("Junction=");
    20.   printTemperature(temp.readJunction(CELSIUS));
    21.   Serial.print("Thermocouple=");
    22.   printTemperature(temp.readThermocouple(CELSIUS));
    23.   Serial.println();
    24.   delay(1000);
    25. }
    26.  
    27.  
    28. // Print the temperature, or the type or fault
    29. void printTemperature(double temperature) {
    30.   switch ((int) temperature) {
    31.     case FAULT_OPEN:
    32.       Serial.print("FAULT_OPEN");
    33.       break;
    34.     case FAULT_SHORT_GND:
    35.       Serial.print("FAULT_SHORT_GND");
    36.       break;
    37.     case FAULT_SHORT_VCC:
    38.       Serial.print("FAULT_SHORT_VCC");
    39.       break;
    40.     case NO_MAX31855:
    41.       Serial.print("NO_MAX31855");
    42.       break;
    43.     default:
    44.       Serial.print(temperature);
    45.       break;
    46.   }
    47.   Serial.print("   ");
    48. }
    49.  
    WIN_20180201_15_50_58_Pro.jpg WIN_20180201_15_51_19_Pro.jpg Untitled-1.jpg Untitled-2.jpg
     
  2. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.452
    Симпатии:
    173
    Последнее редактирование: 1 фев 2018
    pliz нравится это.
  3. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    462
    Симпатии:
    49
    Не побоюсь этого слова - ЛУЧШАЯ библиотека под MAX31855 тут - GitHub - enjoyneering/MAX31855: Arduino library for 14-bit MAX31855 K-thermocouple to digital converter

    Для уменьшения наводок на входе производитель советует ОБЯЗАТЕЛЬНО параллельно "-T" и "+T" допаять конденсатор на 10nF/0.01mF. Без него, время от времени, проскакивают неадекватные значения. Ребята из Adafruit дополнительно одевают ферритовые бусины на холодный спай.

    ну и вы надеюсь в курсе что у термопары есть + и - и их надо не перепутать при подключении
     
    Последнее редактирование: 1 фев 2018
  4. pliz

    pliz Новичок

    Сообщения:
    23
    Симпатии:
    1
    Пробовал - "такая же фигня"...

    Да, поставил. Правда пришлось на второй комп ставить - стационарный, я им реже пользуюсь. Потому что на нотбуке - какая-то наверное путаница с библиотеками - и не компилировалось. Не стал разбираться.

    Вообщем - выдаёт чётко - что чип опознаётся как МАКС31855, Cold Junction - крутится как правило около 128, иногда либо чуть меняется. Если термопару вытащить - начинает орать - "нет термокапла".
    И такая фигня - на всёх трёх датчиках - и с тремя разными термопарами - в простой оплётке, в металлической - и даже попробовал у меня есть платиновая. Да, и сменя плюс-минус - тоже ничего не даёт.
    Про кондёр - да, я до этого уже пробовал, читал об этом на англоязычных ресурсах - права я не стал заморачиваться впаивать СМД - а просто пробовал втыкать обычный керамический 104.

    Вообщем - ничего не понимаю... :( куда копать, в какую сторону... если чип-то - опознаётся...
     
  5. pliz

    pliz Новичок

    Сообщения:
    23
    Симпатии:
    1
    ************************************

    Вообщем - "всем спасибо все свободны!"
    Это китайские *****ассы... такие вот - ассы по подделкам.

    На всех трёх модулях впаяны чипы с одинаковой маркировкой.

    M31855K
    1424A2
    +780AB

    То есть это - fake MAX31855 K Type Thermocouple Sensor Module!

    И только в одном месте - на радиокоте - я нашёл тему, где люди оказывается столкнулись с точно такой же проблемой.
    Вот тема на радиокоте:
    Форум РадиоКот • Просмотр темы - Преобразователь сигнала термопары MAX31855

    И вот я на всякий случай написал на буржуйском ардуиновском сайте:
    Beware of a fake MAX31855 K Type Thermocouple Sensor Module
     
  6. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    462
    Симпатии:
    49
    если с моей библиотекой и моим примером ваш Cold Junction - крутится около 128C, то похоже вашему чипу хана, так как это параметр читается из встроенного в чип сенсора.

    - вы случайно на MAX31855 не подали 5в (по datasheet потолок 3.6в)?
    - какой пример использовали с software или hardware SPI. советую попробовать hw_SPI пример?
    - чтоб компилировалось на ноутбуке, надо удалить все остальные MAX31855 библиотеки.
     
    pliz нравится это.
  7. pliz

    pliz Новичок

    Сообщения:
    23
    Симпатии:
    1
    Я пробовал как раз хардверЭсПиАй.

    На новые я точно 5В не подавал.
    То есть это - фейковая серия МАКСов, по данным очевидцев из "секты свидетелей подсадного МАХа" не работают чипы именно с такими же "циферками" (номер партии).

    Мне вспомнилось, как в начале 90-х, в "голодные времена" - какие-то махинаторы у метро быстро распродали несколько ящиков пельменей - в стандартных совковых пельменных коробочках, ледяные, белые... и только когда покупатели начали пытаться отварить их - стало понятно, что пельмени налепили из строительного алебастра и заморозили...

    Кстати - жалко что ваш библиотек не нашлась изначально в Library Manager - только от вас уже узнал о её существовании... за библиотеку - спасибо!
     
  8. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    462
    Симпатии:
    49
    я тут попробвал запустить свой код на esp8266 и вы знаете он не взлетел. может быть ваши чипы рабочие и вы зря ругаете китайских товарищей. убил два часа на поиск и нашел проблему. оказывается в arduino core for esp8266 по другому задаются пины!!! если в arduino для avr типа UNO написать digitalWrite(4, LOW) то это значит что цифровой пин D4 в ноль. В arduino для esp8266 все оказалось не так если написать digitalWrite(4, LOW) то это значит GPIO4 в ноль, а не D4. век живи век учись. и в примере с выводом в UART ошибся с разрядностью переменной - нужно int32_t а я влепил int16_t (забыл что это не MAX6675)

    заново скачайте репозиторий, я там добавил примеры специально для esp и проверил их - 100% рабочие. отпишите об успехах потом. спасибо.
     
    Последнее редактирование: 11 фев 2018
    pliz нравится это.
  9. pliz

    pliz Новичок

    Сообщения:
    23
    Симпатии:
    1
    Cейчас попробовал на Уно - MAX31855_hw_SPI_Demo

    Так что в моём конкретном случае проблема всёже с чипом. Я уже заказал у наших ускоглазых товарищей другие микросхемки,они уверяют, что у них нормальная работающая партия. Придут, перепаяю и посмотрим на результат!

    Да, а - "нескромный вопрос", даже два... (1) можно ли библиотеки и объекты именовать оригинально, чтобы не конфликтовали с кучей других и (2) "а почему ваша библиотека не обновляется в аруине автоматом. Простите за ламерские вопросы, просто интересно, мне кажется удобнее было, чем каждый раз с гитхуба тянуть... :)
     

    Вложения:

    • Untitled-1.jpg
      Untitled-1.jpg
      Размер файла:
      21,1 КБ
      Просмотров:
      15
  10. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    462
    Симпатии:
    49
    1. потому что мне так удобней.
    2. там надо возиться с релизами, потом следить за версиями если что то исправил, а мне лень. я в основном пишу для себя. кому надо, то найдет посмотрит тело библиотеки, поймет что код и реализованные функции лучше чем у всех остальных и скачает. остальные будут тащить унылую копипасту с Library Manager.
     
    pliz нравится это.
  11. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    462
    Симпатии:
    49
    вот заверенный скриншот работы под esp8266 пример "MAX31855_ESP8266_hw_SPI_LCD_i2c.ino" из моей библиотеки
     

    Вложения:

    • DSCI0889.jpg
      DSCI0889.jpg
      Размер файла:
      70,9 КБ
      Просмотров:
      17
  12. Jaeger

    Jaeger Новичок

    Сообщения:
    7
    Симпатии:
    0
    Да, неплохая либа. Отлично прокомментирована. Однако не понравилась большая задержка типа
    Код (Text):
    1. delay(MAX31855_CONVERSION_TIME);
    в функции readRawData. Это получается, 100 миллисекунд нужно ожидать в лупе ни чего не делая. Слишком расточительно. Для простейшего термометра сойдет, а если еще имеется несколько разных датчиков, то будут биг проблемы. Надо бы сделать, что бы ожидание завершения конверсии было в фоновом режиме, ну например, с помощью millis().
     

Поделиться этой страницей