| Ваш IP: 3.235.75.174 | Online(70) - гости: 19, боты: 51 | Загрузка сервера: 0.85 ::::::::::::

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

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

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

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

  • Регулируемый светодиодный драйвер

    Регулируемый светодиодный драйвер

    На рисунке показана схема простого регулируемого светодиодного драйвера с максимальной выходной мощностью до 30 Вт (до 1,2А). Регулировка яркости светодиодов осуществляется при помощи внешнего ШИМ-сигнала с выходным напряжением от 0,5 до 2,5В и частотой регулирования от 100Гц до 20кГц. Сигнал подается на DIM вход микросхемы PT4115. Если напряжение ШИМ-сигнала будет больше 2,5В, …Подробнее...
  • Импульсный стабилизатор напряжения с защитой от перегрузок на ток до 4А

    LM195 — мощный интегральный модуль обеспечивает ограничение тока и выходной мощности, он выключает схему в случае значительного повы­шения температуры. При правильном использовании стабилизатора, ИС LM195 не выходит из строя при любой перегрузке. Это свойство особен­но желательно в ИИП, где значительно труднее достичь надежной за­щиты от перегрузок. ти кремниевый транзистор. LM117/LM217/LM317 …Подробнее...
  • Предусилитель с эквалайзером

    Предусилитель с эквалайзером

    Предусилитель выполнен на одной ИМС К1401УД2А, которая содержит 4-е ОУ, в стерео варианте по 2-а ОУ на канал. Общий коэффициент передачи(усиления) равен 5-и, максимальное входное напряжение 0,5В, номинальное 0,2В. Входное сопротивление 100кОм. Диапазон частот 30…20000Гц при неравномерности АЧХ 2 дБ. Регулировка АЧХ 6-и полосная с центральными частотами 60, 200, 1000, …Подробнее...
  • Усилитель для постоянного уровня сигнала

    Усилитель для постоянного уровня сигнала

    2N3819 Отечественный аналог ОУ 741 К140УД7, 2N3819 аналог КП307Б Данный усилитель обеспечивает постоянный уровень выходного сигнала при значительном изменении входного. ОУ используется как усилитель постоянного тока усиление которого зависит от соотношения R2/R1 и делителя напряжения на R4 и сопротивления полевого транзистора. Транзистор играет роль резистора в данной схеме, его сопротивление …Подробнее...
  • УМЗЧ 2*13Вт на TA8216H

    УМЗЧ 2*13Вт на TA8216H

    Микросхема используется в основном в бытовой аудио аппаратуре, имеет режим MUTE, тепловую защиту. Конденсатор С6 служит для уменьшения щелчков при включении MUTE Усилитель на базе TA8216H имеет следующие технические характеристики Номинальное напряжение питания +28В Напряжение питания 10…40В Ток покоя 50мА в зависимости от напряжения питания Переходное затухание между каналами -70дБ …Подробнее...