цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Как подключить несколько дисплеев к Arduino с помощью мультиплексирования

Как подключить несколько дисплеев к Arduino с помощью мультиплексирования

Автор: Mike(admin) от 19-02-2018, 17:45

В некоторых проектах на Arduino бывает необходимо отображать довольно большое количество информации, а покупать широкоформатные дисплеи довольно затратно, особенно при наличии нескольких недорогих ЖК-дисплеев 16x2.


Как подключить несколько дисплеев к Arduino с помощью мультиплексирования

В таком случае можно просто подключить эти несколько дисплеев к одной плате Arduino с помощью техники мультиплексирования. Как это сделать, будет рассмотрено в данном материале.


Дело в том, что ЖК-дисплеи для Arduino активируются импульсным сигналом, подводимого к линии выбора дисплея. В дополнение к стандартному вводу данных имеется также входной терминал частоты передачи данных дисплея. Благодаря этому можно управлять несколькими дисплеями. И в данном случае мы сделаем дисплей 16 × 8, задействовав четыре дисплея 16 × 2 и используя общие линии данных. Наиболее интересной частью этого проекта является то, что эти дисплеи совместно используют четыре линии передачи данных и при этом отображают разные данные. Схема мультиплексирования ЖК-дисплеев показана на рисунке ниже. Эта схема мультиплексирования LCD принимает любое 4-битное число и отображает букву.


Схема подключения ЖК-дисплеев к одной плате Arduino Uno

Режим 4-битных данных достигается путем подключения старших линий ЖК-дисплеев (D4, D5, D6 и D7) к цифровым линиям платы Arduino Uno (контакты D7, D6, D5 и D4) соответственно, как показано на принципиальной схеме. При этом контакты RS и EN LCD-экранов подключены к разным выводам платы Arduino. Вы также можете использовать только один ЖК-дисплей, отключив вывод RS и EN других дисплеев. Вывод RW всех дисплеев заземлен для выполнения операции записи.


Ниже приведен скетч (код) для Arduino, позволяющий отображать данные на четырех дисплеях, которые в коде именуются как lcdA, lcdB, lcdC и lcdD.


LiquidCrystal lcdA(13,12,7,6,5,4); // определение линий для первого дисплея
LiquidCrystal lcdB(11,10,7,6,5,4); // определение линий для второго дисплея
LiquidCrystal lcdC(9,8,7,6,5,4);   // определение линий для третьего дисплея
LiquidCrystal lcdD(3,2,7,6,5,4);   // определение линий для четвертого дисплея
 
void setup()
{
   lcdA.begin(16,2); // инициализация первого дисплея
   lcdB.begin(16,2); // инициализация второго дисплея
   lcdC.begin(16,2); // инициализация третьего дисплея
   lcdD.begin(16,2); // инициализация четвертого дисплея
}
 
void loop()
{   
    lcdA.setCursor(0,0);
    lcdA.print("Several 16x2 LCD Using");
    delay(100);
 
    lcdB.setCursor(0,0);
    lcdB.print("  Test mode ");
    delay(100);
 
    lcdC.setCursor(0,0);
    lcdC.print("Visit Website");
    delay(100);
 
    lcdD.setCursor(0,0);
    lcdD.print("Digitrode.ru");
    delay(100);
 
    lcdA.setCursor(0,1);
    lcdA.print("More Arduino");
    delay(100);
 
    lcdB.setCursor(0,1);
    lcdB.print("Projects");
    delay(100);
 
    lcdC.setCursor(0,1);
    lcdC.print("At Digitrode");
    delay(100);
    
    lcdD.setCursor(0,1);
    lcdD.print("Thank You");
    delay(100);
}



Теги: Arduino, дисплеи




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий