| Ваш IP: 54.145.83.79 | Online(16) - гости: 9, боты: 7 | Загрузка сервера: 3.86 ::::::::::::

Терморегулятор DS18B20 + TM1637 + энкодер ky-040 (Arduino)

На рисунке показана схема простого и очень удобного в использовании терморегулятора, в качестве датчика используется DS18B20, а управление регулятором осуществляется при помощи энкодера ky-040.

Интегральный датчик температуры DS18B20 имеет диапазон измерения температуры от -55 до + 125 °C, показания температуры выводятся на четырех разрядный семисегментный индикатор на базе драйвера TM1637 (модуль TM1637), вращая ручку энкодера можно изменять температуру регулирования, так же используется гистерезис в 0,5 °C, которой можно изменить в скетче.

В режиме измерения температуры на индикаторе будут показания температуры, для изменения температуры регулирования достаточно начать вращать ручку энкодера, при этом будет высвечиваться показания температуры регулирования, если не вращать ручку энкодера в течении 2 секунд, снова появятся показания температуры. Для сохранения в энергонезависимую память температуры регулирования необходимо нажать кнопку энкодера, при сохранении данных на индикаторе появится надпись «S_rG».

Если Вы используете в качестве датчика температуры модуль DS18B20, то резистор R2 из схемы необходимо исключить. Цифровой выход 13 используется для управления нагрузкой.

#include <OneWire.h>
#include <TM1637Display.h>
#include <EEPROM.h>//#include <EEPROMex.h>
#include <DallasTemperature.h>
#include <Encoder.h>
 
TM1637Display display(2, 3);// CLK,DIO
Encoder myEnc(5, 4);// CLK, DT
OneWire oneWire(A1);// вход датчика 18b20
DallasTemperature t(&oneWire);
 
int oldPosition  = -999,newPosition,rom,k;
unsigned long time;
byte minus_reg,reg;
float gis = 0.5;// гистерезис
uint8_t data[]{0,0,0,0};
uint8_t data1[]{0x6d,0x08,0x50,0x3d};
 
void setup(){
  t.begin(); 
  t.setResolution(11);//11 бит 
  pinMode(10,INPUT);  // кнопка энкодера
  pinMode(13,OUTPUT); // выхоод для управления нагрузкой
  rom = EEPROM.read(0); 
  minus_reg = EEPROM.read(1);
  if(minus_reg==1){rom=rom-2*rom;}
  display.setBrightness(0);// яркость TM1637 0-7
}
 
void loop(){
  newPosition = myEnc.read()/4+rom;
  if (newPosition != oldPosition) {
    oldPosition = newPosition;
    time=millis();
    reg=1;
  }
  else if(millis()-time>2000){
    t.requestTemperatures();
    time=millis();
    reg=0;
  }
 
  if(digitalRead(10)==LOW){
    EEPROM.update(0,abs(newPosition));
    EEPROM.update(1,minus_reg);
    display.setSegments(data1); 
    delay(1000);
  }
 
  if(newPosition<0){minus_reg=1;}
  else{minus_reg=0;}
  if(newPosition<-55){newPosition=-55;}
  if(newPosition>125){newPosition=125;}
 
  if(reg==1){k=newPosition;}
  else{k = t.getTempCByIndex(0);}
  if(reg==1){data[0]=0x50;}
  else{data[0] = 0x78;}// r / t
  if(k > 99){data[1] = display.encodeDigit((k/100)%10);}
  else{data[1] = 0x00;}
  if(k < 0){k=abs(k);data[1] = 0x40;}
  data[2] =  display.encodeDigit((k/10)%10);
  data[3] =  display.encodeDigit((k%10)%10);
  display.setSegments(data);
 
   if(newPosition >= t.getTempCByIndex(0) + gis){digitalWrite(13,HIGH);}
   if(newPosition <= t.getTempCByIndex(0) - gis){digitalWrite(13,LOW);}
}

DallasTemperature.h

OneWire.h

Encoder.h

TM1637Display.h

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

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

  • Акустическое оформление НЧ динамической головки

    Динамический диапазон — 25…150Гц, автором применена НЧ головка 75ГДН-3. Корпус рис. 1.2. изготовлен из ДСП толщиной 20мм. Стенки корпуса соединены друг с другом рейками 20*20мм с помощью клея и шурупов. Акустическая панель с отверстиями под НЧ головку крепится внутри корпуса АС. Задняя стенка корпуса — съемная, на ней устанавливаются НЧ …Подробнее...
  • Замедлитель выключения света в салоне автомобиля

    После закрывания двери автомобиля при неработающем двигателе такой замедлитель будет гасить свет не сразу , а через 10-15 секунд. При этом при работающем двигателе замедлитель не должен будет работать. По питанию схема включена параллельно осветительной лампе Л1. Контакты реле К1 блокируют выключатель освещения П1.  при неработающем двигателе при открывании двери …Подробнее...
  • Приемник УКВ ЧМ на микросхеме 174ХА34

    Приемник работает в диапазоне 65…108 МГц и имеет чувствительность не хуже 5 мкВ\В. Номинальное напряжение питания — 3В. Весь высокочастотный тракт включая ЧМ детектор, УВЧ и гетеродин, собран на одной специализированной микросхеме DA1 типа К174ХА34. Эта микросхема представляет собой УВЧ, смеситель, гетеродин, УПЧ, усилитель-ограничитель, ЧМ детектор, систему шумо-понижения и сжатия …Подробнее...
  • Предварительный делитель частоты

    На рисунке показано уст-во (делитель частоты) которое предназначено для расширения верхнего предела диапазона измерения частотомеров до 250 МГц, путем деления частоты на 100. Так же это уст-во совместимо с осциллографом для увеличения диапазона частот. Делитель частоты собран на одной стороне фольгированного стеклотекстолита, а на второй стороне остается фольга не тронутой, …Подробнее...
  • MAX639, MAX640, MAX653 — понижающие, импульсные стабилизаторы

    MAX639, MAX640, MAX653 — понижающие, импульсные стабилизаторы

    MAX639, MAX640, MAX653 (5В/3.3В/3В) — понижающие DC/DC преобразователи с низким потребляемым током покоя. Максимальный выходной ток преобразователя до 225 мА. Система управления и ограничения тока с частотно – импульсной модуляцией (ЧИМ) обеспечивает устройствам преимущества, свойственные преобразователям с широтно – импульсной модуляцией (ШИМ), т.е. высокую эффективность при больших нагрузках, в то …Подробнее...