очень странное поведение max6675

fsdb
Offline
Зарегистрирован: 24.10.2015

Купил вот такой датчик температуры

http://ru.aliexpress.com/item/MAX6675-K-type-Thermocouple-Temperature-Se...

 

использую вот такой скетч(приведен ниже):

Все работает как надо но когда я включаю прибор который подключен к тоже розетке что и ардуина, пока все норм. как только на приборе начинаю крутить ручу (это частотник) то я получаю в Serial вместо температуры значение yyyyyyyyyyyyyyyyyyyyyyyyy

что делать. понять ничего не могу.

 


#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9); // RX, TX



#include "max6675.h"

int thermoDO = 2;
int thermoCS = 3;
int thermoCLK = 4;

MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
int vccPin = 5;
int gndPin = 6;
  
int x=0;

int temp_real;

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600); 
  mySerial.begin(9600);
  
  pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
  pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);
  temp_real=thermocouple.readCelsius();
//Датчик температуры до 1024 градусов


 pinMode(13, OUTPUT); digitalWrite(13, LOW);
 pinMode(10, OUTPUT); digitalWrite(10, LOW);
 //зеленый диод
}


void loop() {
  
  //x=1-x;
 // digitalWrite(10,x ); //вкл выкл диод
  temp_real=thermocouple.readCelsius();
 delay(2000);
 Serial.println(temp_real);
 mySerial.println(temp_real);
  
}

 

walter_007
Offline
Зарегистрирован: 20.12.2015

Добрый вечер! Простите пожалуйста, что пишу в вашей теме, не смог найти на этом форуме, как написать личное сообщение(!

Вчера только купил себе такие датчики , маленький дисплей и плату Аирдуно. Мне они нужны, чтобы мерить температуру. Дело в том, что я полный профан в схемотехнике, и даже не могу их подключить к плате. Попытался найти в инете, ничего похожего нету, как у меня. Нашел библиотеки, при копировании пишет ошибку. 

Прошу не пинать меня, просто мне не к кому обратиться, чтобы помогли. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

fsdb пишет:

использую вот такой скетч(приведен ниже):

А схема включения секретна?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

walter_007 пишет:

Попытался найти в инете, ничего похожего нету, как у меня. 

 

Как Вы, интересно, гуглится на оаз. Вот держите и схемы и картинки и скетчи - всё на месте - http://henrysbench.capnfatz.com/henrys-bench/max6675-temp-module-arduino-manual-and-tutorial/

Вячеслав 151
Offline
Зарегистрирован: 25.03.2015

Всем добрый! С Крещением Господнем!

Собрал термореле на MAX6675 с термопарой К-типа.

// Термостат для измерения регулировки температуры печи
// Подключение термопары К-тика

//Объявляю библиотеки
#include <max6675.h>
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

//Декларирую переменные

LiquidCrystal_I2C lcd(0x27,16,2);  // установка  LCD address to 0x27 for a 16 chars and 2 line display

int thermoDO = 4;
int thermoCS = 5;
int thermoCLK = 6;

MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);

float T;        //переменная для хранения температуры
float T1;// переменная текущей температуры
int hist=60;//гистерезис




// ввожу символ градуса
uint8_t degree[8]  = {140,146,146,140,128,128,128,128};

void setup() {
  //Serial.begin(9600);
  //lcd.begin();
  lcd.init();
  // Печать приветствия на  LCD.
  lcd.backlight();
  lcd.setCursor(1, 0);
  lcd.print("  TERMOSTAT");
  lcd.setCursor(4, 1);
  lcd.print("PECHKA");
  delay(5000);
  lcd.clear();
  T=400;
  pinMode(8, OUTPUT);  
  digitalWrite(8, HIGH);
  lcd.createChar(0, degree);
  T1=thermocouple.readCelsius();
  // стабилизация датчика температуры
  delay(500);
}


void loop() {
  termostat();
  
 // Serial.print("C = ");
 //Serial.print(thermocouple.readCelsius());
  
  // вывод данных на LCD
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(" Temp pechi");
   
  lcd.setCursor(5,1);
  lcd.print(thermocouple.readCelsius());
  delay(500);
  
 #if ARDUINO >= 100
  lcd.write((byte)0);
 #else
  lcd.print(0, BYTE);
 #endif
  lcd.print("C ");
   
  delay(1000);
  
}

void termostat() 
{
  if (T1 < 400)
{
digitalWrite(8, HIGH);
}
else if (T1   > 460)
{
digitalWrite(8, LOW);
}

}

Проблемы следующие:

1. Температуру в спокойном режиме показывает нормально, стоит начать нагрев - просто сигает туда, сюда. От 700 до -127 град. или на 5-10 град подниметься потом опускается на 5-10 градусов.

2. Не работает реле. Может кто увидит косяк. Уже глаза "засалились" :)