Raspberry Pi 프로젝트에 버튼을 추가하는 2가지 방법

Raspberry Pi 프로젝트에 버튼을 추가하는 2가지 방법

Raspberry Pi에서 GPIO 핀을 사용하는 방법을 배우면 가능성의 세계가 열립니다. 초보자 프로젝트를 통해 배운 기본 원칙은 DIY 전자 제품과 프로그래밍 모두에 대한 유용한 지식으로 가는 길을 열어줍니다.





이 튜토리얼에서는 Raspberry Pi 프로젝트에 버튼을 추가하는 두 가지 방법을 보여줍니다. 버튼은 LED를 제어하는 ​​데 사용됩니다. 서면 지침은 비디오 아래에 있습니다.





필요할 것이예요

시작하려면 다음 구성 요소가 있는지 확인하십시오.





  • 1 x Raspberry Pi(이 튜토리얼에서는 모델 3B가 사용됨)
  • 1 x 푸시 버튼
  • 1 x LED
  • 1 x 220 Ohm Resistor(값이 높을수록 좋고 LED가 더 어두워짐)
  • 1 x 브레드보드
  • 전선 연결

수집되면 다음과 같은 구성 요소가 있어야 합니다.

Raspbian 운영 체제가 설치된 SD 카드도 필요합니다. 이를 수행하는 가장 빠른 방법은 NOOBS(New Out Of The Box Software) 이미지를 사용하는 것입니다. 이 작업을 수행하는 방법에 대한 지침은 다음 비디오에서 확인할 수 있습니다.



회로 설정

Pi의 GPIO 핀을 사용하여 회로를 만들고, 익숙하지 않은 경우 Raspberry Pi GPIO 핀 가이드 도움이 될 것입니다. 여기의 회로는 이전의 회로와 거의 동일합니다. 라즈베리파이 LED 프로젝트 , 오늘 사용할 버튼이 추가되었습니다.

이 다이어그램에 따라 회로를 설정하십시오.





  • NS 5v 그리고 접지 핀은 브레드보드의 전원 레일에 연결됩니다.
  • 핀 12(GPIO 18) LED의 양극 다리에 연결합니다.
  • 한쪽 다리는 저항기 LED의 음극 다리에 부착되고 다른 다리는 브레드보드의 접지 레일에 부착됩니다.
  • 핀 16(GPIO 23) 버튼의 한쪽에 부착되고 다른 쪽은 브레드보드의 접지 레일에 부착됩니다.

설정이 완료되면 다음과 같이 표시됩니다.

회로가 올바른지 확인하고 Raspberry Pi의 전원을 켭니다.





방법 1: RPi.GPIO 라이브러리

Pi가 부팅되면 메뉴로 이동하여 프로그래밍> 토니 파이썬 IDE . 새 Python 스크립트가 열립니다. Python을 완전히 처음 접하는 경우 초보자를 위한 훌륭한 언어이며 이 튜토리얼을 마친 후에 Python에 대해 더 많이 배울 수 있는 좋은 장소가 많이 있습니다!

RPi.GPIO 라이브러리를 가져오고 보드 모드를 설정하여 시작합니다.

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)

이제 LED 및 버튼 핀 번호에 대한 변수를 선언합니다.

ledPin = 12
buttonPin = 16

보드 모드가 다음으로 설정되어 있으므로 판자 우리는 GPIO 번호 대신 핀 번호를 사용하고 있습니다. 이것이 혼란스럽다면 라즈베리 파이 핀아웃 차트가 이를 해결하는 데 도움이 될 수 있습니다.

버튼 설정

GPIO 핀을 설정할 차례입니다. 풀업 저항으로 LED 핀을 출력으로, 버튼 핀을 입력으로 설정합니다.

GPIO.setup(ledPin, GPIO.OUT)
GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

GPIO.IN 뒤의 ​​텍스트는 내부 풀업 저항 라즈베리 파이의. 버튼에서 깨끗한 판독값을 얻으려면 이것을 활성화해야 합니다. 버튼이 접지 핀으로 이동하기 때문에 입력 핀을 누를 때까지 HIGH를 유지하기 위해 풀업 저항이 필요합니다.

계속 진행하기 전에 풀업 및 풀다운 저항을 살펴보겠습니다.

휴식 시간: 풀업/풀다운 저항

GPIO 핀을 입력으로 구성하면 해당 핀을 읽어 상태를 결정합니다. 이 회로에서는 핀이 높은 또는 낮은 버튼을 눌렀을 때 LED를 트리거합니다. 핀이 가질 수 있는 유일한 상태라면 간단하겠지만 불행히도 세 번째 상태가 있습니다. 떠 있는 .

플로팅 핀은 높음과 낮음 사이의 값을 가지므로 입력이 예기치 않게 작동합니다. 풀업/풀다운 저항이 이를 해결합니다.

위 이미지는 버튼과 라즈베리파이를 단순화한 그림입니다. GPIO 핀은 버튼을 통해 접지에 연결됩니다. 내부 풀업 저항은 GPIO 핀을 내부 Pi 전원 공급 장치에 연결합니다. 이 전류가 흐르고 핀은 안전하게 HIGH로 풀업됩니다.

버튼을 누르면 GPIO 핀이 접지 핀에 직접 연결되고 버튼이 로우로 읽힙니다.

풀다운 저항은 스위치가 전원 핀에 연결될 때 사용됩니다. 이번에는 내부 저항이 GPIO 핀을 접지에 연결하고 버튼을 누를 때까지 LOW를 유지합니다.

풀업 및 풀다운 저항 이론은 언뜻 보기에는 혼란스럽지만 마이크로컨트롤러로 작업할 때 알아야 할 중요한 지식입니다. 지금은 잘 이해하지 못하더라도 걱정하지 마십시오!

중단한 곳에서 계속합시다.

프로그램 루프

다음으로 프로그램 루프를 설정합니다.

while True:
buttonState = GPIO.input(buttonPin)
if buttonState == False:
GPIO.output(ledPin, GPIO.HIGH)
else:
GPIO.output(ledPin, GPIO.LOW)

NS 참인 동안 루프는 프로그램을 종료할 때까지 내부의 코드를 계속 실행합니다. 루프할 때마다 업데이트됩니다. 버튼 상태 에서 입력을 읽음으로써 버튼핀 . 버튼을 누르지 않고 있는 동안에는 높은 .

버튼을 한번 누르면, 버튼 상태 된다 낮은 . 이것은 트리거 if 문 , 부터 거짓 와 같다 낮은 , LED가 켜집니다. NS 또 다른 이 문은 buttonPin이 False가 아닐 때마다 LED를 끕니다.

스크립트 저장 및 실행

클릭하여 스크립트 저장 파일 > 다른 이름으로 저장 및 파일 이름을 선택합니다. 녹색을 클릭하여 스케치를 실행할 수 있습니다. 놀다 버튼을 클릭하십시오.

이제 버튼을 누르면 LED가 켜집니다! 빨간색을 눌러 중지 프로그램을 중지하려면 언제든지 버튼

문제가 있는 경우 코드와 회로 설정에 오류가 없는지 철저히 확인하고 다시 시도하십시오.

방법 2: GPIO 제로 라이브러리

RPi.GPIO 라이브러리는 환상적이지만 블록에 새로운 아이가 있습니다. GPIO 제로 라이브러리는 Raspberry Pi 커뮤니티 관리자 Ben Nuttall이 만들었습니다. 코드를 더 간단하고 읽고 쓰기 쉽게 만들려는 의도로.

새 라이브러리를 테스트하려면 새 Thonny 파일을 열고 라이브러리를 가져옵니다.

from gpiozero import LED, Button
from signal import pause

전체 라이브러리를 가져오지 않았음을 알 수 있습니다. LED와 버튼만 사용하기 때문에 스크립트에서 해당 모듈만 필요합니다. 우리는 또한 수입 정지시키다 이벤트 관리를 위한 Python 라이브러리인 신호 라이브러리에서.

GPIO Zero를 사용하면 핀 설정이 훨씬 쉽습니다.

led = LED(18)
button = Button(23)

GPIO Zero 라이브러리에는 LED 및 버튼용 모듈이 있으므로 이전과 같이 입력 및 출력을 설정할 필요가 없습니다. 핀은 변경되지 않았지만 여기의 숫자는 위와 다릅니다. GPIO Zero는 GPIO 핀 번호(Broadcom 또는 BCM 번호라고도 함)만 사용하기 때문입니다.

iPhone에서 카메라 설정을 변경하는 방법

나머지 스크립트는 단 세 줄입니다.

button.when_pressed = led.on
button.when_released = led.off
pause()

NS 정지시키다() 여기에서 호출하면 스크립트가 맨 아래에 도달할 때 종료되는 것을 막습니다. 두 개의 버튼 이벤트는 버튼을 눌렀다가 놓을 때마다 트리거됩니다. 스크립트를 저장하고 실행하면 이전과 동일한 결과를 볼 수 있습니다!

Raspberry Pi에 버튼을 추가하는 두 가지 방법

버튼을 설정하는 두 가지 방법 중 GPIO Zero 방식이 가장 쉬운 것 같습니다. 여전히 RPi.GPIO 라이브러리에 대해 배울 가치가 있습니다. 대부분의 초보자 라즈베리 파이 프로젝트 사용해. 이 프로젝트는 간단하지만 지식은 여러 가지에 사용될 수 있습니다.

GPIO 핀을 사용하는 것은 자신의 장치를 배우고 발명하는 좋은 방법이지만 Pi로 할 수 있는 모든 것과는 거리가 멉니다. Raspberry Pi에 대한 비공식 가이드에는 직접 시도해 볼 수 있는 창의적인 아이디어와 튜토리얼이 가득합니다! 이와 같은 다른 튜토리얼을 보려면 다음을 확인하십시오. Wi-Fi 연결 버튼을 만드는 방법 .

공유하다 공유하다 트위터 이메일 VirtualBox Linux 시스템을 강화하기 위한 5가지 팁

가상 머신이 제공하는 열악한 성능에 지쳤습니까? VirtualBox 성능을 높이려면 다음을 수행해야 합니다.

다음 읽기
관련 항목
  • DIY
  • 라즈베리 파이
  • 파이썬
  • GPIO
  • DIY 프로젝트 튜토리얼
저자 소개 이안 버클리(216건의 기사 게재)

Ian Buckley는 독일 베를린에 거주하는 프리랜스 저널리스트, 음악가, 공연자 및 비디오 프로듀서입니다. 글을 쓰지 않거나 무대에 오르지 않을 때는 미친 과학자가 되기 위해 DIY 전자 제품이나 코드를 만지작거리고 있습니다.

이안 버클리가 참여한 작품 더보기

뉴스레터 구독

기술 팁, 리뷰, 무료 전자책 및 독점 거래에 대한 뉴스레터에 가입하십시오!

구독하려면 여기를 클릭하세요.