Автоматичний вентилятор на Arduino

Avatar
Автор Атамась Артем
Науковий співробітник НЦ "Мала академія наук України", кандидат технічних наук. Сфера наукових інтересів: розвиток технологій наукової освіти.

Завдання роботи:

зібрати і випробувати автоматичний вентилятор на Arduino.

Обладнання:

– платформа Arduino UNO;

– модуль безконтактного термометра MLX90614;

– електромотор з пропелером;

– NPN-транзистор MPSA42, 2N6517, 2N2222 або подібний;

– резистор 1,5 кОм;

– макетна плата;

– з’єднувальні провідники;

– кабель USB Type A-Type B;

– ПК.

Теоретична частина

Рис. 1. Прототип автоматичного вентилятора

Arduino – це платформа для швидкої розробки електронних пристроїв, що вирізняється зручністю та відносно простою мовою програмування. Програмування здійснюється через USB-порт ПК без застосування програматорів. Для програмування Arduino використовується програмне забезпечення Arduino IDE. На базі Arduino можна збирати сумісні між собою електронні й механічні компоненти в єдиний пристрій, а потім через звичайний комп’ютер запрограмувати поведінку цих складових, як потрібно.

На рисунку 2 зображено зовнішній вигляд плати Arduino UNO.

Плата Arduino UNO побудована на базі мікроконтролера ATmega328P. До її складу входить усе необхідне для зручної роботи з мікроконтролером: 14 цифрових входів/виходів (з них 6 можуть використовуватися як ШІМ-виходи), 6 аналогових входів, кварцовий резонатор на 16 МГц, роз’єм USB, додатковий роз’єм живлення, роз’єм для програмування всередині схеми (ICSP) і кнопка скидання. Для початку роботи з пристроєм достатньо просто подати живлення від AC/DC-адаптера або батарейки або підключити його до комп’ютера за допомогою USB-кабелю.

Рис. 2. Плата Arduino UNO

Програма Arduino IDE, доступна для завантаження на офіційному сайті Arduino, є безкоштовною. На рисунку 3 зображено робоче вікно програми, в якому здійснюється написання програми для плати Arduino.

Програму в Arduino IDE, яка вже готова до роботи з платою, називають скетчем. Після того як програма складена, вона завантажується (прошивається) на плату. Для програмування Arduino використовується USB-кабель. Відразу після завантаження програма готова виконувати різні команди. Для завантаження програми на плату у вікні програми треба натиснути кнопку  «Завантаження». Після завантаження програми і від’єднання USB-кабелю від ПК програма лишається збереженою на платі Arduino і починає працювати при подачі живлення на плату без ПК.

У цій лабораторній роботі пропонується на базі платформи Arduino UNO скласти автоматичний вентилятор (рис. 1) з безконтактним датчиком температури MLX90614, який буде спрацьовувати за певної, заданої програмно, температури.

Датчик MLX90614 (рис. 4) є інфрачервоним безконтактним датчиком температури з цифровим виходом. Діапазон вимірювання температури – від -70 до +380 ºС з точністю 0,5 ºС та роздільною здатністю 0,02 ºС. Кут огляду датчика – близько 90º. Для живлення датчика необхідна постійна напруга від 2,7 до 3,6 В. Для роботи з датчиком розроблена бібліотека, яка буде використовуватися в цій роботі.

Рис. 3. Вікно програми Arduino IDE

Рис. 4. Датчик MLX90614

Схема автоматичного вентилятора представлена на рисунку 5.

Алгоритм роботи схеми полягає в наведеному далі. За допомогою безконтактного датчика температури відбуваються виміри температури з певною періодичністю, заданою у програмному коді. У випадку, якщо датчиком реєструється температура, значення якої перевищує певне значення, також задане програмно, на логічному виході № 2 Arduino UNO з’являється сигнал високого рівня (логічної одиниці). Цей сигнал подається на базу транзистора VT1 через резистор R1, в результаті чого транзистор відкривається і вентилятор приводиться в дію. Якщо значення температури впаде нижче заданого порогу, на цифровому виході з’явиться сигнал низького рівня (логічного нуля), транзистор закриється і вентилятор зупиниться.

Рис. 5. Схема автоматичного вентилятора

Хід роботи

  1. Складіть прототип автоматичного вентилятора відповідно до схеми на рис. 5, керуючись також рис. 1. На рисунку 6 представлено розміщення виводів транзисторів, наведених у переліку обладнання.

Рис. 6. Розміщення виводів транзисторів MPSA42, 2N6517, 2N2222

  1. Перш ніж написати програмний код до робочого вікна програми, треба встановити або перевірити наявність таких бібліотек:

– Wire;

– Adafruit_MLX90614.

Для встановлення бібліотек скористайтеся меню Інструменти – Керувати бібліотеками. У вікні, що з’явиться, за допомогою інструменту пошуку знайдіть і встановіть ці бібліотеки. ПК при цьому має бути підключеним до мережі Інтернет.

  1. Скопіюйте та вставте до робочого вікна програми Arduino IDE такий скетч (напівжирним виділені коментарі до команд, які не вплинуть на роботу програми, оскільки відділені від команд символом «//»):

#include <Wire.h>

#include <Adafruit_MLX90614.h>

#define SENSOR_ADDRESS 0x5A // Адреса датчика температури MLX90614

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

#define OUTPUT_PIN 2 // Вихідний пін для сигналу

void setup() {

Serial.begin(9600);

mlx.begin();

pinMode(OUTPUT_PIN, OUTPUT);

}

void loop() {

float tempC = mlx.readObjectTempC(); // Отримати температуру в градусах Цельсія

Serial.print(“Температура: “);

Serial.print(tempC);

Serial.println(” градусів Цельсія”);

if (tempC >= 25.0) {

digitalWrite(OUTPUT_PIN, HIGH); // Подати сигнал високого рівня на вихід 2

} else {

digitalWrite(OUTPUT_PIN, LOW); // Забрати сигнал високого рівня з виходу 2

}

delay(2000); // Затримка 2 секунди між вимірюваннями

}

  1. За допомогою USB-кабелю під’єднайте плату Arduino до ПК.
  2. У меню Інструменти – Плата оберіть Arduino UNO.
  3. У меню Інструменти – Порт оберіть порт, якій відповідає обраній платі.
  4. Натисніть кнопку «Завантаження» та дочекайтеся завершення процесу.
  5. У меню Інструменти – Монітор послідовного порту відкрийте вікно послідовного порту. У ньому мають кожну секунду з’являтися результати вимірів температури (рис. 7).

Рис. 7. Вікно послідовного порту

9. Піднесіть долоню до датчика температури та переконайтеся, що вентилятор спрацьовує за заданої у програмному коді температури.

10. У програмному коді спробуйте зменшити значення затримки між вимірюваннями до 200 мс. Завантажте новий програмний код і проведіть випробування, аналогічні описаним у пп. 8 та 9.

11. Спробуйте програмно змінити значення температури спрацьовування та проведіть випробування з іншими об’єктами.

Аналіз даних

  1. Дійдіть висновків щодо того, як змінилася робота автоматичного вентилятора після зменшення значення затримки між вимірюваннями.
  2. Дійдіть висновків щодо того, чи впливають властивості поверхні об’єкта на результати вимірів температури за допомогою датчика MLX90614.