본문 바로가기

무한코딩/라즈베리파이

[날지 무한코딩] 라즈베리파이3, 파이썬을 이용한 LED 사용

라즈베리파이를 이용한 사물인터넷을 구성하려면 라즈베리파이에서의 센서제어가 필요합니다.


오늘은 가장 기본인 라즈베리파이를 이용한 LED 점멸을 해볼까 합니다.



오늘의 준비물 : 라즈베리파이, 점퍼선, LED, 저항, 브레드보드


LED에 불이 들어오게 하려면 기본적으로 라즈베리파이와 LED를 연결해야 하겠죠. 


또, 불이 들어올 수 있게끔 라즈베리파이에서 간단한 코딩을 해야합니다.



먼저 라즈베리파이에서 코딩을 하는 환경부터 설명을 드리겠습니다.


라즈베리파이를 키고 터미널을 실행시킵니다.


첫번째로 디렉토리를 만들어 보겠습니다. 컴퓨터의 폴더 개념이라 생각하시면 됩니다.


1
mkdir 폴더이름
cs


mkdir 이라는 명령어를 사용하여 폴더를 생성하고 


ls라는 명령어를 사용해서 만들어진 폴더를 확인해보겠습니다.



성공적으로 Nalji폴더가 생성이 되었네요.


자 그러면 새로 생성한 폴더로 이동해보겠습니다.


1
cd 폴더이름
cs


를 입력하면 새로 만들어진 폴더로 이동이 되었을겁니다.



요런식으로 말이죠. 


앞으로 다른 소스를 이렇게 특정 폴더내에 보관하면 찾기 편리하겠죠?


그러면 이제 소스를 작성해보도록 하겠습니다.


nano편집기를 사용할 건데요.


명령창에 nano만 입력하시면 됩니다.



이런 편집창이 새로 뜨는데요.


여기서 코딩을 하시면 됩니다. 


출처:www.element14.com


코딩전에 라즈베리파이3의 핀을 살펴보겠습니다. 


오늘 제가 쓸 핀은 오른쪽 맨 하단의 GPIO21, GPIO20와 오른쪽 위에서 세번째 GND를 사용할겁니다.


코딩을 하면 GND는 쓸일이 없지만 GPIO21, 20번은 사용하니 유념해서 보세요.


다른 핀을 이용하시려면 밑의 소스코드에서 숫자만 바꿔주시면 됩니다.


그럼 실행 소스코드를 보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import RPi.GPIO as GPIO        #GPIO를 사용하기 위해 추가
import time                    #time.sleep을 사용하기 위해 추가
 
GPIO.setmode(GPIO.BCM)        #BCM을 이용하면 GPIO num으로 표시, BOARD를 이용하면 Pin num으로 표시.
GPIO.setup(20, GPIO.OUT)    #GPIO20를 사용선언 
GPIO.setup(21, GPIO.OUT)
 
print "Start LED"
 
= 0
while i < 10:
    GPIO.output(20, True)    #LED에 불이 들어옴
    GPIO.output(21, False)    #LED에 불이 안들어옴
    time.sleep(1)            #1초 대기
    GPIO.output(20, False)
    GPIO.output(21, True)
    time.sleep(1)
    i += 1
 
print "End LED"
 
GPIO.cleanup()                #GPIO 초기화
cs


두개의 LED를 1초마다 번갈아가면서 불이 들어오게 만든 소스코드입니다.


코딩을 하면서 주의 할 점은 while문 밑에 Tab키를 이용한 들여쓰기를 꼭 해야한다는 겁니다.


입력을 완료하셨으면 Ctrl+x를 눌러 나가야 됩니다. 


저장여부를 묻는데 y를 누르고 파일이름을 정합니다. 파일이름.py 확장자를 주의해서 입력해주세요.



자 그러면 이제 코딩은 끝났습니다.


이제 뭐가 남았죠? LED를 연결해야겠죠!



그림을 못그려서..글로 설명해드리겠습니다.


우선 브레드 보드는 양쪽에 -,+줄이 있습니다. 사진을 기준으로 양쪽 -, +는 세로 한줄로 쫘악 연결이 되어있습니다.


중간에는 5개씩 구멍이 뚫려있는데요. 쟤들은 5개, 5개씩 가로로 연결이 되어있습니다. 


GPIO를 (+)극, GND를 (-)극이라 생각하시면 됩니다.


GPIO에서 전류를 흘려주면 저항으로 전류가 이동하고 저항을 거친 전류는 LED로 들어가겠죠? 


그 전류를 다시 GND로 넣어주면 끝~!


설명이 부족하시면 검색창에 "아두이노 브레드보드"를 치시면 됩니다..ㅠㅠ


위의 사진과 같이 선들을 배열하면 준비는 끝났습니다.



다시 라즈베리파이로 돌아가서 아까 저장했던 파일을 실행시켜 보도록 하겠습니다.


저는 led001.py로 저장을 했습니다.


1
sudo python led001.py
cs


를 입력하시면 led에 불이 짜잔~ 들어옵니다.


밑은 실행 영상입니다!




하시면서 막히는 부분은 메일을 주시거나, 댓글을 남겨주세요(비회원이시면 방명록에 남겨주시면 됩니다!)