GPIO(범용 I/O) 핀은 개별적으로 제어할 수 있습니다. LED, 릴레이 및 기타 상태 저장 디바이스를 제어하는 데 유용합니다. 이 항목에서는 .NET 및 Raspberry Pi의 GPIO 핀을 사용하여 LED에 전원을 공급하고 반복적으로 깜박입니다.
필수 조건
- ARM 기반(ARMv7 이상) SBC(단일 보드 컴퓨터)
- 5mm LED
- 330 Ω 저항기
- 브레드보드
- 점퍼 케이블
- Raspberry Pi GPIO 브레이크아웃 보드(선택 사항/권장)
- .NET SDK 8 이상
비고
이 자습서는 대상 디바이스가 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 3.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,000ms 동안 정지합니다.
- 의 값을 전환합니다
ledOn
.
- GPIO 핀 18에 값을 씁니다.
-
using 선언은
앱을 빌드합니다. .NET CLI를 사용하는 경우 .NET CLI를 실행합니다
dotnet build
. Visual Studio에서 빌드하려면 Ctrl+ ShiftB+ 누릅니다.자체 포함 앱으로 SBC에 앱을 배포합니다. 자세한 내용은 Raspberry Pi에 .NET 앱 배포를 참조하세요. 를 사용하여 실행 파일 실행 권한을 부여해야 합니다
chmod +x
.배포 디렉터리로 전환하고 실행 파일을 실행하여 Raspberry Pi에서 앱을 실행합니다.
./BlinkTutorial
LED가 1초마다 꺼졌다 켜집니다.
Ctrl+ C를 눌러 프로그램을 종료합니다.
축하합니다! GPIO를 사용하여 LED를 깜박였습니다.
소스 코드 가져오기
이 자습서의 원본은 GitHub에서 사용할 수 있습니다.
다음 단계
.NET