| Ваш IP: 3.235.74.184 | Online(27) - гости: 12, боты: 15 | Загрузка сервера: 0.83 ::::::::::::


STM32 + MAX6675 — терморегулятор (Arduino)

MAX6675 в комплекте с термопарой типа К рассчитан на измерение температуры в диапазоне от 0 до 1024 ºС, с разрешением 0.25 ºС. Для передачи данных используется SPI интерфейс.

При совместном использовании MAX6675 и отладочной платы STM32 (базе микроконтроллера STM32F103C8T6) можно сделать простой терморегулятор (0…999.0 °С). Управление температурой регулирования осуществляется при помощи энкодера ky-040Температура регулирования сохраняется в энергонезависимой памяти.

#define pinA PB6
#define pinB PB5
#define SO   PB7
#define CS   PB9
#define CLK  PB8
 
#include <STM32_MAX6675.h> //http://forum.rcl-radio.ru/misc.php?action=pan_download&item=410&download=1
#include <STM32_TM1637.h> // http://forum.rcl-radio.ru/misc.php?action=pan_download&item=403&download=1
#include <EEPROM.h>       // Библиотека Arduino_STM32-master.zip
#include <STM32_Encoder.h> // https://rcl-radio.ru/wp-content/uploads/2020/01/STM32_Encoder.zip
  STM32_Encoder encoder(pinA, pinB);
  STM32_TM1637 tm(PB0,PB1);// CLK, DIO
  STM32_MAX6675 max6675(CLK, CS, SO);
 
int position = -999;
byte w,i;
int reg;
const float gis = 1.0;// гистерезис
unsigned long times;
float celsius,sum;
 
void setup() {
  Serial.begin(9600);  
  tm.brig(7); // ЯРКОСТЬ 0...7
  EEPROM.init(0x801F000,0x801F800,0x400);// 1024 byte
  encoder.begin();                                                         
  attachInterrupt(digitalPinToInterrupt(pinA),Read,CHANGE);  
  attachInterrupt(digitalPinToInterrupt(pinB),Read,CHANGE); 
  pinMode(PB7,OUTPUT);// выход управления реле
  reg = EEPROM.read(10);
  delay(500);
}
 
void loop() { 
   if(millis()-times>3000){
   for(i=0;i<3;i++){
   celsius = max6675.readCelsius();
   sum = sum + celsius;
   delay(500);}celsius = sum/3;sum=0;}
 
    if(position != encoder.getPosition()){position = encoder.getPosition();
    reg = reg + encoder.getPosition();encoder.setPosition(0);position = 0;
    w=1;times = millis();if(reg>999){reg=999;}if(reg<0){reg=0;}}   
 
    if(millis()-times<3000){tm.print_float(reg,0,  0b01010000,0,0,0);}
    else{tm.print_float(celsius,1,  0,0,0,0);}
    if(celsius>999||celsius<0){tm.print_float(celsius,0,  0b01000000,0b01000000,0b01000000,0b01000000);}
 
    if(reg >= celsius + gis){digitalWrite(PB7,HIGH);}
    if(reg <= celsius - gis){digitalWrite(PB7,LOW);}
 
    if(millis()-times>1000&&w==1){w=0;EEPROM.update(10, reg);}
  }
 
void Read(){encoder.readAB();}

В скетче указан гистерезис значение которого Вы можете изменить:

const float gis = 1.0;// гистерезис

Погрешность измерений по результатам тестирования не превышает 1 %

Результаты измерений:

Показания прибора, °С Полученное значение, °С
100 100.3
200 201.5
300 302.5
400 400.3
500 497.8
600 595.2
700 690.5
800 790.3
900 892.8
990 985.0

Форум — http://forum.rcl-radio.ru/viewtopic.php?pid=1031#p1031

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • Усилитель мощности 6 Вт на TDA7245A

    Усилитель мощности 6 Вт на TDA7245A

    Усилитель мощности на TDA7245A с фиксированным усилением предназначен для использования в бытовой аудиотехнике. Микросхема снабжена функциями STAND-BY и тепловой защитой. Усилитель на базе TDA7245A обладает следующими техническими характеристиками: Номинальное напряжение питания 16,5В Напряжение питания 12…30В Ток покоя 17…25мА в зависимости от напряжения питания Выходная мощность при КНИ=10% 12Вт Выходная мощность …Подробнее...
  • TPS6108x: повышающий преобразователь с широким спектром применения

    Автор: Джефф Фалин Повышающие преобразователи напряжения TPS61080 и TPS61081 благодаря многочисленным интегрированным функциям и развитым схемам защиты можно применять в самых разнообразных областях, среди которых – промышленная автоматика, медицинская электроника, телекоммуникации. Особенно хорошо они приспособлены для питания светодиодных дисплеев и их подсветки. В статье инженера компании Texas Instruments подробно рассмотрены …Подробнее...
  • УНЧ на TDA1521

    УНЧ на TDA1521

    Напряжение питания ±7,5…21В Максимальный ток нагрузки 2,2А Выходная мощность при Uп=12В Rн=8Ом: КНИ = 0,5% — 6Вт КНИ = 10% — 8Вт Ток покоя 70мАПодробнее...
  • TDA7384A — 4 x 35Вт аудиоусилитель

    TDA7384A — 4 x 35Вт аудиоусилитель

    TDA7384A — четырехканальный усилитель мощности звуковой частоты, усилитель на базе TDA7384A относится к классу AB, с максимальной выходной мощностью до 4×35 Вт при нагрузке 4 Ом.  В усилителе имеется функция бесшумного выключения выходного сигнала Mute и переход в ждущий режим Stand-By. Усилитель обладает низким уровнем собственных шумов и малым коэффициентом …Подробнее...
  • УСИЛИТЕЛЬ НЧ НА ТРЕХ ТРАНЗИСТОРАХ

    УСИЛИТЕЛЬ НЧ НА ТРЕХ ТРАНЗИСТОРАХ

    На рис. показана схема простейшего усилителя НЧ, в котором можно использовать источник питания напряжением 4,5 или 9 В. При сопротивлении нагрузки 10 Ом и напряжении питания 4,5 В номинальная выходная мощность равна 70…80 мВт, а при повышении напряжения до 9 В 120… 150 мВт. В усилителе применены германиевые маломощные низкочастотные …Подробнее...