Оголошення

  • (слайд) Вівторок
    • день пам’яті Дугласу Аддамсу за автостопом «Путівник по галактиці»
    • в цей день кожен хороший трекер має свій рушник на видному місці;)

Проект нічного світла

Інгредієнти

  • Як я вже згадував, нам знадобляться:
    • Світлодіод, який буде виконувати роль джерела світла,
    • ПІР-датчик, який визначатиме рух,
    • Датчик LDR, який ми будемо використовувати для виявлення інтенсивності світла, та
    • або кнопку, щоб увімкнути або вимкнути все це

Діаграма стану

У створеному пристрої ми можемо визначити такі стани:

  • штатів (від англійської держави), a
  • переходи між державами (з англійської мови перехід).

Отримана діаграма стану, що представляє цей пристрій, показана на наступному малюнку:

основи
Нічне світло: діаграма стану

1. Блискавка світлодіода

Якщо ми хочемо розрахувати величину цього опору, ми можемо зробити з Закон Ома. Однак ми повинні знати:

  • падіння напруги на світлодіоді (так звана пряма напруга)
  • величина струму, який буде протікати в циклі

Максимальний струм, який може пройти через штифт на платі Arduino, становить 40 мА. Однак для світлодіода ми можемо розраховувати на струм 20 мА.

Падіння напруги на світлодіоді залежить від його типу, відповідно. кольори. Тож давайте розраховувати на значення 1,7 В.

Таким чином, достатній опір становить 165 Ом. Найближчий резистор, який використовується для виготовлення, становить 220 Ом.

Шпильки GPIO

Arduino UNO

Примітка

Цифрові штифти працюють лише з двома значеннями:

  • HIGH - логіка 1 (істинно), рівень напруги 5В
  • LOW - логіка 0 (хибна), рівень напруги 0V

Примітка

Звичайно, це не зовсім 5В і точно 0В.

Налаштування вихідного GPIO Pin

Ми покажемо роботу з вихідним виводом GPIO за допомогою світлодіодного діода, який підключений до виводу 6 .

  • pin - номер PIN-коду GPIO
  • mode - режим роботи штифта, який може бути INPUT, OUTPUT (або також як INPUT_PULLUP)

Світлодіод є вихідним приводом і підключений до штирка GPIO 6. Його налаштування виглядатимуть так:

Увага

При використанні константи споживання пам'яті таке ж, як і при використанні макросу, що, ймовірно, пов'язано з оптимізацією компілятора.

Блискавка світлодіода

(слайд) Функція digitalWrite () використовується для запису логічного значення на цифровий штифт. Він має два параметри:

  • pin - номер PIN-коду GPIO
  • значення - значення, яке є або логічним 0 (LOW), або логічним 1 (HIGH)

Superloop

Ось як ми фактично реалізували приклад Blink.

2. Зчитування руху з датчика PIR

Ми підключаємо датчик PIR до плати Arduino UNO для виявлення руху. Він генерує логічний ВИСОКИЙ рівень на виході, коли виявляє рух. В іншому випадку на виході датчика буде логічний НИЗЬКИЙ рівень .

Примітка

Для отримання додаткової інформації про роботу датчика PIR рекомендую прочитати напр. стаття Як працює датчик HC-SR501 PIR та взаємодіє з Arduino.

(слайд) Датчик PIR має три висновки:

  • VCC - джерело живлення
  • GND - земля
  • OUT - цифровий вихід
Датчик PIR: розпина

Примітка

Датчик PIR: плата

Вихід датчика PIR буде підключений до штирка GPIO. 4, який буде встановлено як вхід:

  • pin - номер PIN-коду GPIO

Функція повертає значення ВИСОКОГО або НИЗЬКОГО логічного рівня .

Вихідні дані датчика будуть зчитуватися у функції циклу (). Потім ми можемо негайно використовувати значення зчитування, щоб увімкнути або вимкнути світлодіод:

Послідовна лінія

це просто і дешево

для його реалізації достатньо лише двох кабелів (однак, потрібно чотири разом - зв’язок двосторонній (повнодуплексний))

Зазвичай передається 8b, до якого на початку додається біт START, а біт STOP з бітом парності в кінці (може бути, а може і не бути)

Послідовний зв’язок

  • функції письма - напр. Serial.print (), Serial.println ()
  • функції читання - напр. Serial.read (), Serial.readString ()

Примітка

Приклад

Підтягувальні та висувні резистори

3. Вимірювання інтенсивності світла за допомогою датчика LDR

Аналоговий вхід

Додаткове використання

Додаткові ресурси