Восьмиканальний розширювач портів PCA9538 – програмний I2C драйвер з обробкою переривань

199249

Програмний модуль драйвера розширювача портів дозволяє реалізувати повний набір можливостей апаратної інтегральної схеми розширювача портів PCA9538 і підключити до контролера NodeMCU через шину I2C ще вісім додаткових портів вводу-виводу, причому з обробкою переривань.

Застосування послідовної шини заощаджує/вивільняє порти контролера — цей підхід потребує лише три GPIO контролера, а надає натомість аж вісім додаткових портів. Продукт pca9538-ext-drv, після запуску у середовищі Lua, «фоново» працює як повноцінний модуль зі своїми публічними методами, що зареєстровано у системному оточенні і котрі можливо викликати з рівня мови Lua.

У модулі реалізовано методи:

  • ініціалізації pca9538.init();
  • конфігурації входів-виходів pca9538.config();
  • інверсії полярності входів pca9538.polarity();
  • встановлення стану виходів pca9538.output();
  • зчитування стану входів pca9538.input();
  • службовий метод int() що обробляє події на входах PCA9538.
Очистити
Артикул: Невідомо Категорії: , Позначок: , , , , , , , , , ,

Опис

Цей програмний модуль розроблявся і тестувався для роботи з:

  • Прошивкою NodeMCU 3.0.0.0 built on nodemcu-build.com provided by frightanic.com
  • branch: master
  • release: 3.0-master_20200610
  • build created on 2020-07-28
  • powered by Lua 5.1.4 on SDK 3.0.1-dev(fce080e)
  • Для роботи модуля, прошивка NodeMCU має містити обов’язкові модулі I2C та GPIO
  • Тестовий стенд, крім мікроконтролера ESP8266 з прошивкою NodeMCU, має включати до свого складу дискретний розширювач портів PCA9538 у вигляді модуля, а також до PCA9538 можуть бути підключені кнопки на входи та світлодіоди на виходи для тестування користувачем. Входів-виходів може бути налаштовано сумарно до 8.

 

Драйвер дозволяє реалізувати повний набір можливостей апаратної інтегральної схеми розширювача портів PCA9538 і підключити до контролера NodeMCU через шину I2C вісім додаткових портів вводу-виводу з обробкою переривань.

Розширювач портів PCA9538 - драйвер

 

Застосування послідовної шини заощаджує/вивільняє порти контролера. Цей підхід потребує лише три GPIO контролера, а надає натомість аж вісім додаткових портів.

Продукт pca9538-ext-drv, після запуску у середовищі Lua, «фоново» працює як повноцінний модуль зі своїми публічними методами, що зареєстровано у системному оточенні і котрі можливо викликати з рівня мови Lua.

У модулі реалізовано методи:

  • ініціалізація pca9538.init(),
  • конфігурація входів-виходів pca9538.config(),
  • інверсія полярності входів pca9538.polarity(),
  • встановлення стану виходів pca9538.output(),
  • зчитування стану входів pca9538.input(),
  • службовий метод int() що обробляє події на входах PCA9538.

Цей продукт реалізовує паралельну обробку подій зміни стану на всіх восьми потенційних входах і дозволяє розробнику зручно доповнити обробники власним кодом. У pca9538-ext-drv доступна проста система фільтрації брязкоту. Фільтр хибних подій реалізовано на рівні таймаута між спрацюваннями обробника переривань.

Реєстрація модуля у системному оточенні:

Примітка 1. Так викликати можливо як вихідний *.lua код, так і компільований *.lc.
Примітка 2. Рекомендуємо виконувати виклик модуля з файлу початкового завантаження init.lua.

Публічні методи модуля:

  • pca9538.init() – ініціалізація модуля із заданими параметрами;
  • pca9538.config() – встановлення режиму входів і виходів для кожного порту розширювача індивідуально;
  • pca9538.polarity() – встановлення інверсії полярності для портів розширювача, що налаштовано як входи;
  • pca9538.output() – встановлення стану портів розширювача, що налаштовано як виходи;
  • pca9538.input() – зчитування значень стану всіх чи певного порту розширювача, що налаштовано як входи;

Розробник може за допомогою API, котрий надає модуль, реалізувати власний алгоритм подальшої обробки подій чи реакції на них, засобами мови Lua та бібліотек мікроконтролера NodeMCU.

Для кого цей продукт

Кожен наш програмний продукт розроблено із застосуванням безмежного розмаїття можливостей простих і доступних контролерів, сенсорів та інших електронних компонентів, які можна знайти у будь-якому магазині. Головна наша мета – надати прості і недорогі інструменти швидкого вирішення задуманих проектів.

Для використання програмного модуля pca9538-ext-drv підійде будь-який модуль чи плата на базі ESP8266-12e/f з прошивкою NodeMCU.

Ми будемо раді, якщо нашими продуктами скористаються:

  • Діти та їх батьки;
  • Учні та їх вчителі;
  • Студенти та їх лабораторні роботи;
  • Новачки у технологіях Інтернету речей;
  • Лаборанти та їх експерименти;
  • Аматори-електронщики-не-програмісти;
  • Аматори-програмісти-не-електронщики;
  • Професійні інженери та їх поважні замовники.

Можливості сучасних обчислювальних систем настільки потужні і всеосяжні, що дані програмні компоненти однаково добре згодяться як для домашньої автоматизації і факультативного навчання, так і комерційного впровадження, або швидкого розгортання окремих сегментів комерційних систем та виконання їх пілотних випробувань.

Необхідні навички та інструменти

Всі програмні продукти на нашому сайті розраховано на користувачів, які вже вміють самостійно підключати, прошивати та програмувати контролер ESP8266 з прошивкою NodeMCU і мовою програмування Lua.

Таким чином, застосування даного комерційного-придбаного програмного модуля Клієнтом полягає у тому, щоб:

  • завантажити (download) lua-код у середовище розробника на комп’ютер,
  • ознайомитися з кодом і супутніми матеріалами пакету постачання,
  • адаптувати код за необхідності під свої задачі,
  • вивантажити (upload) програмний код у контролер та запустити на виконання;
  • інтегрувати придбаний код після тестування до своїх власних програмних розробок.

Проте, Ви можете ознайомитися з інструкцією на нашому сайті, як швидко почати програмувати на Lua з контролером NodeMCU/ESP8266 за цим посиланням Як швидко почати працювати з контролером.

Також радимо ознайомитися з публікацією про застосування розширювачів портів Як підключити велику кількість компонентів

Додаткова інформація

Рівень складності

Складний

Передача даних назовні

Немає

Тип виконання

Модуль з повним API

Локальний Web-сервер

Немає

Журналювання

Немає

Енергоспоживання

Звичайне

Композиція скриптів

Один скрипт

Статистична обробка даних

Немає

Перевірена версія прошивки

3.0-master_20200610

Отримання точного часу

Немає

Інтерфейс користувача

Немає

Виробники апаратного забезпечення

NXP

Необхідні модулі прошивки

gpio модуль, i2c модуль

Мінімальна сумісна версія прошивки

1.5.4.1-master_20161201

комплект:

модуль, модуль + коментарі