Автоматичний вентилятор на Arduino
Завдання роботи:
зібрати і випробувати автоматичний вентилятор на 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. Схема автоматичного вентилятора
Хід роботи
- Складіть прототип автоматичного вентилятора відповідно до схеми на рис. 5, керуючись також рис. 1. На рисунку 6 представлено розміщення виводів транзисторів, наведених у переліку обладнання.
Рис. 6. Розміщення виводів транзисторів MPSA42, 2N6517, 2N2222
- Перш ніж написати програмний код до робочого вікна програми, треба встановити або перевірити наявність таких бібліотек:
– Wire;
– Adafruit_MLX90614.
Для встановлення бібліотек скористайтеся меню Інструменти – Керувати бібліотеками. У вікні, що з’явиться, за допомогою інструменту пошуку знайдіть і встановіть ці бібліотеки. ПК при цьому має бути підключеним до мережі Інтернет.
- Скопіюйте та вставте до робочого вікна програми 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 секунди між вимірюваннями
}
- За допомогою USB-кабелю під’єднайте плату Arduino до ПК.
- У меню Інструменти – Плата оберіть Arduino UNO.
- У меню Інструменти – Порт оберіть порт, якій відповідає обраній платі.
- Натисніть кнопку «Завантаження» та дочекайтеся завершення процесу.
- У меню Інструменти – Монітор послідовного порту відкрийте вікно послідовного порту. У ньому мають кожну секунду з’являтися результати вимірів температури (рис. 7).
Рис. 7. Вікно послідовного порту
9. Піднесіть долоню до датчика температури та переконайтеся, що вентилятор спрацьовує за заданої у програмному коді температури.
10. У програмному коді спробуйте зменшити значення затримки між вимірюваннями до 200 мс. Завантажте новий програмний код і проведіть випробування, аналогічні описаним у пп. 8 та 9.
11. Спробуйте програмно змінити значення температури спрацьовування та проведіть випробування з іншими об’єктами.
Аналіз даних
- Дійдіть висновків щодо того, як змінилася робота автоматичного вентилятора після зменшення значення затримки між вимірюваннями.
- Дійдіть висновків щодо того, чи впливають властивості поверхні об’єкта на результати вимірів температури за допомогою датчика MLX90614.