새소식

라즈베리파이

라즈베리파이4b LED 연결 및 키고 끄는(On/Off) 방법

  • -

라즈베리파이4b에 브레드보드를 이용하여 LED를 연결하고

그 led를 제어하는 방법에 대해서 알아보겠습니다

 

LED(Light Emitting Diode)

우선 LED를 살펴보면 위와 같이 생겼어요

짝다리를 집고 있는 led

자세히 보면 한쪽이 좀 더 길고 다른 한쪽이 짧습니다.

긴 쪽(anode)이 +극

짧은 쪽(cathode)가 -극을 나타냅니다

즉 연결할 때에 긴쪽을 VCC에 연결하고 짧은 쪽을 GND에 연결해야 합니다

 

저항(Resistor)

저희가 led와 연결할때 사용할 저항은 빨빨검(220옴) 입니다

저항을 사용하는 이유는 안전을 위해서입니다.

저희가 사용할 직경 5mm 일반 led 다이오드의 경우 전압은 1개당 1.8V ~ 2.0V 전류는 15~20mA를 먹는다고 합니다

라즈베리파이에서 gpio 출력을 그대로 이용하면 과 전류가 흘러 탈 수 있습니다

잘못하면 펑~ 하고 터지는걸 볼 수 있습니다

 

회로 구성

fritzing을 이용한 회로 구현

 

라즈베리파이4b와 led 연결 사진

led에 저항을 하나 달아주고 -쪽(짧은쪽)은 라즈베리파이의 GND(오른쪽 맨위 3번째)에 연결

반대 쪽은 gpio 18번 핀(오른쪽 맨위  6번째)에 연결합니다.

 

회로 연결하는 영상 첨부

처음 연결해보시는 분들이 제일 먼저 led를 사용해보실 텐데요

처음에는 연결하는게 어려우니 자세하게 연결하는 법 영상을 찍어봤어요!!

편집은 따로 안했지만 충분할것이라 생각합니다

 

led On/OFF 코드 작성

간단하게 echo 명령어를 이용해서 led를 on/off 해보겠습니다

저는 bash 파일을 작성하였습니다

1
2
3
4
5
6
7
8
#!/bin/bash

# onoffLED.bash

`echo "18" > /sys/class/gpio/export`
`echo "out" > /sys/class/gpio/gpio18/direction`
`echo "1" > /sys/class/gpio/gpio18/value`
sleep 1
`echo "0" > /sys/class/gpio/gpio18/value`
`echo "18" > /sys/class/gpio/unexport`
cs

위와 같이 onoffLED.bash 파일을 작성합니다

echo 앞에 붙은 것은 작은 따옴표가 아니라 백팁(`)입니다이는 물결(~) 있는데 있습니다.

 

chmod 755 ./onoffLED.bash
sudo ./onoffLED.bash

그리고 chmod 명령어를 이용하여 권한 설정해주고

sudo 명령어를 이용하여 bash 파일을 실행하면 led에 불이 켜졌다가

1초 뒤에 꺼지는 모습을 볼 수 있습니다.

 

위 영상은 코드를 2번 실행시킨 모습입니다

두번 켜졌다 꺼졌다 하는 것을 볼 수 있습니다~~

 

코드 설명

echo "18" > /sys/class/gpio/export 는 gpio 18번 포트를 여는 코드에요

이를 실행하면 gpio 폴더밑에 gpio18이라는 링크가 생기게 됩니다.

이를 통해 GPIO 18번 포트에 대해서 direction, value 등에 대한 값에 접근하고 설정할 수 있습니다

반대로 export가 아닌 unexport로 바꿔주면 링크가 사라지게 됩니다

위 사진을 보면 원래 gpio18이라는게 없었지만 export를 하고나니까 생긴걸 볼 수 있습니다

 

 

echo "out" > /sys/class/gpio/gpio18/direction

그리고 값을 출력(out)해 불을 켜기 위해서 gpio18/direction을 out으로 바꿉니다

값을 읽고 싶다면 "in"으로 바꾸면 됩니다

 

echo "1" > /sys/class/gpio/gpio18/value

그리고 LED에 값을 1로 줍니다. 

그러면 gpio18번 포트를 통해 값이 들어가서 led에 불이 들어옵니다

반대로 0을 주면 불이 꺼지게 됩니다

그리고 위에서 이야기했듯이 사용하지 않으려면 unexport를 해주면 됩니다

 

이제 제일 기본적인 개념을 이해하고 led를 켜고 끄는 것을 했으니

다음에는 이를 활용해서 많은 것을 해보겠습니다!!

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.