안녕하세요! 이전 글에서는 라즈베리파이 프로그램 제작을 위한 간단한 파이썬 기초 문법에 대해서 알아보았고,
2022.10.06 - [IoT/라즈베리파이] - 라즈베리파이 - 특징 및 기초 Python
라즈베리파이 - 특징 및 기초 Python
"임베디드 시스템" : 마이크로 프로세서를 내장하여 특정 기능을 수행하도록 제작된 시스템 그중 하나로 쓰이는 라즈베리파이에 대해 알아보도록 하겠습니다. 라즈베리파이는 작은 크기의 싱글
foxyprogramming.tistory.com
가장 최근 라즈베리파이 글에서는 LED를 ON / OFF 하는 기능을 공부했었죠~
2022.10.06 - [IoT/라즈베리파이] - 라즈베리파이 - LED On / Off
라즈베리파이 - LED On / Off
안녕하세요! 이전 글들은 라즈베리파이의 간단한 설명과 파이썬에 대한 내용, GPIO 모듈에 대해 알아보았습니다. 2022.10.06 - [IoT/라즈베리파이] - 라즈베리파이 - GPIO 모듈 라즈베리파이 - GPIO 모듈
foxyprogramming.tistory.com
이런 공부 내용을 바탕으로 SOS 프로그램을 만들어보겠습니다!
가볼까용?
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/001.gif)
먼저 필요한 라이브러리를 import 해줍니다
import RPi.GPIO as IoPort
import time
전에 배웠던 함수를 사용해볼게요!
def 함수(변수1,변수2...)
실행문
의 구조를 가지고 있다고 말씀드렸었는데요
응용해봅시다!
우리는 LED를 켜고 끄는 동작을 하는 함수를 만들어볼 겁니다
def LedOn(Port,Delay):
IoPort.output(Port,True)
time.sleep(Delay)
* LedOn이라는 함수명을 사용합니다
* Port와 Delay는 지역 변수이며 LedOn 함수 내에서만 사용 가능합니다
* Port 변수에 적힌 포트로 출력됩니다
* Delay 시간만큼 대기합니다
def LedOff(Port,Delay):
IoPort.output(Port,False)
time.sleep(Delay)
* Port 변수의 출력 신호를 종료합니다
여기까지 따라오는 데 무리가 없을 것 같은데요!
이제 이 LedOn / LedOff 함수를 사용하여 이중 함수를 만들어보겠습니다!!
SOS 함수 전체를 만드는 것이 아닌 S 함수, O 함수를 만듭니다
def Send_S():
LedOn(Led,0.4)
LedOff(Led,0.4)
def Send_O():
LedOn(Led,0.4)
LedOff(Led,1.2)
LedOn(Led,1.2)
LedOff(Led,0.4)
Led = 26
IoPort.setmode(IoPort.BCM)
IoPort.setup(Led,IoPort.OUT)
LedOff(Led,2)
Send_S()
Send_O()
Send_S()
다음 함수 활용 부분입니다
BCM모드의 포트 번호를 입력하고, 2초간 종료시켜 SOS 신호를 확인할 준비를 합니다
2초가 지나면 SOS 함수가 실행되어 Led가 On / Off 되는 것을 확인할 수 있습니다.
이런 회로 구성이 되겠네요! 포트 번호는 임의로 지정한 것이니 실제 포트 번호와는 차이가 있습니다.
오늘 배운 것을 요약해보겠습니다
- 함수를 이용해서 반복되는 코드를 줄일 수 있었다.
- 함수 안에서 함수를 사용할 수 있다
함수를 사용하여 반복되는 프로그램을 만들 수 있다를 설명하고 싶었던 것이지, 실제 SOS 신호와는 차이가 있음을 유의하시길 바랍니다!
'IoT > 라즈베리파이' 카테고리의 다른 글
[라즈베리파이] - LED On / Off (0) | 2022.10.06 |
---|---|
라즈베리파이 - GPIO 모듈 (0) | 2022.10.06 |
라즈베리파이 - 특징 및 기초 Python (0) | 2022.10.06 |