라즈베리파이4

[라즈베리파이4] GPIO를 이용하여 버튼 입력 받기

왕초보코딩러 2023. 11. 3. 21:03
728x90

 

1. sudo raspi-config의 인터페이스 옵션에서 GPIO on

 
Remote GPIO를 들어갑니다

 

No로 되어있다면 Yes로 바꿔주세요

 
완료

2. pip install RPi.GPIO

3. python3 하고 import RPi.GPIO 해보기

->오류가 안뜨면 exit()
->오류 뜨면 sudo apt-get install python-dev 해보기

4. 코드 작성

전에

GPIO 라이브러리 설명

https://junolefou.tistory.com/5

 

[Python] 라즈베리 파이의 GPIO를 이용해 스위치/LED 제어하기 (2)

지난 번 글에서 라즈베리 파이의 GPIO를 이용해 스위치/LED를 제어해보고 이를 토대로 여러 프로그램을 만들어봤었는데, bash로만 작성했던 게 왠지 마음에 걸려, 이제는 우리의 마음의 고향(?)같은

junolefou.tistory.com

 
 

제가 사용할 것입니다.
 
GPIO.setmode()

어떤 모드의 번호를 사용할 것인지(BCM or BOARD)

GPIO.setup() 

GPIO 핀 번호의 입출력 설정

GPIO.input()

값 읽어오기

GPIO.cleanup() 지우기

GPIO 리소스 해제
 

회로도

회로도를 못만들어서 사진으로 대체합니다..

 

저는 풀업 저항을 사용했습니다.

보라색 선은 핀번호에, 검은색 선은 GND에, 빨간색 선은 5V에 해주시면 되는데

저항은 5V인 빨간색 선과 이어주세요
풀업 저항은 버튼이 누르면 0을, 누르지 않으면 1을 반환합니다.

 
https://swmakerjun.tistory.com/16

 

아두이노 푸쉬버튼 활용.( 플로팅, 풀업, 풀다운)

1. 푸쉬버튼 알아보기. - 디지털 입력을 위한 부품. - 푸쉬버튼을 누르고 떼는 동안 디지털 1 (HIGH), 0 (LOW) 값을 갖는다. - 푸쉬버튼은 누르고 있는 동안 ON, 떼면 OFF로 되돌아가는 특징을 가지고 있

swmakerjun.tistory.com

 

파이썬 코드 내용

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(BCM번호, GPIO.IN)

#풀업저항
try:
    while True:
        btn = GPIO.input(BCM번호)
        if btn == 1: #버튼 안눌렀 때
            print("Button off")
            time.sleep(1)
        else:   #버튼 눌렸을 때
            print("Button on")
            time.sleep(1)
            
except KeyboardInterrupt:
    print("Stop GPIO")
    GPIO.cleanup()

 

try except문을 이용합니다.
무한루프를 돌면서 버튼 값을 받습니다.
버튼의 값을 보고
버튼이 안눌리면(1) 'Button off'를 출력
버튼이 눌리면(0) 'Button on'을 출력합니다.

 
 

결과는???
 
누르고 있으면 Button on 출력
안 누르고 있으면 Button off 출력
 
성공~~
 
 

 
https://earthkingman.tistory.com/30

 

#3.1 라즈베리파이 간단한 버튼을 사용예시 (python)

간단한 버튼을 사용해서 누를때마다 카운트를 높히는 실습을 해보겠다.

earthkingman.tistory.com

https://pinkwink.kr/848

 

라즈베리파이에서 Python을 이용하여 GPIO 테스트 -버튼과 LED-

오늘은 푸시버튼을 누르면 LED가 켜지는 겁~~나게 간단한 예제를 라즈베리파이에서 Python을 이용해서 테스트해 보도록 하겠습니다. 뭐 언제나 그렇듯 항상~~ 기초적인 거지요.. 푸쉬버튼과 LED를

pinkwink.kr

 
+
try except문
https://codeomni.tistory.com/386

 

[python 3] 파이썬 3 무한반복루프 키보드 중지 ctrl+c 특정 예외처리하기 메시지 소스 코드 예제

안녕하세요. 이번 포스팅은 파이썬3에서 키보드 입력 오류 처리하기입니다. 특정 상황인 무한 반복 루프에서 Ctrl+C를 입력하면 발생하는 오류를 처리할 수 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1

codeomni.tistory.com