Меню сайта
Категории раздела
Материалы, инструменты и оборудование [20]
Расходники, инструменты, приспособления и материалы, которые могу быть полезны для сооружения гроубокса.
Контроль [16]
Системы мониторинга
Гроубоксы [12]
Помещения для выращивания
Субстраты [7]
Среды для выращивания
Электроника [47]
Статистика

Яндекс.Метрика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа
Главная » Статьи » Электроника

Тепловентилятор с ШИМ регулировкой на 220В

Обычно в бытовом тепловентиляторе есть спираль которая нагревается. В данной статье будет представлено решение как уменьшить нагрев спирали в зависимости от температуры окружающего воздуха. И сделать так чтобы обогреватель не маслал на полную мощность когда это уже не требуется, а только подогревал помещение включая мощность спирали в пол силы.

Для этого нам потребуется:

  1. Микроконтроллер Arduino Pro Mini (можно купить тут)
  2. Твердотельное реле SSR-25DA (можно купить тут)
  3. Датчик температуры DS18B20 (можно купить тут)
  4. Резистор 4.7кОм
  5. Гибкой провод-шнурок 1-2 м для датчика
  6. Блок питания (около 5В) для микроконтроллера Arduino Pro Mini - подойдет от зарядки для сотового телефона.

Примерная схема тепловентилятора

Плюс минус все тепловентиляторы так устроены. В нашем случае мы просто сделаем разрыв в цепи питания одной из спиралей и пропустим через твердотельное реле.

Вся прелесть твердотельного реле SSR-25DA заключается в том, что оно может включить и отключить цепь несколько раз в секунду (в нашем случае примерно 30 раз) при этом оно будет чувствовать себя прекрасно и проработает так много времени.

Принцип работы

Включение о отключение несколько раз в секунду будет регулировать микроконтроллер Arduino Pro Mini анализируя температуру воздуха через датчик. Таким образом если в помещении будет холодно микроконтроллер просто на постоянку включит реле и спираль начнет нагреваться обогревая помещение. С течением времени когда температура воздуха поднимется микроконтроллер начнет кратковременно отключать реле, и чем будет выше температура тем моменты отключения реле будут чаще и длительнее. В конечно итоге установится баланс между частотой и длительностью включения реле и температурой воздуха. Обогреватель просто начнет поддерживать температуру слегка нагрев спираль. Это помогает экономить электроэнергию и не уменьшает разброс температуры. Встроенный в тепловентилятор биметаллический выключатель можно использовать в качестве аварийного отключения на случай сбоя с электроникой чтобы не произошло перегрева помещения.

"Мозги" тепловентилятора

Используется паразитное питание датчика DS18B20 чтобы шнурок с датчиком требовал всего 2 провода.

Скетч для микроконтроллера

Скетч или программа для микроконтроллера заливается на плату стандартным способом. Если вы не знаете как это сделать наберите в гугле "заливка скетча на arduino pro mini". Ниже сам код:

#include <OneWire.h>
#include <DallasTemperature.h>
#include <avr/wdt.h>

#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int maxTemp=30;
int minTemp=26;
const int relayPin=9; 
unsigned long interval=30*1000; //30sec recomended
unsigned long lastConnectionTime=0;
int Temp=25;
float tempPrev;
float temp=20;


void setup() {
  Serial.begin(9600);
  pinMode(relayPin,OUTPUT);
  wdt_enable(WDTO_8S);
  sensors.begin();
  setPwmFrequency(relayPin, 1024); //division on 1024 for ~30Hz
  pinMode(13, OUTPUT); //Blick LED
  
}

void loop() {
  if(millis() - lastConnectionTime > interval) {
    digitalWrite(13, HIGH);
    tempPrev=temp;
    sensors.requestTemperatures();
    temp=sensors.getTempCByIndex(1);
    digitalWrite(13, LOW);
    if (temp == -127) {temp=tempPrev;}
    int val = 255-255*(temp-minTemp)/(maxTemp-minTemp);
    
    if (val<0) {val=0;}
    if (val>204) {val=204;} //80% -this 230 or 450W; 204 for 400W
    analogWrite(relayPin, val);
    lastConnectionTime = millis();
    Serial.print("Temp=");
    Serial.print(temp);
    int valperc = map(val, 0, 255, 0, 100);
    Serial.print(" Power=");
    Serial.print(valperc);
    Serial.println("%");
  }
  delay(1);
  wdt_reset();
}

void setPwmFrequency(int pin, int divisor) {
  byte mode;
  if(pin == 5 || pin == 6 || pin == 9 || pin == 10) {
    switch(divisor) {
      case 1: mode = 0x01; break;
      case 8: mode = 0x02; break;
      case 64: mode = 0x03; break;
      case 256: mode = 0x04; break;
      case 1024: mode = 0x05; break;
      default: return;
    }
  }
}

Просто скопируйте его и вставьте в приложение Arduino IDE. Подключите arduino pro mini и загрузите программу.

Категория: Электроника | Добавил: kimih (2015-12-29)
Просмотров: 2428 | Теги: шим регулирование тепловентилятора, шим регулирование обогревателя, пид контроллер для обогревателя, Тепловентилятор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Поиск
Реклама