Перемикання світла при змінюванні температури
Мета проекту:
● набути практичних навичок створення й редагування електричних схем в онлайн середовищі Tinkercad;
● навчити створювати в онлайн середовищі програму, яка перемикає світло при змінюванні температури;
● розвивати технічне мислення, навички програмування, розвивати пам’ять.
Матеріали:
● комп’ютер (ноутбук), програмне онлайн середовище Tinkercad (https://www.tinkercad.com)
● Arduino Uno
● Сенсор температури (Temperature sensor)
● Світлодіодна адресна стрічка на 10 світлодіодів (Neopixel Strip 10)
● Breadboard (дошка для з'єднання)
● Аккумуляторная батарея 1.5В 3шт. (Battarey 1.5v)
Хід роботи:
Увага! Під час роботи за комп’ютером дотримуйтеся правил безпеки та санітарно- гігієнічних норм (інструктаж з техніки безпеки).
Крок 1: Створіть новий проект:
● Увійдіть в свій обліковий запис на Tinkercad та оберіть свій клас.
● Виберіть урок в класі
● Натисніть на Create new design (Створити новий дизайн) та оберіть
Circuit. Відкриється вікно проекту
Крок 2: Додайте компоненти:
● З правої бічної панелі виберіть "Components" (Компоненти).
● Додайте до проекту наступні компоненти:
● Arduino Uno
● Сенсор температури (Temperature sensor)
● Світлодіодна адресна стрічка на 10 світлодіодів (Neopixel Strip 10)
● Breadboard (дошка для з'єднання)
● Аккумуляторная батарея 1.5В 3шт. (Battarey 1.5v)
Крок 3: Підключіть компоненти:
Підключіть компоненти, як показано на схемі нижче, або надісланій вчителем в Tinkercad.
Крок 4: Напишіть код Arduino:
● Перейдіть до вкладки "Code" (Код) на панелі середовища. ● Оберіть спосіб програмування Blocks або Text
● Напишіть програму Arduino, яка зчитує значення фоторезистора та стан датчика руху, а потім керує світлодіодом.
#include <Adafruit_NeoPixel.h>
#define PIN 6 // Пин, к которому подключены неопиксели
#define NUMPIXELS 10 // Количество неопикселей
#define TEMPERATURE_PIN A0 // Пин, к которому подключен аналоговый датчик температуры
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.show(); // Инициализация неопикселей
}
void loop() {
// Чтение значения температуры с аналогового пина
int sensorValue = analogRead(TEMPERATURE_PIN);
float voltage = sensorValue * (5.0 / 1023.0); // Преобразование в напряжение (максимальное 5 В)
// Преобразование напряжения в температуру в градусах Цельсия (для примера)
// Реальное преобразование будет зависеть от конкретного датчика температуры
float temperature = (voltage - 0.5) * 100.0;
// Определение цвета в зависимости от температуры
uint32_t color;
if (temperature >= 60.0) {
// Горячее (красный цвет)
color = strip.Color(255, 0, 0);
} else if (temperature <= -10.0) {
// Холодное (синий цвет)
color = strip.Color(0, 0, 255);
} else {
// Промежуточные значения (желтый и зеленый цвета)
int redValue = map(temperature, -10, 60, 255, 0);
int greenValue = map(temperature, -10, 60, 0, 255);
color = strip.Color(redValue, greenValue, 0);
}
// Установка цвета для всех неопикселей
for (int i = 0; i < NUMPIXELS; i++) {
strip.setPixelColor(i, color);
}
strip.show(); // Отображение цвета на неопикселях
delay(1000); // Задержка 1 секунда (можно изменить по вашему усмотрению)
}
Крок 5: Тестування та симуляція:
● Натисніть кнопку "Start Simulation" (Почати симуляцію), щоб випробувати роботу вашого проекту віртуально в Tinkercad.
● Спостерігайте за роботою проекту в середовищі Tinkercad та переконайтеся, що світлодіодна стрічка міняє за температурою колір (-10 і нижче - синій колір, +70 і вище - червоний колір, середні значення жовтий та зелений.)
● При потребі додайте команди виведення значень освітленості в послідовний порт. Налаштуйте програму
Крок 6: Використання проекту:
● Розгляньте можливе використання такої системи у реальному житті, наприклад, для автоматичного повідомлення вас про велику або низьку температуру.
Крок 7: Підсумок та обговорення:
● Оцініть, як вдалося виконати проект і які можливості розширення ви бачите.
● Проведіть обговорення результатів та можливих вдосконалень. Додаткове завдання (на вибір і за бажанням):
Збереження даних: Додайте можливість виведення на дисплей точної температури
Використання інших датчиків: Додайте інші типи датчиків, такі як датчик вологості та виведення вологості на дисплей.
Звукова сигналізація: Додайте можливість ввімкнення звукової сигналізації при високій температурі або занизької.
Бажаю успіхів!