티스토리 뷰

파이썬 언어를 이용하여 간단한 LED 제어를 해보았습니다.

 

필요한 준비물 :  라즈베리파이와 T자형 코블러, BREAD BOARD, 저항, LED

 

 

 

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)
 
GPIO.setup(5, GPIO.OUT)
GPIO.setup(6, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(19, GPIO.OUT)
GPIO.setup(21 , GPIO.IN)
 
GPIO.output(5, False)
GPIO.output(6, False)
GPIO.output(13, False)
GPIO.output(19, False)
 
= [5,6,13,19]    
 
= 0
int(i)
= 0 
try:
    while True :
            if GPIO.input(21)==0:
                i = i + 1
                if (i%10 == 3)or(i%10 == 6)or(i%10 == 9)or(int(i/10== 3)or(int(i/10== 6)or(int(i/10== 9): 
                    GPIO.output(a[m], False)
                    GPIO.output(a[m-1], False)
                    m = (m+1)%4
                    time.sleep(0.3)
                else:
                    GPIO.output(a[m], True)
                    GPIO.output(a[m-1], False)
                    m = (m+1)%4
                    time.sleep(0.3)
            
    
except KeyboardInterrupt:
    GPIO.cleanup()
 
cs

 

 

이제 소스코드를 세부적으로 설명 하겠습니다.

 

import RPi.GPIO as GPIO


먼저 LED를 제어하기 위한 GPIO 부분을 사용 하기 위해 RPI.GPIO를 import 해줍니다.

 

 

 

 

GPIO.setmode(GPIO.BCM)


먼저, GPIO.setmode()함수는 핀 번호를 정할때 어떤 참조 방식을 사용하는지를 설정 하는 함수 입니다. GPIO.BCM은 브로드 컴칩의 번호를 참조하겠다라는 말입니다. 예를 들어 

GPIO 12 에서 12에 해당하는 번호를 사용하겠다라는 것입니다. 즉, BREAD BOARD에서 12번 핀은 GPIO.BCM 모드에서는 18번 핀과 같다라는 것입니다. 

BCM모드를 사용하겠다는 구문입니다. 


BCM이란 ? 

Broadcom chip-specific pin numbers 의 약자 입니다. 

 

 

 

GPIO.setup(xx,GPIO.IN)

GPIO.output(xx,False)

GPIO.setup() 함수는 GPIO.input()이나 GPIO.output()함수를 호출하기 전에 사용하고자 하는 핀이 input 인지 output인지를 먼저 설정해주는 함수이다. 만약 , GPIO.setup() 함수 호출시 , 풀업이나 풀다운 저항을 연결하려면 아래와 같이 써주어야 합니다.

GPIO.setup(17,GPIO IN, pull_up_down=GPIO.PUD_UP)

 

>

 

동작 구현
 

 

369 규칙을 따라 해당하는 부분에 LED 점멸을 생략하는 모습을 볼수 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31