| Ваш IP: 18.212.92.235 | Online(13) - гости: 7, боты: 6 | Загрузка сервера: 1.11 ::::::::::::

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

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

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

  • Преобразователи напряжения

    В связи с выключением электроэнергии возникла необходимость в других источниках питания. Я некоторое время работал с различными схемами преобразователей с 12 В АКБ в ~220 В, 50 Гц на различную мощность нагрузки, поэтому возникла возможность питать как лампы (свет в квартире), так и различную аппаратуру. Выключал автоматические пробки на счетчике, …Подробнее...
  • КЛАССИФИКАЦИЯ РАДИОИЗМЕРИТЕЛЬНЫХ ПРИБОРОВ СОГЛАСНО ГОСТ 15094-69

    КЛАССИФИКАЦИЯ РАДИОИЗМЕРИТЕЛЬНЫХ ПРИБОРОВ СОГЛАСНО ГОСТ 15094-69 Радиоэлектронные измерительные приборы (РИП) классифицируются по различным признакам (см. табл.) Классификация электронных радиоизмерительных приборов Признак классификации Разновидности измерительных приборов Выполняемые метрологические функции Эталоны, образцовые приборы, рабочие приборы Характер измерений, вид измеряемых величин, основные выполняемые функции, совокупность технических характеристик и очередность разработки Подгруппы, виды, типы …Подробнее...
  • Онлайн — калькулятор цветовой маркировки резисторов

    Онлайн — калькулятор цветовой маркировки резисторов

    Для резисторов с точностью 20 % используют маркировку с тремя полосками, для резисторов с точностью 10 % и 5 % маркировку с четырьмя полосками, для более точных резисторов с пятью или шестью полосками. Первые две полоски всегда означают первые два знака номинала. Если полосок 3 или 4, третья полоска означает …Подробнее...
  • Излучение и распространение радиоволн

    Излучение и распространение радиоволн

    Как известно, постоянный ток, проходящий по проводу создает вокруг него постоянное магнитное поле. Когда ток исчезает, то созданное им магнитное поле исчезая возвращает энергию в провод. При переменном токе вокруг провода создается переменное магнитное поле, напряженность которого меняется с частотой тока. Часть энергии магнитного поля возвращается в провод, другая часть …Подробнее...
  • Полицейская сирена на LM324

    Полицейская сирена на LM324

    Данная схема издает звук напоминающий полицейскую сирену. Схема основана на ОУ LM324 представляющий собой генератор ЗЧ. При нажатии на кнопку SA1 начнет быстро заряжаться С1, сирена начнет издавать звук. При размыкании контактов SA1  сирена будет работать до тех пор пока не разрядится через R2 конденсатор С1. Источник — http://www.eleccircuit.com/police-bicycle-siren-circuits/ скраб для …Подробнее...