miinsun
[RaspberryPi]GPIO를 이용한 센서 값 받기 본문
라즈베리파이 GPIO란
GPIO는 (General Purpose Input Output)의 약자이며, 임베이트 시스템에서 외부와 입/출력 통신을 하기 위한 핀이다. 일반 PC와 라즈베리파이의 가장 큰 차이점은 GPIO핀이라고 할 수 있다. 라즈베리파이는 GPIO핀을 통해 센서, 모터 등의 외부 장치와 연결할 수 있으며 각종 센서, 모터, 출력 모듈 등을 연결하면 추가적으로 기능을 부여할 수 있다. 우리는 GPIO를 통해 다양한 장치 구현 및 제어 시스템을 구축할 수 있다.
GPIO 배치도
- 3.3VDC: DC 3.3V의 전압을 출력한다. (1번,17번)
- 5VDC: DC 5V의 전압을 출력한다. ( 2번, 4번)
- GND: 그라운드(접지) 핀 (6번, 9번, 14번, 20번, 25번, 30번, 34번, 39번)
- UARTO RX, TX: UART 통신 핀 (8번, 10번)
- SPI: SPI통신을 위한 핀 (19번, 21번 23번, 24번, 26번, 35번, 36번, 38번, 40번)
이 외에 I2C, GPIO핀이 있다.
GPIO 예제
led센서를 활용한 간단한 예제를 작성해보자.
먼저, 터미널을 키고 적당한 이름으로 vim에디터를 실행하자 ex) vim test1.py
import RPi.GPIO as GPIO # GPIO핀을 사용하기 위해 RPI.GPIO 라이브러리를 불러온다
import time # 시간 관련 함수, time라이브러리
GPIO.setmode(GPIO.BCM) # 코블러에 표기된 번호 그대로 핀을 지정
GPIO.setup(16, GPIO.OUT) # 16번 핀을 신호 출력모드로 설정, True = 3.3V 출력 / False = 0V 출력
try:
a=1
while a <10:
GPIO.output(16, True)
time.sleep(1)
G P I O . o u t p u t ( 1 6 ,
False)
time.sleep(1) # 1초 동안 다음 신호 대기
a=a+1
except KeyboardInterrupt: # crtl + c 를 통해 GPIO를 초기화하기 위한 예외처리함수
GPIO.cleanup()
- python test1.py 명령어로 로 실행 결과 확인하기
- ctrl + c 로 프로그램을 종료시키면 된다
참고 - 메카솔루션의 PDF메뉴얼을 보고 따라해보았다
'IoT > Raspberry Pi' 카테고리의 다른 글
[RaspberryPi]라즈베리파이 한글 깨짐, 라즈베리파이 한글 오류, 라즈베리파이 한글 패치 (0) | 2021.12.02 |
---|---|
[RaspberryPi] 와이파이 연결 안 됨 현상 해결법 (0) | 2021.11.25 |
Comments