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 서버 설정을 참조하세요.
하드웨어 준비
하드웨어 구성 요소를 사용하여 다음 다이어그램에 표시된 대로 회로를 빌드합니다.
위 이미지는 다음 연결을 보여 줍니다.
- GPIO 18-LED 양극(더 김, 양극 유도)
- LED 음극(더 짧음, 음극 유도)-330Ω 레지스터(한쪽 끝)
- 330Ω 레지스터(다른 끝)-접지
필요한 경우 다음 핀 배치도 다이어그램을 참조하세요.
Raspberry Pi Foundation이 제공한 이미지.
팁
GPIO 헤더에 대한 연결을 간소화하기 위해 브레드보드와 함께 GPIO 브레이크아웃 보드를 사용하는 것이 좋습니다.
앱 만들기
선호하는 개발 환경에서 다음 단계를 완료합니다.
.NET CLI 또는 Visual Studio 중 하나를 사용하여 새 .NET 콘솔 앱을 만듭니다. 이름을 BlinkTutorial로 지정합니다.
dotnet new console -o BlinkTutorial cd BlinkTutorial
System.Device.Gpio 패키지를 프로젝트에 추가합니다. 프로젝트 디렉터리 또는 Visual Studio에서 .NET CLI를 사용합니다.
dotnet add package System.Device.Gpio --version 2.2.0-*
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
루프는 무기한으로 실행됩니다. 반복될 때마다:- GPIO 핀 18에 값을 씁니다.
ledOn
이 true이면PinValue.High
(켜기)를 씁니다. 그렇지 않으면PinValue.Low
를 씁니다. - 1,000밀리초 동안 일시 중단합니다.
-
ledOn
값을 토글합니다.
- GPIO 핀 18에 값을 씁니다.
-
using 선언은
앱을 빌드합니다. .NET CLI를 사용하는 경우를
dotnet build
를 실행합니다. Visual Studio에서 빌드하려면 Ctrl+Shift+B를 누릅니다.SBC에 자체 포함 앱으로 앱을 배포합니다. 자세한 내용은 Raspberry Pi에 .NET 앱 배포를 참조하세요.
chmod +x
를 사용하여 실행 파일 ‘실행’ 권한을 부여해야 합니다.배포 디렉터리로 전환하고 실행 파일을 실행하여 Raspberry Pi에서 앱을 실행합니다.
./BlinkTutorial
LED는 1초마다 깜박입니다.
Ctrl+C를 눌러 프로그램을 종료합니다.
축하합니다! GPIO를 사용하여 LED가 깜박이게 했습니다.
소스 코드 가져오기
이 자습서의 소스는 GitHub에서 제공됩니다.
다음 단계
.NET