LED 깜박이기

GPIO(범용 I/O) 핀은 개별적으로 제어할 수 있습니다. 이는 LED, 릴레이, 기타 상태 저장 디바이스를 제어하는 데 유용합니다. 이 항목에서는 .NET 및 Raspberry Pi의 GPIO 핀을 사용하여 LED를 켜고 반복적으로 깜박이게 합니다.

필수 구성 요소

  • ARM 기반(ARMv7 이상) SBC(단일 보드 컴퓨터)
  • 5mm LED
  • 330Ω 레지스터
  • 브레드보드
  • 점퍼 와이어
  • Raspberry Pi GPIO 브레이크아웃 보드(선택 사항/권장)
  • .NET SDK 7 이상

참고

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

디바이스에서 SSH가 사용하도록 설정되어 있는지 확인합니다. Raspberry Pi의 경우 Raspberry Pi 설명서에서 SSH 서버 설정을 참조하세요.

하드웨어 준비

하드웨어 구성 요소를 사용하여 다음 다이어그램에 표시된 대로 회로를 빌드합니다.

LED 및 레지스터가 있는 회로를 보여 주는 Fritzing 다이어그램

위 이미지는 다음 연결을 보여 줍니다.

  • GPIO 18-LED 양극(더 김, 양극 유도)
  • LED 음극(더 짧음, 음극 유도)-330Ω 레지스터(한쪽 끝)
  • 330Ω 레지스터(다른 끝)-접지

필요한 경우 다음 핀 배치도 다이어그램을 참조하세요.

Raspberry Pi GPIO 헤더의 핀 배치도를 보여 주는 다이어그램. Raspberry Pi Foundation이 제공한 이미지
Raspberry Pi Foundation이 제공한 이미지.

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

앱 만들기

선호하는 개발 환경에서 다음 단계를 완료합니다.

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

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

    dotnet add package System.Device.Gpio --version 2.2.0-*
    
  3. Program.cs의 내용을 다음 코드로 바꿉니다.

    using System;
    using System.Device.Gpio;
    using System.Threading;
    
    Console.WriteLine("Blinking LED. Press Ctrl+C to end.");
    int pin = 18;
    using var controller = new GpioController();
    controller.OpenPin(pin, PinMode.Output);
    bool ledOn = true;
    while (true)
    {
        controller.Write(pin, ((ledOn) ? PinValue.High : PinValue.Low));
        Thread.Sleep(1000);
        ledOn = !ledOn;
    }
    

    위의 코드에서

    • using 선언GpioController 인스턴스를 만듭니다. using 선언은 개체가 삭제되고 하드웨어 리소스가 제대로 해제되었는지 확인합니다.
    • GPIO 핀 18이 출력을 위해 열림
    • while 루프는 무기한으로 실행됩니다. 반복될 때마다:
      1. GPIO 핀 18에 값을 씁니다. ledOn이 true이면 PinValue.High(켜기)를 씁니다. 그렇지 않으면 PinValue.Low를 씁니다.
      2. 1,000밀리초 동안 일시 중단합니다.
      3. ledOn 값을 토글합니다.
  4. 앱을 빌드합니다. .NET CLI를 사용하는 경우를 dotnet build를 실행합니다. Visual Studio에서 빌드하려면 Ctrl+Shift+B를 누릅니다.

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

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

    ./BlinkTutorial
    

    LED는 1초마다 깜박입니다.

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

축하합니다! GPIO를 사용하여 LED가 깜박이게 했습니다.

소스 코드 가져오기

이 자습서의 소스는 GitHub에서 제공됩니다.

다음 단계