반응형
1. 디지털 신호란?
디지털 신호는 1과 0으로 된 신호이다. 즉 어떤 신호의 구분이 HIGH 또는 LOW 두가지만 존재한다는 것을 의미한다.
2. 라즈베리파이 핀맵
3. 회로구성
6번 GND 에 각각 220옴의 저항을 LED의 - 극에 연결 하고 16,20,21번핀을 LED의 + 극에 연결한다.
4. GPIO 모듈 불러오기
import RPi.GPIO as GPIO
5. 핀번호 할당방법
GPIO.setmode(GPIO.BOARD)
GPIO.BOARD로 정의하면 핀 맵에 1~40까지 써있는 숫자로 핀번호를 사용하겠다는 의미이다. 예를 들어 36번핀은 BCM16 인데 프로그램에서는 36로 사용하겠다는 의미이다.
GPIO.setmode(GPIO.BCM)
GPIO.BCM으로 정의하면 BCM 뒤의 번호로 핀번호를 사용하겠다는 의미이다. 예를 들어 36번핀은 BCM16인데 프로그램에서는 16으로 사용하겠다는 의미이다.
6. 핀번호 초기값 설정
GPIO.setup(pin, GPIO.OUT,initial=GPIO.LOW)
핀 번호를 출력 모드로 사용하고 초기값은 LOW 상태로 시작하도록 설정한다.
7. 핀번호에 값을 출력
GPIO.output(pin, GPIO.HIGH)
핀번호에 HIGH를 출력함
GPIO.output(pin, GPIO.LOW)
핀번호에 LOW를 출력함
8. 대기시간 추가
import time
time.sleep(1)
time 모듈을 import 후 time.sleep(초) 로 대기한다.
9. GPIO핀 해제
GPIO.cleanup(pin)
종료하기 전에 GPIO핀을 해제해 주어야 한다.
cleanup() 실행하지 않고 종료할 경우 그 다음 실행시 경고 메시지가 표시된다.
10. BCM 16,20,21 세개를 차례대로 1초간 불이 들어 오는 코드
import RPi.GPIO as GPIO
import time
def led(pin, t):
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.HIGH)
time.sleep(t)
GPIO.output(pin, GPIO.LOW)
GPIO.cleanup(pin)
led(16, 1)
led(20, 1)
led(21, 1)
16,20,21 번 LED가 순서대로 1초씩 켜졌다가 꺼진다.
11. 무한 반복하기
import RPi.GPIO as GPIO
import time
def led(pin, t):
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.HIGH)
time.sleep(t)
GPIO.output(pin, GPIO.LOW)
GPIO.cleanup(pin)
while True:
led(16, 1)
led(20, 1)
led(21, 1)
반응형
'사물인터넷(IOT) > 라즈베리파이' 카테고리의 다른 글
7. 라즈베리파이 카메라 모듈 사용하기 (1) | 2023.03.23 |
---|---|
6. 라즈베리파이 디지털 입력 제어 (0) | 2023.03.22 |
4. 라즈베리파이 GPIO 알아 보기 (0) | 2023.03.22 |
3. 라즈베리파이 GUI 환경으로 접속하기 (0) | 2023.02.23 |
2. 라즈베리파이 putty로 원격접속 방법 (0) | 2023.02.23 |