장난감

라즈베리파이와 파이썬을 이용한 아주 간단한 LED 실험

전산왕 2020. 8. 4. 04:04

라즈베리파이를 이용하여 LED를 0.5초 간격으로 점등, 점멸시키는 준비과정, 코드를 설명해보고자 한다.

 

 

내용

사용기기는 라즈베리파이 3B+이고,

개발환경은 라즈베리파이 OS 설치할 때 같이 설치되어있던 Thonny로 하였고, 언어는 파이썬.

라즈베리 파이 브레드 보드 코블러 커넥터를 통해  아래 사진과 같이 연결한다. 

 

연결 모습
연결 모습2 

일단  여기선 GPIO6을 사용할 것이고, 보게 되면

 

이렇게 GND(접지)는 - 버스와 연결해주고, 3.3V Power는 +Bus와 연결시켜 주고, GPIO6을 LED와 연결하여 준다. 

 

참고로 본인이 사용한 LED를 보시면 아래와 같이 되어있는데,

 

 

 

LED

긴 부분은  GPIO6에, 짧은 건 GND 연결된 -버스에 연결하면 된다.

 

참고로 긴 부분을 Anode(애노드)라고 하며, 짧은 부분은 Cathode(캐소드)라고 한다.

 

그리고 원래는 과도한 전류로부터 LED를 보호해주어야 하기 때문에 저항이 필요하다.

 

옴의 법칙을 이용하여 저항값을 계산해보면


저항 = 전압/전류 이므로 


저항 = (공급 전압인 3.3V- 필요 전압 2V) / (LED가 사용하는 소모전류인 10mA)

 

즉슨 R = 1.3V / 10mA

 

를 계산해주면


130Ω이 나오는데,  간단한 실습이기도 하고, 전류가 세지 않아 큰 문제는 없으니 이 글에서는 연결 및 사용은 일단 생략하겠다.

 

그리고 이런 기계에 명령을 해줘야 하고 그 명령에 대한 코드는 파이썬으로 한번 작성해 보았다.

 

코드

 

import RPi.GPIO as myGPIO #라즈베리파이의 GPIO를 위한 라이브러리
# myGPIO라는 이름을 사용하여 접근 가능
import time #sleep을 사용하기 위해 선언한 라이브러리


myGPIO.setmode(myGPIO.BCM) #핀을 설정하겠다. BCM은 B+이상부터 사용, Board면 구버전.
myGPIO.setup(6,myGPIO.OUT) # GPIO PIN 6를 출력으로 사용하겠다. 



try:
    while(1):#무한 반복
         myGPIO.output(6,True) #출력핀 GPIO6을 True(킴) 으로 하겠다.
         time.sleep(0.5) # 0.5초간 sleep
         myGPIO.output(6,False) #출력핀 GPIO6을 False(끔) 으로 하겠다.
         time.sleep(0.5) # 0.5초간 sleep
        
    

  


except KeyboardInterrupt:
    myGPIO.cleanup() #키보드로 인한 인터럽트 발생시 핀설정을 초기화 해주어라.

코드에 대한 설명은 주석에 써놓겠다.

 

실행결과