카테고리 없음

아두이노 UNO를 사용한 멀티플렉싱 4 LCD 디스플레이

지구빵집 2024. 2. 27. 07:55
반응형

 

아두이노 UNO를 사용한 멀티플렉싱 4 LCD 디스플레이 

 

액정 디스플레이(LCD)는 선택한 디스플레이 세그먼트에서 AC 신호에 의해 활성화되며, 이 기능은 LCD 모듈 자체에 포함되어 있습니다. 표준 데이터 입력 외에도 디스플레이 주파수 입력 단자도 있습니다.

 

"아두이노 UNO를 사용한 다중화 4 LCD 디스플레이" 회로는 대부분의 LCD 디스플레이를 구동할 수 있습니다. 이 회로는 자동 대시 보드 디스플레이, 패널 미터, 벽 및 탁상 시계, 계산기에 사용됩니다. 이 기사에서는 일반적인 데이터 라인을 사용하여 4개의 16×2 디스플레이를 사용하여 16×8 디스플레이를 만드는 방법을 보여 드리겠습니다. 이 프로젝트의 가장 흥미로운 부분은 이러한 디스플레이가 4개의 데이터 라인을 공통으로 공유하고 각 LCD에 다른 데이터를 표시한다는 것입니다.

 

아두이노 UNO를 이용한 다중화 4 LCD 디스플레이의 회로 설명:

 

LCD 멀티플렉싱의 회로는 그림 1에 나와 있습니다. 이 LCD 멀티플렉싱 회로는 모든 4비트 숫자를 수용하여 문자를 표시합니다. 멀티플렉싱 디스플레이의 전체 회로는 아두이노 우노 보드, 4개의 LCD 디스플레이 모듈, 4개의 가변 및 고정 저항을 중심으로 구성됩니다. 

 

 

 

 

 

4비트 데이터 모드에서 아두이노 우노 보드와 4개의 LCD 인터페이스. 이 모드는 회로도와 같이 LCD의 상위 비트 데이터 라인(D4, D5, D6, D7 핀)을 아두이노 우노 보드의 디지털 핀(D7, D6, D5, D4 핀)에 각각 연결하여 구현합니다. 이 4개의 LCD 상위 비트 데이터 라인(D4~D7)은 아두이노 우노 핀을 공통으로 공유하지만, LCD의 RS 핀과 EN 핀은 아두이노 우노 보드의 다른 핀에 연결됩니다.

 

다른 모든 디스플레이의 RS핀과 EN핀을 분리하여 하나의 LCD만 사용할 수도 있습니다. 모든 LCD의 RW 핀은 쓰기 동작을 수행하기 위해 접지되어 있습니다.

 

아두이노 유니노를 이용한 멀티플렉싱 4 LCD 디스플레이 회로 작동하기

 

이 프로젝트의 작동 기능은 두 가지로 요약할 수 있습니다.

 

먼저 LCD에 사용되는 모든 핀을 정의합니다. 즉, 4개의 데이터 라인은 모든 LCD에 공통으로 사용되며 각 LCD의 RS와 EN 핀은 아두이노 우노 보드의 다른 핀에 연결됩니다.

 

아두이노 우노의 데이터 형식은 아스키 형식으로 LCD에 전송됩니다. 데이터 신호가 전송되면 해당 LCD의 RS 핀이 활성화(High가 됨)됩니다. 따라서 데이터를 표시하기 전에 반드시 해당 LCD 디스플레이를 호출해야 합니다.

 

이 시나리오를 이해하기 위해 예를 들어보겠습니다.

 

첫 번째 LCD에 Hello, 두 번째 LCD에 BestEngineering, 세 번째 LCD에 Projects, 네 번째 LCD에 Arduino를 표시하고 싶을 때입니다. 여러분이 해야 할 일은 적절한 LCD에 적합한 구문을 호출하는 것뿐입니다. 

 

 

lcdA.print(“Hello”);

lcdB.print(“BestEngineering”);

lcdC.print(“Projects”);

lcdD.print(“Arduino”);

 

 

소프트웨어 코드:

 

LCD 멀티플렉싱의 소프트웨어 코드는 아두이노 프로그래밍 언어로 작성되었으며 아두이노 IDE를 사용하여 컴파일되었습니다. 아래 링크에서 소스 코드를 직접 다운로드하여 시스템에서 사용할 수 있습니다.

 

LCD 핀의 정의 

 

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);

 

위의 코드에서 볼 수 있듯이, LCD의 모든 데이터 라인이 아두이노 핀에 공통으로 연결되는 개별 핀에는 RS와 EN 핀만 연결되어 있습니다. 

 

#include <LiquidCrystal.h> 

LiquidCrystal lcdA(13,12,7,6,5,4); //pin definition for LCD 1
LiquidCrystal lcdB(11,10,7,6,5,4); //pin definition for LCD 2
LiquidCrystal lcdC(9,8,7,6,5,4);   //pin definition for LCD 3
LiquidCrystal lcdD(3,2,7,6,5,4);   //pin definition for LCD 4

void setup()
{
   lcdA.begin(16,2); //Initializes of LCD 1
   lcdB.begin(16,2); //Initializes of LCD 2
   lcdC.begin(16,2); //Initializes of LCD 3
   lcdD.begin(16,2); //Initializes of LCD 4
}

void loop()
{   
    lcdA.setCursor(0,0);
    lcdA.print("3 16x2 LCD Using");
    delay(100);

    lcdB.setCursor(0,0);
    lcdB.print("  Designed By-> ");
    delay(100);

    lcdC.setCursor(0,0);
    lcdC.print("Visit Website");
    delay(100);

    lcdD.setCursor(0,0);
    lcdD.print("BestEngineering");
    delay(100);

    lcdA.setCursor(0,1);
    lcdA.print("Single Arduino");
    delay(100);

    lcdB.setCursor(0,1);
    lcdB.print("Krishna Keshav");
    delay(100);

    lcdC.setCursor(0,1);
    lcdC.print("and Subscribe");
    delay(100);
    
    lcdD.setCursor(0,1);
    lcdD.print("Projects");
    delay(100);
}

 

 

 

참고 페이지

1. 설명 사이트

2. 유튜브

3. 인스트럭터블 설명 

 

 

 

 

 

반응형