행복한 하루

라즈베리파이 제로 프로젝트(4) – LED 제어 – 2 (SW) 본문

RaspberryPi/Raspberry Pi Zero

라즈베리파이 제로 프로젝트(4) – LED 제어 – 2 (SW)

변화의 물결 2020. 9. 24. 00:10

안녕하세요.

  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

 

putty 명령어 입력

  위 명령어를 조금 분석해보면 set: 설정 의미이고, 14: 핀 번호이고, op: operation 의미이고, dh : Driving High, dl: Driving Low가 됩니다. 쉽게 말해 14핀을 High(3.3V)로 Low(0V)로 제어하겠다고 보시면 됩니다.

 

 여기서 잠깐, 위에서 선 연결할 때는 8번 핀이라고 하고는 왜 14번이냐고 물으시면 아래의 핀 맵처럼 물리적인 순서대로 고정해 놓은 것은 흰색 박스이고, GPIO 기능으로 물리적 몇 번 핀과 매핑시켜 놓은 것은 연두색으로 생각하시면 됩니다. 그래서 Wiring 라이브러리까지 사용한다면 조금 더 혼란스러울 수 있는데요. 현 상황을 이해하는 것으로 끝을 내겠습니다.

 

GPIO 핀맵

 

 

  여기서 끝내면 조금 아쉬움이 있을 것 같아서 추가로 깜박이는 것까지 처리해보도록 하겠습니다.

어떻게 가능한가 하면 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

Putty 깜박이 실행 소스

 

  소스를 간단히 설명드리자면

 while true; 무한으로 실행하는데 14핀을 켜고, 1초 쉬고, 14핀을 끄고, 1초 쉬고 다시 시작해라

입니다. 참 쉽죠~

 

  done 하고 엔터를 치면 LED가 1초 주기로 깜박 깜박이는 것을 확인할 수 있습니다.

  끝을 내려면 Ctrl + C 를 누르면 중지가 됩니다.

  조금 추가로 말씀드리면 shell이라는 프로그램도 linux에서 강력한 힘을 가집니다. 다음에 자동화 프로그램을 작성하거나 할 때 보게 될 것입니다.

 

 

다음 회차에는 파이썬으로 제어하는 것을 해보도록 하겠습니다.

감사합니다.

 

 

Comments