Ничего не найдено :(
    В гостях у Самоделкина! » Электроника » Arduino » Термостат для вентилятора

    Термостат для вентилятора



    Вентиляторы, применяемые для охлаждения электроники, бывают двух видов. Одни - миниатюрные, их направляют непосредственно на охлаждаемые компоненты, другие - крупнее, они прогоняют воздух через всё пространство корпуса. Лучше всего, когда оба вида вентиляторов применяются совместно. Нередко вентиляторы второго вида постоянно "молотят" на полную мощность, даже если в этом нет необходимости. От этого быстрее изнашивается подшипник, а пользователю мешает слишком сильный шум. Простейший контактный термостат может включать и выключать вентилятор, ресурс подшипника при этом расходуется лишь при работе двигателя, но резко появляющийся и исчезающий шум может раздражать ещё больше. Более сложный термостат - например, предложенный автором Instructables под ником AntoBesline - регулирует частоту вращения двигателя вентилятора ШИМом и поддерживает её необходимой и достаточной для достижения заданной температуры. Прогонять воздух через пространство корпуса целесообразно снизу вверх, а располагать датчик температуры - сверху. Можно также установить фильтры, предотвращающие попадание в корпус пыли, но они снизят производительность.

    Датчик температуры и влажности типа DHT11 подходит как раз для термостата, управляющего вентилятором второго вида, так как измеряет он температуру именно воздуха, а не какой-либо поверхности. Его поддержку обеспечивают две библиотеки, выложенные здесь и здесь. Если необходимо оборудовать термостатом вентилятор первого вида, придётся применить другой датчик, измеряющий температуру поверхности охлаждаемого компонента. Программу тогда придётся переделать, а библиотеки потребуются другие, ведь у датчика может отличаться как интерфейс, так и структура передаваемых им данных.

    При помощи следующей иллюстрации мастер показывает, что такое ШИМ, большинству читателей это и так известно. За счёт того, что выходной транзистор всегда либо полностью закрыт, либо полностью открыт, на нём всегда выделяется очень малая мощность. Как известно, мощность равна произведению тока на напряжение, а тут при закрытом транзисторе очень мал ток, а при открытом - мало падение напряжения на нём. Один из двух множителей всегда оказывается малым, а значит, и их произведение - тоже. Практически вся мощность в ШИМ-регуляторе достаётся нагрузке, а не транзистору.

    Термостат для вентилятора


    Мастер составляет схему термостата:



    Arduino здесь питается от 5-вольтового источника, вентилятор - от 12-вольтового. Если применить 5-вольтовый вентилятор, можно обойтись одним источником с достаточной нагрузочной способностью, запитав Arduino через простейший LC-фильтр. Диод, подключённый параллельно вентилятору в обратном направлении, нужен, если двигатель - коллекторный (как в некоторых современных USB-вентиляторах). При применении компьютерного вентилятора с датчиком Холла и электронным управлением обмотками этот диод необязателен.

    Текст составленной мастером программы довольно короткий, он приведён ниже:

    #include "DHT.h"
    #define dht_apin A1 
    #include
    
    LiquidCrystal lcd(7,6,5,4,3,2);
    DHT dht(dht_apin, DHT11);
    int fan = 11;       
    int led = 8;        
    int temp;
    int tempMin = 30;    
    int tempMax = 60;   
    int fanSpeed;
    int fanLCD;
    void setup() 
    {
       pinMode(fan, OUTPUT);
       pinMode(led, OUTPUT);
       lcd.begin(16, 2);
       dht.begin();
       lcd.print("Room Temp Based");
       lcd.setCursor(0, 1);
       lcd.print("Fan speed Ctrl ");
       delay(3000);
       lcd.clear();
    }
    void loop() 
    {
        float temperat;
        temperat=dht.readTemperature();
        temp = temperat;    // store the temperature value in temp variable
       Serial.print( temp );
       if(temp < tempMin)     // if temp is lower than minimum temp
       {   
           fanSpeed = 0;      // fan is not spinning
           analogWrite(fan, fanSpeed); 
           fanLCD=0;
           digitalWrite(fan, LOW);       
       } 
       if((temp >= tempMin) && (temp <= tempMax)) // if temperature is higher than minimum temp
       {  
           fanSpeed = temp;//map(temp, tempMin, tempMax, 0, 100); // the actual speed of fan//map(temp, tempMin, tempMax, 32, 255);
           fanSpeed=1.5*fanSpeed;
           fanLCD = map(temp, tempMin, tempMax, 0, 100);  // speed of fan to display on LCD100
           analogWrite(fan, fanSpeed);  // spin the fan at the fanSpeed speed
       } 
          if(temp > tempMax) // if temp is higher than tempMax
         {        
         digitalWrite(led, HIGH);  // turn on led 
         } 
       else               // else turn of led
         {                    
         digitalWrite(led, LOW); 
         }
          lcd.print("TEMP: ");
       lcd.print(temp);      // display the temperature
       lcd.print("C ");
       lcd.setCursor(0,1);   // move cursor to next line
       lcd.print("FANS: ");
       lcd.print(fanLCD);    // display the fan speed
       lcd.print("%");
       delay(200);
       lcd.clear(); 
     }


    Также скетч можно скачать в виде файла здесь. Расширение unknown придётся сменить на ino.

    На следующих фото показана сборка прототипа устройства на пакетной плате типа breadboard:









    Собрав прототип, мастер испытывает его. Температура отображается в градусах Цельсия, действующее значение напряжения на вентиляторе - в процентах от максимума.







    Осталось собрать схему пайкой и сделать термостат частью той самоделки, которую он будет охлаждать.

    Источник (Source)
    Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

    Клиент для openweathermap.org на основе Wemos d1 mini

    Шестикнопочный пульт управления приложением Microsoft Soundscape

    8
    Идея
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    8
    Описание
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    6
    Исполнение
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Итоговая оценка: 7.33 из 10 (голосов: 1 / История оценок)

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

    10 комментариев
    tormozedison Автор
    Ну, на нижнем пределе диапазона гистерезис реализовать можно. Доработав слегка программу. А во всём остальном диапазоне, где вентилятор всё равно вращается, только скорость меняется, можно и без гистерезиса.
    2Dem
    Цитата: tormozedison
    Гистерезис нужен при резком включении-выключении нагрузки. При плавной регулировке ШИМом, как здесь, он ни к чему.

    Не соглашусь, гистерезис нужен именно на логику включения/выключения. Например вентилятор, пусть даже на самых малых оборотах включается при >30 градусов, а при <30 отключается. Но если представить, что температура находится в районе 30 градусов, вентилятор включается на малых оборотах, после чего температура сразу падает до 29, вентилятор останавливается. Короче говоря получается "дрочилово" вкл/выкл-ючением вентилятора. Как раз от этого спасает гистерезис, например включение сделать когда температура >30, а отключение когда <25. Если такое не делать, то никакого смысла в Ардуино вообще нет, так как есть KY-028 и аналоги, которые позволяют как использовать плавное нарастание оборотов, так и просто вкл/выкл, и лишь отсутствие гистерезиса не делают эти модули идеальными.
    tormozedison Автор
    Гистерезис нужен при резком включении-выключении нагрузки. При плавной регулировке ШИМом, как здесь, он ни к чему.

    Про КУ208 знаю с конца восьмидесятых. Про KY-028 узнал от вас, спасибо за наводку.

    Дисплей к данному термостату подключать не обязательно. Вместо UNO взять дешёвый клон с теми же возможностями. И будет экономически оправдано.
    R555
    2Dem не оскорбляй, тех (а ты знаешь, что я ПРОФИ, в электронике, просто не хочешь этого признать).
    Я принял решение обнулить все дизлайки по твоим каментам на мои самоделки. У меня сегодня удачный день и праздник.
    Я начинаю обнулять твои дизлайки... А ты сможешь отозвать свои оскорбления?
    Кто не ошибается, тот не делает ничего.
    2Dem
    Цитата: Иван_Похмельев
    Цитата: R555
    Придурок даже не правильно пишет название КУ208.
    Зато он правильно пишет название датчика температуры KY-028. При чём здесь вообще КУ208?

    Во-первых, спасибо что процитировали сообщение, мне было очень смешно увидеть, что "всезнайка" не знает таких элементарных вещей. Во-вторых, KY-028 я привел как пример, стоит добавить силовой ключ и мы получаем более эффективный термостат. Причем эффективный во всех смыслах. Если не ошибаюсь тут тоже нет гистерезиса по минимальной температуре. А именно это в первую очередь следовало сделать, иначе использовать Ардуино нет вообще никакого резона. Неэффективное использование материалов, говоря грубо у меня на китайском Nano с 16к памяти завязано управление вентиляцией в котельной на основе температуры и влажности, защита от протечек по всему дому (6 датчиков), "умная" циркуляция ГВС, промывка мембраны осмоса, ну и отображение всей этой информации на дисплее 1602. А использовать Uno для запуска вентилятора рационально только если это урок для начинающих, но данная "самоделка" как урок вообще никакая, есть гораздо более хорошие уроки. Тогда в чем ее смысл?
    Иван_Похмельев
    Почему бесполезной? Конечно, это не изделие, а макет, в схеме есть ошибки, но идея имеет право на существование. И о каком экране Вы говорите?
    Иван_Похмельев
    Я бы не был столь категоричен: устройство кроме самого регулирования, ещё и отображает температуру, что может быть полезным. А вот название неправильное, никакой это не термостат, а макет термозависимого регулятора оборотов вентилятора.
    Иван_Похмельев
    Цитата: R555
    Придурок даже не правильно пишет название КУ208.
    Зато он правильно пишет название датчика температуры KY-028. При чём здесь вообще КУ208?
    2Dem
    Например за KY-028 не слышали? Это бред, использовать UNO для такой бесполезной поделки. Экран вообще не нужен в такой реализации. Вся эта фигня похожа на первую и самое важное неудачную поделку школьника, так как все, что можно было сделать неправильно, именно так и сделано.
    Korolev
    Очередная микроскопом-гвозде-забивалка! nea

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Опрос
    А Вы уже рассказали на сайте о своей самоделке?

    Последние комментарии

    Все комментарии