관리 메뉴

miinsun

[RaspberryPi]GPIO를 이용한 센서 값 받기 본문

IoT/Raspberry Pi

[RaspberryPi]GPIO를 이용한 센서 값 받기

miinsun 2021. 12. 2. 16:18

 

라즈베리파이 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메뉴얼을 보고 따라해보았다

 

메카솔루션-아두이노|라즈베리파이|마이... : 네이버 카페

메카솔루션 공식 커뮤니티입니다. 아두이노, 라즈베리파이, 마이크로비트, 코딩교육 콘텐츠 공유

cafe.naver.com

 

Comments