본문으로 바로가기
반응형

 원래는 LED와 간단한 회로를 설계하는 실습인데, LED가 없으므로 PuTTY로 신호를 출력해보자.

 

 흔히 디지털 신호에서 입력값은 Low, High로 구분하는데, 흔히 말하는 0과 1로 구분할 수 있다.

그 중에 스위치를 사용하기위해 풀업(Pull-up)과 풀(Pull-down)이라는 개념이 나오는데, 이 두 개념은 플로팅(Floating)때문에 나온 것이므로 플로팅부터 알아보자.



 플로팅(Floating)은 떠있다. 라는 사전적인 의미를 가지고있는데, 디지털 회로에서 파생된 개념이다.

쉽게 말하자면, 플로팅이 되었다는 것은 Low(0)인지, High(1)인지 알 수 없는 상태이다.

 위의 회로에서 스위치를 연 상태일때는 출력회로가 High신호를 받는다. 하지만 스위치가 닫힌 상태에는 모든 전류가 그라운드로빠져서 0V가 될 것 같지만, 그렇지 않고 High인지 Low인지 알 수 없는 상태가 된다. 이때 플로팅상태일때는 아주 작은 노이즈(전압)으로도 High와 Low사이를 빠르게 왔다갔다할 수 있기 때문에 회로의 오작동을 유발할 수 있다.

 

그래서 플로팅을 방지하기 위해 사용되는 것이 "풀업"이다.

 

 회로 구성은 간단하다. input(Vcc) 전압쪽에 저항을 달아주거나(Pull-up 저항) 그라운드(0V)쪽에 저항(Pull-down)을 달아주기만 하면된다. 위의 플로팅 회로에서는 스위치가 어떤 상태이든 전압이 남아있었지만, 풀업회로에서는 스위치가 닫힌 상태에서는 전위차가 가장 낮은 그라운드로 향하기때문에 출력회로에서는 Low값을 얻을 수 있고, 스위치가 열린 상태에서는 출력회로쪽의 전압값인 High를 얻을 수 있다.

 

저항을 추가해준 모습

 

 보통 풀업, 풀다운 회로는 스위치를 사용하는 회로에서 자주 사용하게된다. 이번 실습의 원리가 이렇구나.하고 넘어가고 라즈베리파이의 신호를 관찰하는 실습이나 해보자.

 

 

 

 원래 LED로 신호를 감지하는 것을 쉽게 볼 수 있는데, 현재 LED가 없으므로 PuTTY 명령창 화면으로 실습해보려한다.

먼저 PuTTY에서 pinout 명령어를 실행해서 라즈베리파이의 데이터시트를 확인해보자.

이중에 GPIO21의 pin으로 실험할 예정이다.

 

 

 

gpio.py 라는 파일을 만들어주고, vi 편집기로 아래의 코드를 입력해보자.

gpio.py 파일의 vi편집기 화면

import는 다른 기능을 가져올때 쓰는 것,

import time은 시간 관리기능을 갖다 쓴다는 것,

이 두 명령어는 라즈베리파이를할때 기본적으로 필수로 쓰는 것이니까 기억해두자.

 

 

파이썬 명령어로 gpio.py를 실행해보자.

아마 계속 High의 신호만 뜰 것이다.

High가 계속 뜨다가 컨트롤 + C를 누르면 꺼진다

 

 

GPIO21 핀과 그 옆의 Ground를 동시에 연결시켜보자.(실습에는 스테이플러 알로 두개를 연결시켰다)

 

스테이플러로는 찌릿찌릿?한게 느껴져서 핀셋을 빌려서 두 핀을 연결해보았다
연결했을때 Low가 화면에 출력된다

 

 라즈베리파이 실습에는 저항을 연결하지않고도 Low 신호를 볼 수 있었는데, 라즈베리파이 칩안에 저항이 내장되어있기 때문에 플로팅현상이 나오지 않았다.

 

반응형