티스토리 뷰
이번에 다루어 볼 내용은 라즈베리 파이의 GPIO를 이용하여 LED와
SWITCH를 제어하는 것입니다
준비물 부터 소개하겠습니다.
LED와 SWITCH를 제어하려면 당연히 LED, SWITCH가 필요하고 ,
BREADBOARD와 T자 모양으로 생긴 T코블러가 필요합니다.
T코블러를 자세히 보면 아래와 같습니다.
다음으로 , 라즈베리파이의 GPIO 구조를 살펴보겠습니다.
위의 핀마다 T자형 코블러에 다 적혀있어서 알아보기가 쉬웠습니다.
다음은, 포트 제어를 하기위한 터미널에 입력할 명령문 입니다.
$ sudo apt-get update
$ sudo apt-get upgrade
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi
$ git pull origin
$ ./build
이제 포트제어를 하기위한 설정은 다 한것이죠?
다음은 , GPIO 내부에 설정된 값을 살펴보기 위한 방법입니다.
아래와 같은 명령어를 입력하면 아래와 같이 내부 설정값이 표기되어 출력됩니다. 제어하기 위해 이 부분은 필수겠죠?
$ gpio readall
GPIO를 다루기 위한 몇가지 명령어를 소개하겠습니다. $ gpio –g mode 00 output $ gpio –g write 00 1 이제 몇가지 동작을 구현해 볼건데 준비 되셨나요?? 먼저, 처음으로 해볼 동작은 LED 쉬프팅을 하는것입니다. 코드는 아래와 같습니다.
00번 output으로 설정
00번의 출력을 1로 설정
$ gpio –g mode 00 input
00번 GPIO포트를 input으로 설정
cs
동작되는 과정 입니다.
다음으론 LED로 369를 보여주는것입니다.
3 6 9 가 들어간 순서에서 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 |
#!/bin/bash
gpio -g mode 5 output
gpio -g mode 6 output
gpio -g mode 13 output
gpio -g mode 19 output
gpio -g mode 21 input
gpio -g mode up
temp_array=(5 6 13 19)
while true; do
sw=`gpio -g read 21`
if [ $sw -eq 0 ]; then
for i in {1..100}
do
cnt=$((($i-1)%4))
var=$(($i%10))
var2=$(($i/10))
if [ $var -eq 3 ] || [ $var -eq 6 ] || [ $var -eq 9 ]; then
gpio -g write ${temp_array[$cnt]} 0
sleep 1
elif [ $var2 -eq 3 ] || [ $var2 -eq 6 ] || [ $var2 -eq 9 ]; $
gpio -g write ${temp_array[$cnt]} 0
sleep 1
else
gpio -g write ${temp_array[$cnt]} 1
sleep 0.5
gpio -g write ${temp_array[$cnt]} 0
sleep 0.5
fi
done
fi
done |
cs |
동작 되는 과정입니다.
이상 부족한 저의 글 끝까지 봐주셔서 감사합니다.
'IT > Raspberry Pi' 카테고리의 다른 글
[Raspberry Pi] 창의적인 Time Lapse 비디오 만들기 (0) | 2019.12.27 |
---|---|
[Raspberry Pi] MP3 플레이어 및 인터넷 라디오 플레이어 만들기 (0) | 2017.07.08 |