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

 


Как подключить к Arduino два ЖК-дисплея

Автор: Mike(admin) от 21-11-2021, 23:55

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


Как подключить к Arduino два ЖК-дисплея

В данном случае мы реализовали проект так, чтобы текст, который будет выведен на один ЖК-дисплей, будет автоматически переведен на другой ЖК-дисплей. Общее количество контактов, которые необходимо подключить к ЖК-дисплею 16x2 от Arduino Nano, является 12.


Когда мы подключаем два ЖК-дисплея с общим количеством, то это количество будет систавлять 24. В рамках ЖК-дисплея 16x2 6 выводов используется для передачи данных. В нашем случае мы только подключили 14 линий ЖК-дисплея с Arduino Nano, в котором 12 контактов используется для передачи данных.


Принципиальная схема подключения показана на следующем рисунке.


Как подключить к Arduino два ЖК-дисплея

Код программы Arduino для управления двумя LCD-дисплеями приведен далее.



#include <LiquidCrystal.h>
LiquidCrystal lcd2(12, 11, 1, 2, 3, 4);
LiquidCrystal lcd1(0, 10, 8, 7, 6, 5);

char * LargeText = "Connecting 2 - 16*2 LCD with Arduino";
int iLineNumber = 1;                                                                
int iCursor = 0;

void setup() 
{
  
  lcd1.begin(16, 2);                                                          
  lcd2.begin(16, 2);
  lcd1.clear();
  lcd2.clear();
  
}
void loop() 
{
  
  UpdateLCDDisplay();                                                              
  delay(160);                                                                      
  lcd1.clear();
  lcd2.clear();
  delay(60);
  
}

void UpdateLCDDisplay()
{
  int iLenOfLargeText = strlen(LargeText);                                         
  if (iCursor == (iLenOfLargeText - 1) )                                            
{
   iCursor = 0;
}
  lcd1.setCursor(0,iLineNumber);
  lcd2.setCursor(0,iLineNumber);
  if(iCursor < iLenOfLargeText - 32)                                             
{
  for (int iChar = iCursor; iChar < iCursor + 16 ; iChar++)
{
  lcd1.print(LargeText[iChar]);
}
  for (int iChar = iCursor + 16 ; iChar < iCursor + 32 ; iChar++)
{
  lcd2.print(LargeText[iChar]);
}
}
  else
{
  for (int iChar = iCursor; iChar < (iLenOfLargeText - 1) ; iChar++)           
{
  if(16 > (iChar - iCursor))
{
  lcd1.print(LargeText[iChar]);
}
  else
{
  lcd2.print(LargeText[iChar]);
}
}
  for (int iChar = 0; iChar <= 32 - (iLenOfLargeText - iCursor); iChar++)       
{
  if(16 > (32 - (iLenOfLargeText - iCursor)))
{
  lcd2.print(LargeText[iChar]);
}
  else
{
  if( ((32 - (iLenOfLargeText - iCursor)) - 16) >=  iChar)
{
  lcd1.print(LargeText[iChar]);
}
  else
{
  lcd2.print(LargeText[iChar]);
}
}  
}
}
  iCursor++;
}



© digitrode.ru


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




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

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

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