| Ваш IP: 3.235.75.174 | Online(21) - гости: 16, боты: 5 | Загрузка сервера: 0.77 ::::::::::::

Простой терморегулятор на DS18B20 (модуль индикации 74НС595) (Arduino)

В предыдущей статье было рассмотрено использование модуля индикации 4-х разрядного 7-и сегментного на сдвиговых регистрах 74НС595. В этой статье будет простой пример реализации простого терморегулятора с использованием выше указанного модуля индикации.

В качестве датчика температуры используется цифровой датчик DS18B20 (модуль) который имеет диапазон измерения от -55 до 125 °С. Терморегулятор имеет всего две кнопки управления «+» и «-» для регулировки температуры. При нажатии на кнопку можно изменить температуру регулирования с шагом 0,5 °С. Терморегулятор управляет работой модуля реле и имеет гистерезис в 0,5 °С. Если в течении трех секунд не будет изменена температура регулирования индикатор покажет текущую температуру.

Температура терморегулирования после изменения сохраняется в энергонезависимой памяти.

#include <MsTimer2.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <EEPROM.h>
OneWire oneWire(A0);// вход датчика 18b20
DallasTemperature temp(&oneWire);
byte razr[5] = {0x08, 0x04, 0x02, 0x01, 0x00};// 0123         
byte digit[12] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0xFF, 0xBF}; // 0123456789 минус
byte point = 0x80; //точка
float gis=0.5; // гистерезис 0,5 градуса
float k,k2,reg;
int k1,t;
byte a[4],w;
unsigned long time;
 
void setup(){Serial.begin(9600);
  MsTimer2::set(15, to_Timer);// задаем период 10...20 мс
  MsTimer2::start();// старт индикации
  pinMode(3, OUTPUT);  // RCLK
  pinMode(4, OUTPUT);  // SCLK
  pinMode(2, OUTPUT);  // DIO
  pinMode(5, INPUT); // кнопка +
  pinMode(6, INPUT); // кнопка -
  pinMode(13, OUTPUT); // выход реле
  temp.begin(); 
  temp.setResolution(12);//12 бит 
  reg = EEPROM.get(0, reg);
}
 
void to_Timer(){
  if(k<0){k2 = abs(k);a[0]=11;}else{k2=k;a[0]=10;}
  Serial.println(k2);
  if(k2<10){k1=round(k2*100);t=1;}
  else if(k2<100){k1=round(k2*10);t=2;}
  else {k1=k2;t=4;}
  a[1]=k1/100%10;
  a[2]=k1/10%10;
  a[3]=k1%10%10;
  for(int i=0;i<5;i++){
  digitalWrite(3, LOW);
  if(i==t){shiftOut(2, 4, MSBFIRST, digit[a[i]] ^ point);}
  else{shiftOut(2, 4, MSBFIRST, digit[a[i]]);}
  shiftOut(2, 4, MSBFIRST, razr[i]);
  digitalWrite(3, HIGH);
  } 
}
 
void loop(){
if(digitalRead(5)==HIGH){reg+=0.5;if(reg>=125){reg=125;}delay(300);time=millis();w=1;}
if(digitalRead(6)==HIGH){reg-=0.5;if(reg<=-55){reg=-55;}delay(300);time=millis();w=1;}
if(millis()-time<3000){k=reg;}
else{
temp.requestTemperatures();
k = temp.getTempCByIndex(0);
if(reg >= k + gis){digitalWrite(13,HIGH);}
if(reg <= k - gis){digitalWrite(13,LOW);}
}
if(w==1){EEPROM.put(0, reg);w=0;}
}

Комментарии

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

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

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

  • Реле времени с тиристорным управлением

    Реле времени на включение или выключение сетевой нагрузки можно собрать и на тиристоре. Такое устройство имеет большую надежность и долговечность. Принципиальная схема универсального реле времени с бесконтактным выключением нагрузки показана на рисунке. Максимальная выдержка времени на включение или выключение 30 мин. Потребляемая мощность не превышает 0,3 Вт. Если реле времени …Подробнее...
  • Трехполосные разделительные фильтры

    Принципиальная схема разделительного фильтра показана на рисунке. Частоты разделения составляют 750Гц между НЧ и СЧ и 7 кГц между СЧ и ВЧ. Крутизна спадов АЧХ за пределами полос -12дБ\окт. Ниже приведена таблица которая позволяет использовать при конструировании трех полосного фильтра разные по сопротивлению звуковых катушек НЧ, СЧ и ВЧ головок. …Подробнее...
  • Генераторы импульсов на микросхемах К176ИЕ5, К176ИЕ12, К176ИЕ18

    На рис. приведена принципиальная схема генератора секундных импульсов на микросхеме К176ИЕ5. Здесь и в других схемах на этом рисунке численные данные приведены для варианта применения стандартного кварцевого резонатора на частоту 32 768 Гц. Микросхемы допускают также использование кварцевого резонатора на частоту 16 384 Гц. Тогда секундные импульсы выделяются на выходе …Подробнее...
  • Простой терморегулятор

    Нередко для регулирования температуры не подходят схемы, работающие от электросети, либо по условиям безопасности, либо потому что напряжение сети отключают. Схема (рис.1) предназначена для поддержания температуры внутри инкубатора, а также температуры сбраживания йогурта и более низких температур для хранения овощей в ящике на балконе зимой. Питание схема получает от 12-вольтового …Подробнее...
  • Таймер 5 минут

    На рисунке показана схема простого 5-и минутного таймера, который управляет нагрузкой посредством 12В реле. Нагрузкой может быть например лампы освещения подъезда (как накаливания, так и люминесцентные). А вместо SA1 может быть геркон установленный на входную дверь, при активации геркона происходит включение освещения примерно на 5-10 минут. Время работы таймера зависит …Подробнее...