• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

MAX31855 не работает

pliz

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

Код:
*/
#include <MAX31855.h>


// Pin connections. 
#define MISO 12
#define SCK  14
#define CS   15

// Create the temperature object, defining the pins used for communication
MAX31855 temp(MISO, CS, SCK);

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


void loop (){
  Serial.print("Junction=");
  printTemperature(temp.readJunction(CELSIUS));
  Serial.print("Thermocouple=");
  printTemperature(temp.readThermocouple(CELSIUS));
  Serial.println();
  delay(1000);
}


// Print the temperature, or the type or fault
void printTemperature(double temperature) {
  switch ((int) temperature) {
    case FAULT_OPEN:
      Serial.print("FAULT_OPEN");
      break;
    case FAULT_SHORT_GND:
      Serial.print("FAULT_SHORT_GND");
      break;
    case FAULT_SHORT_VCC:
      Serial.print("FAULT_SHORT_VCC");
      break;
    case NO_MAX31855:
      Serial.print("NO_MAX31855");
      break;
    default:
      Serial.print(temperature);
      break;
  }
  Serial.print("   ");
}
WIN_20180201_15_50_58_Pro.jpg WIN_20180201_15_51_19_Pro.jpg Untitled-1.jpg Untitled-2.jpg
 

CodeNameHawk

Moderator
Команда форума
Последнее редактирование:
  • Like
Реакции: pliz

enjoynering

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

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

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

pliz

New member
Да чем их пример не понравился?
Adafruit-MAX31855-library
Пробовал - "такая же фигня"...

Не побоюсь этого слова - ЛУЧШАЯ библиотека под MAX31855 тут - GitHub - enjoyneering/MAX31855: Arduino library for 14-bit MAX31855 K-thermocouple to digital converter
Да, поставил. Правда пришлось на второй комп ставить - стационарный, я им реже пользуюсь. Потому что на нотбуке - какая-то наверное путаница с библиотеками - и не компилировалось. Не стал разбираться.

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

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

pliz

New member
************************************

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

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

M31855K
1424A2
+780AB

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

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

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

enjoynering

Well-known member
если с моей библиотекой и моим примером ваш Cold Junction - крутится около 128C, то похоже вашему чипу хана, так как это параметр читается из встроенного в чип сенсора.

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

pliz

New member
Я пробовал как раз хардверЭсПиАй.

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

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

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

enjoynering

Well-known member
я тут попробвал запустить свой код на 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% рабочие. отпишите об успехах потом. спасибо.
 
Последнее редактирование:
  • Like
Реакции: pliz

pliz

New member
Cейчас попробовал на Уно - MAX31855_hw_SPI_Demo

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

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

Вложения

enjoynering

Well-known member
1. потому что мне так удобней.
2. там надо возиться с релизами, потом следить за версиями если что то исправил, а мне лень. я в основном пишу для себя. кому надо, то найдет посмотрит тело библиотеки, поймет что код и реализованные функции лучше чем у всех остальных и скачает. остальные будут тащить унылую копипасту с Library Manager.
 
  • Like
Реакции: pliz

enjoynering

Well-known member
вот заверенный скриншот работы под esp8266 пример "MAX31855_ESP8266_hw_SPI_LCD_i2c.ino" из моей библиотеки
 

Вложения

Jaeger

New member
Не побоюсь этого слова - ЛУЧШАЯ библиотека под MAX31855 тут - GitHub - enjoyneering/MAX31855: Arduino library for 14-bit MAX31855 K-thermocouple to digital converter
Да, неплохая либа. Отлично прокомментирована. Однако не понравилась большая задержка типа
Код:
delay(MAX31855_CONVERSION_TIME);
в функции readRawData. Это получается, 100 миллисекунд нужно ожидать в лупе ни чего не делая. Слишком расточительно. Для простейшего термометра сойдет, а если еще имеется несколько разных датчиков, то будут биг проблемы. Надо бы сделать, что бы ожидание завершения конверсии было в фоновом режиме, ну например, с помощью millis().
 
Сверху Снизу