LED를 GPIO 2번 핀에 (GPIO 해더에선 3번 핀) 연결하니,
아무 코딩도 하지 않았는데 라즈베리 파이가 부팅되면서 자동으로 LED가 ON 되어 초기 GPIO 핀 상태가 궁금해졌다.
각 GPIO 핀 상태를 확인할 수 있는 간단한 방법으로 터미널 창에서 gpio readall 명령어를 실행한다.
아래 그림에서,
- BCM은 라즈베리 파이의 GPIO 번호를 의미
- wPi는 Wiring Pi 라이브러리 기준 핀 번호를 의미
- Mode는 해당 핀이 임의 신호에 대하여 입력(IN) 모드인지 아니면 출력(OUT) 모드인지를 의미
- V는 해당 핀의 상태가 논리적으로 1인지 아니면 0인지를 의미
- Physical은 라즈베리 파이의 GPIO 해더의 핀 번호를 의미
2021.04.25 - [학습노트/Raspberry Pi] - [Raspberry Pi 3 B+] 라즈베리 파이의 GPIO
명령어 gpio 관련해서 찾아보니
라즈베리 파이에서의 gpio는 라즈베리 파이를 위한 C 언어 기반 GPIO 인터페이스 라이브러리인 Wiring Pi의미 한다고 한다.
추가 정보는 wiringpi.com에서 확인할 수 있을 것이며, 터미널 창에 gpio -h 명령어를 실행하면 사용 가능한 명령어 리스트를 확인할 수 있다.
간단한 시험을 해 보면,
LED를 GPIO 18번 핀에 (GPIO 해더에선 12번 핀) 연결하니 기본적으로 LED는 켜지지 않는다.
이 상태에서 아래의 파이썬 코드를 라즈베리 파이에서 실행하면,
from time import sleep
from gpiozero import LED
led = LED(18)
period = 0.5
for c in range(5):
led.toggle()
print(led.is_active)
sleep(period)
led.on() # LED ON 상태로 종료
LED는 수 차례 ON/OFF 되다가 프로그램이 종료된 이후 ON 상태를 유지한다.
이 상황에서 gpio readall 명령어를 실행하면 GPIO 18번 핀의 Mode가 IN -> OUT , V가 0 -> 1로 변경된 것을 확인할 수 있다.
다음으로 GPIO 2번 핀에 LED를 연결한 후 LED를 ON/OFF하는 파이쎤 코드를 실행하면,
from time import sleep
from gpiozero import LED
led = LED(2)
period = 0.5
for c in range(5):
led.toggle()
print(led.is_active)
sleep(period)
led.off() # LED OFF 상태로 종료
GPIO 2번 핀의 Mode가 IN -> OUT으로 변경된 것을 확인할 수 있다.
'코딩 > 파이썬과 라즈베리파이' 카테고리의 다른 글
[Raspberry Pi] 라즈베리 파이와 함께 하는 파이썬 코딩 001. 파이썬 코딩 환경 Thonny (0) | 2021.05.15 |
---|---|
[Raspberry Pi] 라즈베리 파이 3 모델 B+ vs. 4 모델 B (0) | 2021.05.15 |
[Raspberry Pi 3 B+] 라즈베리 파이 홈페이지의 Documentation 번역서 (0) | 2021.05.02 |
[Raspberry Pi 3 B+] 초심자는 어떤 라즈베리 파이 키트로 시작하면 좋은가? (0) | 2021.05.02 |
[Raspberry Pi 3 B+] 라즈베리 파이, VNC로 원격접속 하기 (0) | 2021.05.01 |