You are on page 1of 4

‭ ІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ‬

М
‭НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”‬

‭Інститут телекомунікацій, радіоелектроніки та електронної техніки‬

‭Лабораторна робота №1.‬

‭Вивчення роботи портів вводу-виводу плати Arduino‬

‭з дисципліни‬
‭ОСНОВИ IT ТА ЕЛЕКТРОННОЇ ІНЖЕНЕРІЇ‬
‭Спеціальність 172‬
‭« Телекомунікації та радіотехніка»‬
‭ ета:‬
М
‭навчитися програмувати Arduino і дослідити роботу портів вводу-виводу‬
‭мікроконтролера. Завдання: створити програму керування світлодіодами,‬
‭використовуючи порт вводу-виводу Arduino.‬

‭Обладнання:‬
‭мікроконтролер Arduino; проводи; датчик температури і вологості; макетна плата; USB‬
‭– кабель.‬

‭ ід виконання роботи:‬
Х
‭1 .‬
‭З ібрати макет відповідно схеми на рис. 4.1.‬

2‭ .‬
‭Написати програму включення-виключення світлодіодів на виходах мікроконтролера в‬
‭з алежності від кількості натискань кнопки на вході. Всього натискань має бути три.‬
‭При включенні 3 світлодіоди починають миготіти із заданою частотою й у порядку‬
‭з гідно варіанту в табл. 1. Після першого натискання кнопки частота збільшується‬
‭вдвічі, після другого ще вдвічі. Після третього повертається до початкового значення.‬
/‭/ Підключаємо необхідні бібліотеки‬
‭int buttonPin = 3; // Пін для підключення кнопки‬
‭int ledPins[] = {12, 4, 5, 11}; // Піни для світлодіодів‬
‭int ledCount = 4; // Загальна кількість світлодіодів‬
‭int initialDelay = 2000; // Початкова затримка між світлодіодами‬
‭int frequency = 500; // Початкова частота миготіння‬

‭void setup() {‬
‭p inMode(buttonPin, INPUT_PULLUP); // Встановлення піна кнопки як вхід з‬
‭підтримкою підтяжки‬
‭for (int i = 0; i < ledCount; ++i) {‬
‭p inMode(ledPins[i], OUTPUT); // Встановлення пінів світлодіодів як виходи‬
‭}‬
‭}‬

‭void loop() {‬
‭int buttonState = digitalRead(buttonPin); // Зчитуємо стан кнопки (натиснута чи ні)‬

‭if (buttonState == LOW) {‬


‭toggleLEDs(); // Якщо кнопку натиснуто, викликаємо функцію для управління‬
‭с вітлодіодами‬
‭d elay(initialDelay); // Затримка між послідовними натисканнями кнопки‬
‭}‬
‭}‬

‭void toggleLEDs() {‬
‭for (int i = 0; i < ledCount; ++i) {‬
‭d igitalWrite(ledPins[i], HIGH); // Увімкнення світлодіода‬
‭d elay(frequency); // Затримка для відображення миготіння‬
‭d igitalWrite(ledPins[i], LOW); // Вимкнення світлодіода‬
‭}‬

/‭/ Подвоюємо частоту після першого натискання кнопки‬


‭frequency *= 2;‬

/‭/ Скидаємо частоту до початкового значення після третього натискання кнопки‬


‭if (frequency > initialDelay) {‬
‭frequency = initialDelay;‬
‭}‬
‭}‬
‭ исновок:‬
В
‭Р озроблена програма успішно виконує вказані завдання з управління світлодіодами на‬
‭о снові кількості натискань кнопки. Миготіння світлодіодів відбувається з заданою‬
‭ч астотою та в порядку, визначеному у завданні. Послідовність збільшення та‬
‭з меншення частоти відповідає вимогам завдання.‬
‭Т акий тип програм може бути використаний у сферах, де потрібно керувати різними‬
‭пристроями чи вказівниками за допомогою кнопок, наприклад, для створення‬
‭простих систем управління освітленням або аудіовізуальним обладнанням.‬
‭Можливості розширення проекту можуть включати додавання нових функцій,‬
‭взаємодію з іншими пристроями чи розширення зони застосування. Також може бути‬
‭корисним розглядання можливостей оптимізації коду для оптимальної роботи.‬
‭З агально кажучи, розроблений проект є успішним виконанням завдання, важливого‬
‭для вивчення та розвитку навичок в галузі вбудованих систем та програмування.‬

You might also like