очень странное поведение max6675
- Войдите на сайт для отправки комментариев
Вс, 20/12/2015 - 17:48
Купил вот такой датчик температуры
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);
}
Добрый вечер! Простите пожалуйста, что пишу в вашей теме, не смог найти на этом форуме, как написать личное сообщение(!
Вчера только купил себе такие датчики , маленький дисплей и плату Аирдуно. Мне они нужны, чтобы мерить температуру. Дело в том, что я полный профан в схемотехнике, и даже не могу их подключить к плате. Попытался найти в инете, ничего похожего нету, как у меня. Нашел библиотеки, при копировании пишет ошибку.
Прошу не пинать меня, просто мне не к кому обратиться, чтобы помогли.
использую вот такой скетч(приведен ниже):
А схема включения секретна?
Попытался найти в инете, ничего похожего нету, как у меня.
Как Вы, интересно, гуглится на оаз. Вот держите и схемы и картинки и скетчи - всё на месте - http://henrysbench.capnfatz.com/henrys-bench/max6675-temp-module-arduino-manual-and-tutorial/
Всем добрый! С Крещением Господнем!
Собрал термореле на 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. Не работает реле. Может кто увидит косяк. Уже глаза "засалились" :)