Computer >> 컴퓨터 >  >> 시스템 >> Mac

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항

작성자:태론 폭스워스

Arduino에 버튼을 연결해 본 적이 있다면 다음 다이어그램을 접하게 될 것입니다:

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항

처음에는 이것이 혼란스러울 수 있습니다. 나의 첫 생각:"왜 저항이 필요한가? 버튼이 눌려졌는지 알려주고 싶을 뿐이다."

많이 읽어봐도 간단한 설명은 나오지 않았습니다.

여기서 무슨 일이 일어나고 있는 걸까요

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항 다이어그램 1

해당 버튼(일명 스위치)에서 와이어는 "H" 형태로 되어 있습니다. 하지만 버튼을 누를 때까지는 중간이 연결되지 않거나 회로가 연결되지 않습니다.

실제로 우리는 Arduino에서 0를 읽고 싶습니다. 아무것도 연결되어 있지 않고 1인 경우 버튼을 눌렀을 때.

Arduino에서는 이를 GPIO(범용 입력 출력)라고 합니다.

따라서 다음과 같이 할 수 있습니다:

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항 다이어그램 2

회로의 왼쪽에 양극(5v, 3.3V 또는 VCC)을 연결합니다.

이제 버튼을 누르면 GPIO가 1를 읽습니다. , 모든 것이 좋습니다.

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항 다이어그램 3

글쎄요. 다이어그램 2를 다시 살펴보겠습니다.

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항 다이어그램 2

우리는 0를 원했어요 아무것도 연결되지 않은 경우 이를 어떻게 보장할 수 있습니까? 현재 GPIO가 0이 되도록 보장할 수 있는 방법은 없습니다. .

GPIO를 0로 끌어올 수 있는 공기 중에 전자기 주파수도 있습니다. 또는 1 . 둘 사이에 변동이 있을 수도 있습니다! 이렇게 하면 0인지 확신할 수 없습니다. (저는 말장난에 서투릅니다.) 이는 논리 0이라고도 합니다. .

논리적 0을 얻는 한 가지 방법 핀을 지면에 묶는 것입니다:

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항

이야! 이제 논리 0이 보장됩니다. 버튼을 누르는 동안 1이 됩니다. 지금. 그렇죠?

글쎄요.

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항

방금 단락을 만들었습니다. ?

여기에 저항이 필요합니다. 단락을 방지하려면 회로에 저항을 추가해야 합니다. 저항기는 상황을 통제합니다.

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항

전기는 저항이 가장 적은 경로를 택합니다. 이제 GPIO가 1를 등록합니다. 버튼을 눌렀을 때. 다음과 같습니다:

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항

우후! 이제 우리는 뭔가를 하고 있습니다.

이제 그 반대인 풀업 저항을 살펴보겠습니다. 똑같은데 반대네요. 버튼을 누르지 않은 동안 GPIO는 1를 등록합니다. . 버튼을 누르면 GPIO가 0가 됩니다. .

누르지 않은 동안 GPIO는 양극(VCC)에 연결되어 있습니다. 따라서 GPIO가 논리 1을 등록하도록 존재하는 모든 전류가 풀업됩니다. .

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항

여기서 전기는 항상 접지로 가고 싶어한다는 점에 유의하는 것이 중요합니다. 따라서 버튼을 누르면 흐르는 전류가 접지로 흐릅니다. 따라서 GPIO로 흘러가는 전류는 모두 함께 흐르고 GPIO는 논리적 0에 남게 됩니다. .

풀다운 및 풀업 저항 설명:필수 하드웨어 기본 사항

? 끝.

내가 왜 이 글을 썼나요?

저는 하드웨어 경험 없이 2016년 9월에 Losant에 합류했습니다. 모든 단일 하드웨어 스타터 키트에는 이 개념에 대한 설명이 없는 버튼이 제공됩니다. 이것이 당신의 전구가 꺼지는 데도 도움이 되기를 바랍니다. ?

이것은 단지 표면을 긁었을 뿐입니다. 더 자세히 알아보려면 다음 리소스를 확인하세요.

풀업 저항기 - learn.sparkfun.com
_또 하나 지적해야 할 점은 풀업에 대한 저항이 클수록 핀의 반응 속도가 느려진다는 것입니다…_learn.sparkfun.com

나는 피드백을 좋아합니다. 따라서 이 문제가 개선될 수 있는지 알려주시기 바랍니다. 내가 완전히 실수했다면 알려주세요! 다른 사람들에게도 더 나은 결과를 주고 싶습니다.

무료로 코딩을 배우세요. freeCodeCamp의 오픈 소스 커리큘럼은 40,000명 이상의 사람들이 개발자로 취업하는 데 도움을 주었습니다. 시작하세요