| Ваш IP: 54.146.98.143 | Online(18) - гости: 3, боты: 15 | Загрузка сервера: 0.43 ::::::::::::

Простой терморегулятор на 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;}
}

Комментарии

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

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

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

  • Устройство защиты электродвигателя

    В качестве типовых элементов защиты электродвигателей чаще всего применяют электротепловые реле. Конструкторы вынуждены завышать номинальный ток этих реле, чтобы не было срабатываний при пуске. Надежность такой защиты невелика, и большой процент двигателей выходит из строя в процессе эксплуатации. Схема устройства защиты двигателей (см. рисунок) от неполнофазных режимов и перегрузки отличается …Подробнее...
  • Электрические вольфрамовые лампы накаливания

    Электрические вольфрамовые лампы накаливания

    В 1879 году Т.А. Эдисон создал лампу накаливания запустив ее в серийное производство, в качестве нити накаливания он использовал угольную нить, которую он получал обугливанием длинный и тонких бамбуковых волокон. Так же он ввел откачку воздуха из баллона. В 1890 году А.Н. Лодыгин продемонстрировал лампу с нитью накала из тугоплавкого …Подробнее...
  • К140УД1А-В, КР140УД1А-В, К140УД3А-В (справочные данные)

    К140УД1А-В, КР140УД1А-В, К140УД3А-В относятся операционным усилителям средней точности. Электрические параметры: Uпит. ном 2*6,3В (А), 2*12,6В (Б, В) I пот 6мА (А), 12мА(Б), 10мА(В) Ku 0,5…4*10³(А), 1…12*10³(Б), 8*10³(В) Iвх 5*10³нА(А), 8*10³нА(Б), 10*10³нА(В) ΔIвх 1,5*10³нА(А,Б), 2,8*10³нА(В) Кос.сф 60дБ f1 3МГц(А), 8МГц(Б), 5МГц(В) Vu 0,2В/мкс(А), 0,5В/мкс(В), 3,5В/мкс(В) Uвых.мах 2,5В(А), 5,7В(Б,В) Rвх 0,004МОм Предельные …Подробнее...
  • Универсальный контроллер балластов люминесцентных ламп — Трехступенчатая регулировка яркости

    Универсальный контроллер балластов люминесцентных ламп — Трехступенчатая регулировка яркости

    Трехступенчатые регуляторы яркости широко применяются в США. Система состоит из специального патрона лампы, четырехпозиционного переключателя и лампы с модифицированным контактным цоколем. Традиционная лампа в такой системе содержит две нити накаливания и три контакта на цоколе. IRPLCFL8U — это трехступенчатый регулируемый балласт для управления 32 Вт спиральной компактной люминесцентной лампой (CFL) от сети …Подробнее...
  • Типы корпусов микросхем

    Внешний вид корпусов типа ТСР, ВСС, DIP показаны на рис.1. В табл. 1-3 соответственно приведены их параметры и конструктивное исполнение, где А — металлокерамический корпус, С — керамический, М- пластиковый. Внешний вид разных типов корпусов изображен на рис.2. Литература Ж.Радиоматор 2002 №1Подробнее...