다음을 통해 공유


LCD에 텍스트 표시

LCD 문자 디스플레이는 외부 모니터 없이 정보를 표시하는 데 유용합니다. 일반적인 LCD 문자 디스플레이는 GPIO 핀에 직접 연결할 수 있지만 이러한 접근 방식을 사용하려면 최대 10개의 GPIO 핀을 사용해야 합니다. 디바이스 조합에 연결해야 하는 시나리오의 경우 GPIO 헤더의 상당 부분을 문자 표시에 사용하는 것은 종종 실용적이지 않습니다.

많은 제조업체에서 통합 GPIO 확장기가 있는 20x4 LCD 문자 디스플레이를 판매합니다. 문자 표시는 GPIO 확장자에 직접 연결한 다음, Inter-Integrated 회로(I2C) 직렬 프로토콜을 통해 Raspberry Pi에 연결합니다.

이 항목에서는 .NET을 사용하여I2C GPIO 확장기를 사용하여 LCD 문자 디스플레이에 텍스트를 표시합니다.

필수 조건

  • ARM 기반(ARMv7 이상) SBC(단일 보드 컴퓨터)
  • I²C 인터페이스가 있는 20x4 문자 표시용 LCD 디스플레이
  • 점퍼 케이블
  • 브레드보드(선택 사항/권장)
  • Raspberry Pi GPIO 브레이크아웃 보드(선택 사항/권장)
  • .NET SDK 8 이상

비고

이 자습서는 대상 디바이스가 Raspberry Pi라고 가정하여 작성되었습니다. 그러나 이 자습서는 Orange Pi, ODROID 등 .NET을 지원하는 Linux 기반 SBC에 사용할 수 있습니다.

비고

LCD 문자 디스플레이의 많은 제조 업체가 있습니다. 대부분의 디자인은 동일하며 제조업체는 기능에 차이를 두면 안 됩니다. 참고로 이 자습서는 SunFounder LCD2004 사용하여 개발되었습니다.

SBC를 준비하십시오

SBC가 다음 서비스를 지원하도록 구성되어 있는지 확인합니다.

  • SSH
  • I2C

많은 디바이스의 경우 추가 구성이 필요하지 않습니다. Raspberry Pi에서는 raspi-config 명령을 사용하십시오. 자세한 raspi-config내용은 Raspberry Pi 설명서를 참조하세요.

하드웨어 준비

점퍼 와이어를 사용하여 I2C GPIO 확장기에서 4개의 핀을 다음과 같이 Raspberry Pi에 연결합니다.

  • GND를 접지로 연결
  • VCC에서 5V로 변환
  • SDA에서 SDA로(GPIO 2)
  • SCL에서 SCL로(GPIO 3)

필요에 따라 다음 수치를 참조하세요.

I2C 인터페이스(디스플레이 뒷면) Raspberry Pi GPIO
I2C GPIO 확장기를 보여 주는 문자 표시의 뒷면 이미지입니다. Raspberry Pi GPIO 헤더의 핀아웃을 보여 주는 다이어그램 이미지 제공: Raspberry Pi Foundation.
이미지 제공: Raspberry Pi Foundation.

팁 (조언)

GPIO 헤더에 대한 연결을 간소화하려면 브레드보드와 함께 GPIO 브레이크아웃 보드를 사용하는 것이 좋습니다.

앱 만들기

기본 설정 개발 환경에서 다음 단계를 완료합니다.

  1. .NET CLI 또는 Visual Studio를 사용하여 새 .NET 콘솔 앱을 만듭니다. 이름을 LcdTutorial로 지정합니다.

    dotnet new console -o LcdTutorial
    cd LcdTutorial
    
  2. 프로젝트에 Iot.Device.Bindings 패키지를 추가합니다. 프로젝트 디렉터리 또는 Visual Studio에서 .NET CLI를 사용합니다.

    dotnet add package Iot.Device.Bindings --version 3.2.0-*
    
  3. Program.cs의 내용을 다음 코드로 바꿉니다.

    using System;
    using System.Device.Gpio;
    using System.Device.I2c;
    using System.Threading;
    using Iot.Device.CharacterLcd;
    using Iot.Device.Pcx857x;
    
    Console.WriteLine("Displaying current time. Press Ctrl+C to end.");
    
    using I2cDevice i2c = I2cDevice.Create(new I2cConnectionSettings(1, 0x27));
    using var driver = new Pcf8574(i2c);
    using var lcd = new Lcd2004(registerSelectPin: 0, 
                            enablePin: 2, 
                            dataPins: new int[] { 4, 5, 6, 7 }, 
                            backlightPin: 3, 
                            backlightBrightness: 0.1f, 
                            readWritePin: 1, 
                            controller: new GpioController(PinNumberingScheme.Logical, driver));
    int currentLine = 0;
    
    while (true)
    {
        lcd.Clear();
        lcd.SetCursorPosition(0,currentLine);
        lcd.Write(DateTime.Now.ToShortTimeString());
        currentLine = (currentLine == 3) ? 0 : currentLine + 1; 
        Thread.Sleep(1000);
    }
    

    앞의 코드에서 다음을 수행합니다.

    • using 선언I2cDevice을 호출하고, I2cDevice.CreateI2cConnectionSettings 매개 변수를 가진 새로운 busId을 전달하여 deviceAddress의 인스턴스를 생성합니다. 이 I2cDevice는 I2C 버스를 나타냅니다. 선언은 using 개체가 삭제되고 하드웨어 리소스가 제대로 해제되도록 합니다.

      경고

      GPIO 확장기 디바이스 주소는 제조업체에서 사용하는 칩에 따라 달라집니다. PCF8574를 장착한 GPIO 확장기는 주소 0x27을 사용하고, PCF8574A 칩을 사용하는 경우에는 0x3F을 사용합니다. LCD의 설명서를 참조하세요.

    • 또 다른 using 선언은 인스턴스 Pcf8574 를 만들고 생성자에 전달합니다 I2cDevice . 이 인스턴스는 GPIO 확장기를 나타냅니다.

    • 또 다른 using 선언은 표시를 나타내는 인스턴스 Lcd2004 를 만듭니다. GPIO 확장자와 통신하는 데 사용할 설정을 설명하는 여러 매개 변수가 생성자에 전달됩니다. GPIO 확장기가 매개 변수로 controller 전달됩니다.

    • 루프는 while 무기한 실행됩니다. 각 반복마다:

      1. 디스플레이를 지웁니다.
      2. 커서 위치를 현재 줄의 첫 번째 위치로 설정합니다.
      3. 현재 커서 위치의 디스플레이에 현재 시간을 씁니다.
      4. 현재 줄 카운터를 반복적으로 증가시킵니다.
      5. 1,000ms 동안 정지합니다.
  4. 앱을 빌드합니다. .NET CLI를 사용하는 경우 .NET CLI를 실행합니다 dotnet build. Visual Studio에서 빌드하려면 Ctrl+ ShiftB+ 누릅니다.

  5. 자체 포함 앱으로 SBC에 앱을 배포합니다. 자세한 내용은 Raspberry Pi에 .NET 앱 배포를 참조하세요. 를 사용하여 실행 파일 실행 권한을 부여해야 합니다 chmod +x.

  6. 배포 디렉터리로 전환하고 실행 파일을 실행하여 Raspberry Pi에서 앱을 실행합니다.

    ./LcdTutorial
    

    각 줄에 현재 시간이 표시됨에 따라 LCD 문자 표시를 관찰합니다.

    팁 (조언)

    디스플레이가 켜져 있지만 텍스트가 표시되지 않는 경우 디스플레이 뒷면에 있는 대비 다이얼을 조정해 보세요.

  7. Ctrl+ C를 눌러 프로그램을 종료합니다.

축하합니다! I2C 및 GPIO 확장기를 사용하여 LCD에 텍스트를 표시했습니다.

소스 코드 가져오기

이 자습서의 원본은 GitHub에서 사용할 수 있습니다.

다음 단계