| Ваш IP: 18.207.240.35 | Online(39) - гости: 28, боты: 11 | Загрузка сервера: 1.29 ::::::::::::


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

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

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

Температура регулирования сохраняется в энергонезависимой памяти, для ее сохранения необходимо нажать на кнопку энкодера (появится надпись — SAVE).

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

#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>  
#include <Encoder.h>
#include <EEPROM.h> // #include <EEPROMex.h>
Encoder myEnc(3, 4);// CLK, DT
OneWire oneWire(A1);// вход датчика 18b20
DallasTemperature t(&oneWire);
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);// RS,E,D4,D5,D6,D7
 
int oldPosition  = -999,newPosition,rom;
unsigned long time;
byte minus_reg;
float gis = 0.5;// гистерезис
 
void setup() {
  t.begin(); lcd.begin(16,2);// LCD 16X2 
  t.setResolution(11);//11 бит 
  pinMode(2,INPUT);  pinMode(13,OUTPUT);
  rom=EEPROM.read(0);minus_reg=EEPROM.read(1);
  if(minus_reg==1){rom=rom-2*rom;}
}
 
void loop() {
  newPosition = myEnc.read()/4+rom;
  if (newPosition != oldPosition) {
    oldPosition = newPosition;
    Serial.println(newPosition);time=millis();
  }// измерение температуры 1 раз в секунду
  else if(millis()-time>1000){t.requestTemperatures();time=millis();}
 
  if(newPosition<0){minus_reg=1;}else{minus_reg=0;}
  if(newPosition<-55){newPosition=-55;}
  if(newPosition>125){newPosition=125;}
 
  if(digitalRead(2)==LOW){EEPROM.update(0,abs(newPosition));
    EEPROM.update(1,minus_reg);
    lcd.setCursor(1,1);lcd.print("     SAVE      "); delay(1000);
}
    lcd.setCursor(1,0);lcd.print("t = "); 
    lcd.print(t.getTempCByIndex(0),1); 
    lcd.print(char(223)); lcd.print("C      "); 
 
    lcd.setCursor(1,1);lcd.print("r = "); 
    lcd.print(newPosition); 
    lcd.print(char(223));lcd.print("C     "); 
 
  if(newPosition >= t.getTempCByIndex(0) + gis){digitalWrite(13,HIGH);}
  if(newPosition <= t.getTempCByIndex(0) - gis){digitalWrite(13,LOW);}
}

DallasTemperature.h

OneWire.h

Encoder.h

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

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

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

  • Яркая светодиодная лампа

    Яркая светодиодная лампа

    На рисунке показана схема простой светодиодной лампы работающей от сетевого напряжения 220 В. Конденсатор С1 и сопротивление R1 образуют схему ограничения тока. 10 сверх ярких светодиодов белого свечения подключаются последовательно, полевой транзистор используется для автоматического отключения лампы в дневное время. Сопротивление фоторезистора 100 кОм при полном освещении и уменьшается в …Подробнее...
  • LM5010 — высоковольтный понижающий импульсный преобразователь напряжения

    LM5010 — высоковольтный понижающий импульсный преобразователь напряжения

    LM5010 — высоковольтный понижающий импульсный преобразователь напряжения, обладает широким диапазоном входного напряжения (8-75 В). Частота переключения ШИМ 1 МГц. Ограничение тока в нагрузке 1,25 А. C1 — 2.2 µF, 100V C2 — 15 µF, 25V C3 — 0.1 µF, 16V C4, C6 — 0.022 µF, 16V C5 — 0.1 µF, 100V D1 — SMB 100V, 2A …Подробнее...
  • Радиолы РЕКОРД-60 и РЕКОРД-60М

    Радиолы РЕКОРД-60(М) четырех ламповые супергетеродины, принимающие станции с АМ в диапазонах ДВ, СВ и КВ. С 1960 по 1961годы их выпускал Бердский завод. В радиолах была использована трех скоростная ЭПУ-ЭПУ-5М для РЕКОРД-60 и IIIЭПУ-9 для РЕКОРД-60М. Мощность потребляемая радиолой при проигрывании грам-записи 55Вт и 40Вт при работе на прием. Габариты …Подробнее...
  • TDA1308 — усилитель звуковой мощности, класс AB, 2 канала, 40 мВт

    TDA1308 — усилитель звуковой мощности, класс AB, 2 канала, 40 мВт

    Стерео усилитель на ИМС TDA1308 предназначен для применения в портативных цифровых аудиосистемах, усилитель обеспечивает выходную мощности 40 мВт (80 мВт мах при U пит = 7 В) при напряжении питания 5 В и КНИ не более 0,03 % на нагрузке 32 Ом. Диапазон питания ИМС TDA1308 от 3 до 7 В …Подробнее...
  • Усилитель класса D на TDA8950

    Усилитель класса D на TDA8950

    TDA8950 — высокоэффективный усилитель мощности класса D. Основные характеристики: Выходная мощность 2 × 150 Вт при нагрузке 4 Ом. широкий диапазоне напряжений питания от ±12,5 в до ±40 В рекомендуемое напряжение питания и нагрузка: 2 × 150 ВТ, RН = 4 Ω (ВП = ±37 В) 2 × 170 ВТ, …Подробнее...