Які бувають дисплеї для Ардуіно і як їх підключити

Мікроконтролери дозволяють зробити будь-які системи автоматизації і моніторингу. Але для взаємодії техніки і людини потрібні як пристрої введення – різні кнопки, важелі, потенціометри, так і пристрої виведення – світлові індикатори (лампочки), різні звукові сигналізатори (пищалки) і нарешті дисплеї. У цій статті ми розглянемо символьні дисплеї для Arduino, як їх підключити і змусити працювати.

види дисплеїв

Дисплеї можна розділити на:

  • Сегментні (такі, як на цифрових годинниках);

  • Алфавітно-цифрові;

  • Графічні.

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

Вони можуть бути як рідкокристалічними, так і світлодіодними. Алфавітно-цифрові дисплеї можна зустріти на старої побутової техніки, іграшках, промислової техніки та інше. Їх ще називають знакосінтезірующіх, текстовими, символьними. Складаються з набору великих пікселів. Можуть бути виконані по LCD, TFT і OLED-технології.

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

знакосінтезірующіе дисплеї

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

  • +1602;

  • 2002.

Де перші дві цифри – кількість символів в рядку, а друга пара – кількість рядків. Таким чином дисплей з назвою 1 602 може відображати одночасно 2 рядки по 16 символів.

За типом введення даних розрізняють дисплеї:

  • З паралельним введенням даних;

  • З введенням даних по протоколу I2C.

Паралельний введення даних передбачає передачу 8 або 4-бітних слів по 10 або 6 висновків відповідно (рис. Нижче – схема підключення для управління 4 бітами). Крім даних на дисплей подається харчування. Враховуйте це при проектуванні, в іншому випадку вам може не вистачити пинов плати Ардуіно.

Передача даних на дисплей за допомогою I2С займе 4 Піна вашої Arduino, 2 з яких харчування, а 2 – дані. Але докладніше розглянемо це питання трохи нижче.

Серед вітчизняних виробників можна виділити фірму МЕЛТ. Серед продукції, яка має цілий ряд різних дисплеїв. Наприклад, нижче зображений дисплей з маркуванням 20S4, за аналогією з попередньою розглянутої, це говорить нам про те, що він відображає 4 рядки по 20 знаків.

Він побудований на контролері КБ1013ВГ6, від ВАТ «АНГСТРЕМ», який аналогічний HD44780 фірми HITACHI і KS0066 фірми SAMSUNG. На яких побудовані переважна більшість китайських дисплеїв. До речі він, як і дисплеї на перерахованих чіпах підтримує стандартну бібліотеку паралельного управління Arduino IDE, але про неї пізніше.

Знакосінтезірующіе дисплеї бувають з підсвічуванням і без неї, також можуть відрізнятися кольором зображуваних символів. Яскравість підсвічування і контрастність зображення зазвичай регулюється. Нижче призведе приклад схеми з даташіта, на згаданий вище МЕЛТ.

Змінний резистор R і служить для регулювання яскравості.

підключення

Підключення будемо розглядати на дисплеї типу 1602. У першу чергу зверніть увагу на підписи висновків. Зустрічається два варіанти, нумерації. На двох малюнках нижче все нормально – від 1 до 16 виводу.


Відзначимо, що під VSS розуміється земля. В іншому призначення висновків ідентичні. Але часто можна зустріти і нестандартну нумерацію:

Що ви бачите? Контакти підписані тільки 1, 14 і 15. Причому в неправильній послідовності. В іншому – 15 і 16 контакт все також залишилися анодом і катодом підсвічування, а 1 і 2 – загальний контакт і плюс харчування. Будьте пильні і звертайте увагу при підключенні на цей факт!

Розберемо докладніше.

  • 1 – (Vss) земля або «-» харчування.

  • 2 – (Vcc) «+» харчування. Найчастіше це 5 вольт.

  • 3 – регулювання контрастності символів. Здійснюється через потенціометр, встановлений між «+» харчування і цим контактом. Чим вище напруга – тим менше яскравість і енергоспоживання.

  • 4 – (RS) Адресний сигнал. За наявності сигналу від Ардуіно на цьому вході контролер дисплея розуміє, на лінії даних сигнал команди (переміщення курсору, наприклад) або коду символу для відображення.

  • 5 – (E) дозволу доступу до даних. Коли тут логічна «1» – дисплей виконує команду або виводить символ.

  • 6-14 – через ці Піни забезпечується паралельний введення даних.

  • 15 – (BLA) анод підсвічування. Щоб вона засяяла на всю яскравість – сюди подають +5.

  • 16 – (BLC) катод підсвічування. Підключають до землі.

Один із прикладів підключення до Ардуіно в 4 битовом режимі ми розглянули вище. Тепер погляньте на схему підключення в 8 бітовому режимі управління. До речі ви могли помітити змінний резистор. Він і потрібен для регулювання яскравості підсвічування, як було сказано раніше.

Таким чином у вас виявляються зайнятими половина входів плати Arduino UNO. Звичайно якщо ви будете використовувати MEGA – це буде не настільки суттєвою проблемою, але все ж це не раціонально, особливо якщо ви збираєтеся підключати групу датчиків і клавіш управління.

Щоб вивільнити входи використовуйте конвертер I2C для LCD екрана (саме так він називається, і ви зможете знайти його в магазинах під такою назвою).

Увага:

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

Гребінка, зображена знизу просто припаюється до дисплея, а чотири контакти на торці плати – підключаються до пінам Arduino, також є третя група з двох контактів (на фото ззаду) – це включення підсвічування, моделі поставляються зі встановленою перемичкою.

Схема такого модуля виглядає наступним чином:

А ось так він виглядає припаяним безпосередньо до контактів дисплея. Більшість моделей продаються вже розпаяними.

Однак для його використання вам потрібно буде знайти в мережі бібліотеку LiquidCrystal_I2C її немає в стандартному наборі актуального на момент написання статті Arduino IDE.

Нагадаємо цоколевку плат Arduino UNO, за нумерацією контактів вона в принципі збігається і з Nano і деякими іншими (для збільшення натисніть на малюнок).

Для роботи з I2C потрібно сформувати 2 інформаційних сигналу – SDA і SCL, зверніть увагу в нижній правий кут малюнка. Ці висновки в Ардуіно суміщені з A4 і A5 аналоговими входами.

важливо:

Перепризначити їх ви на інші висновки не можете.

Тоді монтажна схема підключення матиме вигляд:

Погодьтеся, проводів набагато менше! Від Ардуіно до дисплея йдуть всього 4 дроти. А сигнальних Піна використано всього два!

Але просто підключити у вас нічого не вийде ви повинні знати адресу пристрою, для цього є ще одна група контактів, де адреса задається за допомогою перемичок. Це вказується в инициализирующей команді відповідної бібліотеки, про це далі.

програма

Природно нам потрібен якийсь скетч, який може показувати зображення на символьному дисплеї. Якщо ви хочете «безпосередньо» працювати з дисплеєм – доведеться вивчити даташіта і таблиці символів на кожне конкретне виріб. Але Ардуіно була створена для простого і швидкого прототипування електронних пристроїв. Тому ми підемо іншим шляхом і скористаємося благами цивілізації. Ми вже згадали, що в стандартному наборі бібліотек в Arduino IDE є готове рішення для роботи з LCD-дисплеями. Знайти його можна тут:

До речі після натискання рядок з оголошенням про підключення бібліотеки з’являється автоматично.

Також в Arduino IDE є кілька прикладів для роботи з дисплеєм. Вони відображають базові операції та функції.

Розглянемо найпростіший «Хелоу ворд». Приклад повністю збігається з тим, що є в стандартному наборі IDE, я лише переклав текст коментарів на російську мову. Зверніть увагу – це приклад роботи в 4-бітному режимі.

Робота з I2C практично аналогічна:

ВАЖЛИВО:

Зверніть увагу, що в цьому прикладі коду першою командою вказано кілька розмір дисплея, кількість рядків і символів, але і його I2C адреса. А саме – 0x27, що відповідає відсутнім перемичках. Взагалі це потрібно для того, щоб підключити на два сигнальних дроти кілька дисплеїв (8 штук).

Офіційну документацію до бібліотеки liquidcrystal з прикладами і поясненнями ви зможете знайти на офіційному сайті Arduino:

https://www.arduino.cc/en/Reference/LiquidCrystal?from=Tutorial.LCD8Bits

Підбірка відеоуроків по темі

Щоб вам не було складно освоїти навички роботи з дисплеєм ми зробили підбірку відеоуроків по цій темі.

висновок

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

Ще більше інформації про Ардуіно і особливості його використання в різних схемах дивіться в електронній книзі – Ардуіно для чайників. Ілюстроване практичне керівництво.

Зовсім недавно вийшов новий курс Максима Селіванова “Програмування дисплеїв Nextion”. Це “arduino” в світі дисплеїв з сенсорним екраном. Але, інформації по ньому дуже мало.

Що таке дисплеї Nextion? Якщо коротко, то ці дисплеї являють собою програмовані дисплеї з тачскріном і UART для створення самих різних інтерфейсів на екрані. Для програмування використовується дуже зручна і проста середовище розробки, яка дозволяє створювати навіть дуже складні інтерфейси для різної електроніки буквально за пару вечорів! А все команди передаються через інтерфейс UART на мікроконтролер або комп’ютер.

Тут є все що б почати працювати з дисплеями Nextion на новому рівні: Програмування дисплеїв NEXTION

Максим Селіванов – автор відеокурсів “Програмування мікроконтролерів для початківців”, “Програмування мікроконтролерів на мові С”, “Створення пристроїв на мікроконтролерах”. Докладний про нього і його відеокурси дивіться тут –

Олексій Бартош

Ссылка на основную публикацию