행복한 하루
라즈베리파이 제로 프로젝트(4) – LED 제어 – 2 (SW) 본문
안녕하세요.
LED 제어를 위한 H/W 준비가 되었다면 이제 소프트웨어로 제어를 해보는 것을 해보도록 하겠습니다.
소프트웨어로 GPIO 핀을 제어하는 방법에도 이미 만들어진 COMMAND Line으로 제어를 할 수 있고 C 언어나 파이썬과 같은 프로그래밍 언어로도 제어가 가능합니다.
쉬운 방법부터 알아보겠습니다.
1. 부품 연결
- LED의 + 쪽(일반적으로 다리 긴 쪽)을 3.3V 제로의 8핀에 연결해줍니다.
- LED의 - 쪽은 저항에 연결해줍니다. (저항은 극성이 없음으로 아무 쪽에 연결하면 됩니다.)
- 저항의 남은 한쪽은 제로의 6핀(GND -)에 연결해 줍니다.
- GND 핀 바로 옆에 8핀이 있습니다.
2. Command 명령
- 라즈베리파이 내에서 제공해주는 gpio 명령어가 있습니다. raspi-gpio 이것을 잘 이용해서 제어하면 됩니다.
1) LED 켜기
$raspi-gpio set 14 op dh
2) LED 끄기
$raspi-gpio set 14 op dl
위 명령어를 조금 분석해보면 set: 설정 의미이고, 14: 핀 번호이고, op: operation 의미이고, dh : Driving High, dl: Driving Low가 됩니다. 쉽게 말해 14핀을 High(3.3V)로 Low(0V)로 제어하겠다고 보시면 됩니다.
여기서 잠깐, 위에서 선 연결할 때는 8번 핀이라고 하고는 왜 14번이냐고 물으시면 아래의 핀 맵처럼 물리적인 순서대로 고정해 놓은 것은 흰색 박스이고, GPIO 기능으로 물리적 몇 번 핀과 매핑시켜 놓은 것은 연두색으로 생각하시면 됩니다. 그래서 Wiring 라이브러리까지 사용한다면 조금 더 혼란스러울 수 있는데요. 현 상황을 이해하는 것으로 끝을 내겠습니다.
여기서 끝내면 조금 아쉬움이 있을 것 같아서 추가로 깜박이는 것까지 처리해보도록 하겠습니다.
어떻게 가능한가 하면 command 창이 Bash shell이라고 해서 프로그래밍이 가능하게 되어있기 때문입니다.
shell 프로그래밍까지 설명해 드리기는 너무 다른 곳으로 가는 것 같아서 예제를 보고 시고 아 되는구나 확인해 보시고 간단하게 sleep 값을 수정해보셔도 좋을 것 같습니다.
pi@raspberrypi:~ $ while true; do
> raspi-gpio set 14 op dh
> sleep 1
> raspi-gpio set 14 op dl
> sleep 1
> done
소스를 간단히 설명드리자면
while true; 무한으로 실행하는데 14핀을 켜고, 1초 쉬고, 14핀을 끄고, 1초 쉬고 다시 시작해라
입니다. 참 쉽죠~
done 하고 엔터를 치면 LED가 1초 주기로 깜박 깜박이는 것을 확인할 수 있습니다.
끝을 내려면 Ctrl + C 를 누르면 중지가 됩니다.
조금 추가로 말씀드리면 shell이라는 프로그램도 linux에서 강력한 힘을 가집니다. 다음에 자동화 프로그램을 작성하거나 할 때 보게 될 것입니다.
다음 회차에는 파이썬으로 제어하는 것을 해보도록 하겠습니다.
감사합니다.
'RaspberryPi > Raspberry Pi Zero' 카테고리의 다른 글
라즈베리파이 제로 프로젝트(5) – 스위치 입력 받기 (0) | 2020.09.30 |
---|---|
라즈베리파이 제로 프로젝트(4) – LED 제어 – 4 (밝기 조절) (0) | 2020.09.26 |
라즈베리파이 제로 프로젝트(4) – LED 제어 – 3 (python3) (0) | 2020.09.25 |
라즈베리파이 제로 프로젝트(4) – LED 제어 – 1(HW) (0) | 2020.09.23 |
라즈베리파이 제로 프로젝트(TIP-1) 암호 변경 (0) | 2020.09.11 |