пятница, 24 июля 2020 г.
четверг, 16 июля 2020 г.
Система поддержания постоянной температуры
Сделал зимой 2018-19 года маме систему отопления. Однотрубную горизонтальную. Главный элемент системы насос. Если он не качает, то даже на 3ке не греются батарейки, медленно остывают... А насос 1200 Вт, мощный. Он много накручивает энергии и фонит, шумит.
Придумал систему, которая бы отслеживала температуру в комнате и включала-отключала этот насос!
Назвал ее система поддержания постоянной температуры или сокращенно СППТ.
Вот схема ее:
Итак трансформатор взял с UPSа. Он называет RT-425B. Там тослые провода черный, красный, синий заизолировать. Это вторичка синий и черный дают переменку 18в, но они не нужны!
Нужны тонкие синий и черный 220в и зеленый и черный другая обмотка переменка 18в.
Диодный мост любой. Я взял пластмассовый квадратик длинной меньше 2 пальцев.
Кондер нашел 10000 мкф 46в.
На выходе получил постоянное напряжение 20в. Это нормальное напряжение, 32в нельзя превышать. Преобразователь LM2596 настроил на 7.1в. для питания МК Arduino PRO mini.
Реле HF-2100-1A с какого-то водонагревателя. Оно как раз на 220В расчитано 2 кв, ТЭНы же включает! Транзистор Н-канал полевой IRF-3808.
Это как программатор подключать, как резистор подключать, какие значение от полуоборота выдавал резистор.
Программа:
//
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 10
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
int pol = 13; //выход на затвор полевика IRF3808, который управляет релюхой 220В, которая включает отопление
int t0;//значение предустановленной температуры
boolean hot;//признак нагрева (пора нагревать)
double tmp;//температура текущая
void setup(void)
{
// start serial port
Serial.begin(9600);
// Start up the library
sensors.begin();
pinMode(pol, OUTPUT); //цифровые выходы
hot=FALSE;
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
sensors.requestTemperatures(); // Send the command to get temperatures
tmp=sensors.getTempCByIndex(0);
t0=analogRead(A0);//значение тока, с шунта снимаю (от 0 до 1023).
t0 = map(t0,0,513,5,20);
if(tmp>0&&tmp<100){//1 если температура хотя бы правдоподобная
Serial.print(millis());Serial.print(" ");Serial.print(tmp);Serial.print(" ");//печатаю ее
if(tmp<t0*1.0-1.5&&hot==FALSE) hot=TRUE;
if(tmp>t0*1.0+1.5&&hot==TRUE) hot=FALSE;
if(hot) digitalWrite(pol, HIGH); else digitalWrite(pol, LOW);//управляем релюхой
Serial.print(" ");Serial.print(t0);//печатаю ее
Serial.print(" ");Serial.print(hot);
}//1
Serial.println();
}
Два модуля надо скинуть на c:\Program Files (x86)\Arduino\libraries\
Переменный резистр с неисправного преобразователя.
Оттарировал его, чтобы посередке было
Придумал систему, которая бы отслеживала температуру в комнате и включала-отключала этот насос!
Назвал ее система поддержания постоянной температуры или сокращенно СППТ.
Вот схема ее:
Итак трансформатор взял с UPSа. Он называет RT-425B. Там тослые провода черный, красный, синий заизолировать. Это вторичка синий и черный дают переменку 18в, но они не нужны!
Нужны тонкие синий и черный 220в и зеленый и черный другая обмотка переменка 18в.
Диодный мост любой. Я взял пластмассовый квадратик длинной меньше 2 пальцев.
Кондер нашел 10000 мкф 46в.
На выходе получил постоянное напряжение 20в. Это нормальное напряжение, 32в нельзя превышать. Преобразователь LM2596 настроил на 7.1в. для питания МК Arduino PRO mini.
Реле HF-2100-1A с какого-то водонагревателя. Оно как раз на 220В расчитано 2 кв, ТЭНы же включает! Транзистор Н-канал полевой IRF-3808.
Это как программатор подключать, как резистор подключать, какие значение от полуоборота выдавал резистор.
Программа:
//
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 10
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
int pol = 13; //выход на затвор полевика IRF3808, который управляет релюхой 220В, которая включает отопление
int t0;//значение предустановленной температуры
boolean hot;//признак нагрева (пора нагревать)
double tmp;//температура текущая
void setup(void)
{
// start serial port
Serial.begin(9600);
// Start up the library
sensors.begin();
pinMode(pol, OUTPUT); //цифровые выходы
hot=FALSE;
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
sensors.requestTemperatures(); // Send the command to get temperatures
tmp=sensors.getTempCByIndex(0);
t0=analogRead(A0);//значение тока, с шунта снимаю (от 0 до 1023).
t0 = map(t0,0,513,5,20);
if(tmp>0&&tmp<100){//1 если температура хотя бы правдоподобная
Serial.print(millis());Serial.print(" ");Serial.print(tmp);Serial.print(" ");//печатаю ее
if(tmp<t0*1.0-1.5&&hot==FALSE) hot=TRUE;
if(tmp>t0*1.0+1.5&&hot==TRUE) hot=FALSE;
if(hot) digitalWrite(pol, HIGH); else digitalWrite(pol, LOW);//управляем релюхой
Serial.print(" ");Serial.print(t0);//печатаю ее
Serial.print(" ");Serial.print(hot);
}//1
Serial.println();
}
Переменный резистр с неисправного преобразователя.
Оттарировал его, чтобы посередке было
Подписаться на:
Сообщения (Atom)