В этой статье мы собираемся построить пару простых схем вентиляторов постоянного тока с автоматическим контролем температуры на базе Arduino, которые будут включать вентилятор или любые другие подключенные к нему устройства, когда температура окружающей среды достигает заранее определенного порогового уровня. Мы собираемся использовать датчик DHT11 и ардуино для этого проекта.
Обзор
Прелесть микроконтроллеров в том, что мы получаем очень точный контроль над подключенными к ним периферийными устройствами. В этом проекте пользователю просто нужно ввести пороговую температуру в программе, а микроконтроллер позаботится об остальной функции.
В Интернете доступно множество проектов автоматических регуляторов температуры без использования микроконтроллеров, таких как использование компаратора и транзисторов.
Они очень простые и работают хорошо, но проблема возникает при калибровке порогового уровня с помощью предварительно установленного резистора или потенциометра.
У нас есть слепая идея при калибровке, и пользователю может потребоваться метод проб и ошибок, чтобы найти золотую середину.
Эти проблемы решаются микроконтроллерами, пользователю просто нужно ввести температуру в градусах Цельсия в этом проекте, поэтому калибровка не требуется.
Этот проект можно использовать там, где необходимо стабилизировать внутреннюю температуру контура или уберечь его от перегрева.
На схеме 1 мы подключаем вентилятор ЦП в качестве выхода. Эта установка может использоваться для контроля внутренней температуры окружающей среды замкнутого контура.
При достижении пороговой температуры вентилятор включается. Когда температура опускается ниже пороговой, вентилятор отключается. Так что это в основном автоматизированный процесс.
На схеме 2 мы подключили реле для управления устройствами, работающими от сетевого напряжения, такими как вентилятор стола.
Когда температура в помещении достигает пороговой температуры, вентилятор включается и выключается, когда в помещении остывает.
Это может быть лучший способ экономии энергии и рай для ленивых людей, которые хотят, чтобы другие включали вентилятор, когда им становится тепло.
Принципиальная схема управления вентилятором постоянного тока
Эта установка может быть использована для цепей, заключенных в коробку. Светодиод загорается при достижении заданного порогового уровня, а также включает вентилятор.
Подключение реле для управления вентиляторами большего размера
Эта схема выполняет ту же функцию, что и предыдущая схема, теперь вентилятор заменен реле.
Эта схема может управлять настольным или потолочным вентилятором или любым другим устройством, которое может снизить температуру окружающей среды.
Подключенное устройство выключится, как только температура опустится ниже установленного порогового уровня.
Представленная здесь принципиальная схема вентилятора постоянного тока с регулируемой температурой - лишь некоторые из множества возможных. Вы можете настроить схему и программу для своих целей.
ПРИМЕЧАНИЕ 1: # Вывод 7 выводится.
ПРИМЕЧАНИЕ 2: Эта программа совместима только с датчиком DHT11.
Программа для описанной выше схемы автоматического регулятора температуры с использованием Arduino:
Программный код
Примечание: в программе int th = 30 // устанавливаем пороговую температуру в градусах Цельсия. Замените «30» на желаемое значение. Второй дизайн Второй проект схемы вентилятора постоянного тока с регулируемой температурой, обсуждаемый ниже, автоматически определяет температуру окружающей среды и регулирует скорость двигателя вентилятора, чтобы поддерживать температуру окружающей среды под контролем. Эта автоматическая обработка выполняется с помощью Arduino и датчика температуры IC LM35. К:Анкит Неги 1). Как только температура окружающей среды поднимется выше 25 градусов по Цельсию (вы можете изменить это значение в программе в соответствии с вашими потребностями, объяснено в рабочем разделе) двигатель запускается. 2). И с каждым градусом повышения температуры скорость двигателя также увеличивается. 3). Двигатель работает на максимальной скорости, как только температура поднимается до 40 градусов Цельсия (это значение можно изменить в программе). Для решения упомянутой выше задачи мы будем использовать temp. Датчик LM35 так же широко и легко доступен. LM35 имеет 3 контакта, как вы можете видеть на рисунке. 1. Vin - этот вывод подключен к источнику постоянного тока от 4 до 20 В. LM35 при подключении к источнику питания обнаруживает температура окружающей среды и передает эквивалентное напряжение в соответствии с повышением температуры на каждый градус через свой выходной контакт. LM35 может ощущать любую температуру. от -50 до +150 градусов Цельсия и увеличивает выходную мощность на 10 милливольт при повышении температуры на 1 градус. Таким образом, максимальное выходное напряжение составляет 1,5 В. Arduino требуется, чтобы изменить аналоговое значение, полученное с выходного контакта LM35, на цифровое значение и отправить соответствующий цифровой выход (PWM) на базу mosfet. Мы также будем использовать команды arduino для печати температуры, соответствующее аналоговое значение и цифровой выход для mosfet на последовательном мониторе ARDUINO IDE. Эта схема бесполезна, если она не может работать с сильноточным двигателем. Следовательно, для работы таких двигателей используется МОП-транзистор. Диод используется для защиты МОП-транзистора от обратного электромагнитного излучения, генерируемого двигателем во время работы. 1. LM35 2. АРДУИНО 3. МОП-транзистор (IRF1010E) 4. ДИОД (1N4007) 5. ВЕНТИЛЯТОР (мотор) 6. ИСТОЧНИК ПИТАНИЯ ВЕНТИЛЯТОРА. Выполните соединения, как показано на принципиальной схеме. а) Подключите штырь vin lm358 к 5v arduino А). ПЕРЕМЕННАЯ X- Это просто аналоговое значение, которое принимает контакт №. A0 с выходного контакта LM35. Б). ПЕРЕМЕННАЯ И- Только благодаря этой переменной двигатель нашего вентилятора работает в соответствии с соответствующей температурой. Эта переменная меняет аналоговое значение, то есть переменную x, на соответствующую температуру окружающей среды. Y = (500 * x) / 1023 C). ПЕРЕМЕННАЯ Z- z = карта (x, 0, 1023, 0,255) ПРИМЕЧАНИЕ :: Мы знаем, что lm35 может обеспечить максимум 1,5 вольта, и это тоже при темп. 150 град. что непрактично. Это означает, что для 40 градусов Цельсия мы получаем 0,40 вольт, а для 25 градусов мы получаем 0,25 вольт. Поскольку эти значения очень низкие для правильного ШИМ на МОП-транзисторе, нам необходимо умножить их на коэффициент. Следовательно, мы умножаем его на 10 и вместо этого передаем это значение как аналоговый выход на вывод 10 ШИМ, т.е. ** analogWrite (10, z * 10) Теперь для 0,25 вольт mosfet получает 0,25 * 10 = 2,5 вольт. Для 0,40 вольт mosfet получает 0,40 * 10 = 4 вольта, при котором двигатель почти работает на полной скорости. СЛУЧАЙ 1. Когда темп. Менее 25 градусов В этом случае arduino отправляет 0 PWM напряжение на вывод 10, как в последней строке кода. ** еще Поскольку напряжение ШИМ на основе МОП-транзистора равно 0, оно остается выключенным, и двигатель отключается от цепи. См. Смоделированную схему в этом случае. Как видите, температура 20 градусов, следовательно Аналоговое значение = 41 Но поскольку температура меньше 25 градусов, то МОП-транзистор получает 0 вольт, как показано на рис. (Обозначено синей точкой). Когда температура достигает 25 градусов, то, как указано в коде, сигнал ШИМ отправляется на базу МОП-транзистора, и с каждым градусом повышения температуры это напряжение ШИМ также увеличивается, т.е. См. Смоделированную схему в этом случае. Как вы можете видеть, когда температура увеличивается с 20 градусов до 40 градусов, все три значения меняются и достигают 40 градусов Цельсия. Аналоговое значение = 82 Так как температура превышает 25 градусов, МОП-транзистор получает соответствующее напряжение ШИМ, как показано на рис. (Обозначено красной точкой). Следовательно, двигатель начинает работать при 25 градусах, и при соответствующем повышении температуры на градус напряжение ШИМ от контакта 10 до основания МОП-транзистора также увеличивается. Следовательно, скорость двигателя линейно увеличивается с повышением температуры и становится почти максимальной при 40 градусах Цельсия. Если у вас есть какие-либо дополнительные вопросы относительно описанной выше схемы автоматического вентилятора постоянного тока с контролем температуры с использованием вентилятора и Arduino, вы всегда можете использовать поле для комментариев ниже и отправить нам свои мысли. Мы постараемся вернуться в ближайшее время.//--------------------Program developed by R.Girish---------------------//
#include
dht DHT
#define DHTxxPIN A1
int p = A0
int n = A2
int ack
int op = 7
int th = 30 // set thershold tempertaure in Celsius
void setup(){
Serial.begin(9600) // May be removed after testing
pinMode(p,OUTPUT)
pinMode(n,OUTPUT)
pinMode(op,OUTPUT)
digitalWrite(op,LOW)
}
void loop()
{
digitalWrite(p,1)
digitalWrite(n,0)
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
// you may remove these lines after testing, from here
Serial.print('Temperature(°C) = ')
Serial.println(DHT.temperature)
Serial.print('Humidity(%) = ')
Serial.println(DHT.humidity)
Serial.print('
')
// To here
if (DHT.temperature>=th)
{
delay(3000)
if(DHT.temperature>=th) digitalWrite(op,HIGH)
}
if(DHT.temperature {
delay(3000)
if(DHT.temperature }
}
if(ack==1)
{
// may be removed after testing from here
Serial.print('NO DATA')
Serial.print('
')
// To here
digitalWrite(op,LOW)
delay(500)
}
}
//-------------------------Program developed by R.Girish---------------------// НАША ЦЕЛЬ:
ДАТЧИК ТЕМПЕРАТУРЫ LM35:
2. Vout - этот вывод выдает выходной сигнал в виде напряжения.
3. GND - этот вывод подключен к клемме gnd схемы. ПОЧЕМУ ARDUINO ДЛЯ ДАННОГО ПРОЕКТА КОНТРОЛЛЕРА ВЕНТИЛЯТОРА DC?
КАКОВА РОЛЬ МОП-транзистора?
ПОЧЕМУ ИСПОЛЬЗУЕТСЯ ДИОД?
ПЕРЕЧЕНЬ ЧАСТЕЙ ДЛЯ ПРОЕКТА:
ПРИНЦИПИАЛЬНАЯ ЭЛЕКТРИЧЕСКАЯ СХЕМА:
б) Подключите вывод Vout lm358 к A0 Arduino
c) Подключите заземляющий контакт lm358 к GND Arduino
г) Подключите основание MOSFET к выводу 10 PWM Arduino. КОД:
float x// initialise variables
int y
int z
void setup()
{
pinMode(A0,INPUT) // initialize analog pin A0 as input pin
Serial.begin(9600) // begin serial communication
pinMode(10,OUTPUT) // initialize digital pin 10 as output pin
}
void loop()
{
x=analogRead(A0) // read analog value from sensor's output pin connected to A0 pin
y=(500*x)/1023// conversion of analog value received from sensor to corresponding degree Celsius (*formula explained in working section)
z=map(x,0,1023,0,255) // conversion of analog value to digital value
Serial.print('analog value ')
Serial.print( x) // print analog value from sensor's output pin connected to A0 pin on serial monitor( called 'analog value')
Serial.print(' temperature ')
Serial.print( y) // print the temprature on serial monitor( called 'temprature')
Serial.print(' mapped value ')
Serial.print( z*10) // multiply mapped value by 10 and print it ( called ' mapped value ' )
Serial.println()
delay(1000) // 1 sec delay between each print.
if(y>25)
{analogWrite(10,z*10) // when temp. rises above 25 deg, multiply digital value by 10 and write it on PWM pin 10 ( ** explained in working section)
}
else
{analogWrite(10,0) // in any other case PWM on pin 10 must be 0
}
} РАБОТА (понимание кода):
1. Первое аналоговое значение должно быть изменено на соответствующее напряжение, т.е.
1023: 5В
Следовательно, (5000 милливольт * x) / 1023 В
2. Теперь мы знаем, что на каждый градус повышения температуры соответствующее выходное напряжение увеличивается на 10 мВ, т.е.
1 градус Цельсия: 10 милливольт
Следовательно, (5000 милливольт * x) / (1023 * 10) ГРАДУС
эта переменная изменяет аналоговое значение на цифровое значение для выхода ШИМ на выводе 10.
{analogWrite (10,0) // в любом другом случае ШИМ на выводе 10 должен быть 0
} **
Температура = 20
Сопоставленное значение = 100
СЛУЧАЙ 2. Когда темп. Больше 25 градусовif(y>25)
{analogWrite(10,z*10)
} which is z* 10.
Температура = 40
Сопоставленное значение = 200
Предыдущая статья: Простая схема защиты холодильника Далее: Как разработать схему источника бесперебойного питания (ИБП)