일부 핀에 숫자 옆에`~`표시가있는 이유는 무엇입니까?


32

내 아두 이노 우노보고 있었고, 난 디지털 핀에 의해 그 기호를 발견 11, 10, 9, 6, 5,와 3. 이것들은 무엇을 의미합니까? 이것이 작동 방식에 영향을 줍니까? 특정 상황에서이 핀을 사용할 수 없습니까?


19
물결표 기호는 "대략"을 의미합니다. "이것은 대략 11 번 핀입니다"와 같이. 제조 과정에서 핀이 약간 움직일 수 있습니다. 핀 11이 거의 11이되는 경우는 거의 없습니다. 일반적으로 11보다 약간 또는 약간 작습니다. :)

6
@AnnonomusPerson David는 애매 모호합니다. 핀아웃 및 유사 항목에 익숙하지 않은 경우 즉시 알 수 없습니다.
Shamtam

7
@Shamtam : 또는 David에 익숙하지 않은 경우 :)
Chris Laplante

답변:


31

편하게 하다. 걱정마 이 핀들은 PWM"추가 보너스"가 있다는 점을 제외하고는 다른 핀과 동일합니다.


Arduino 웹 사이트의 일부 용도 :

  • LED 디밍
  • 아날로그 출력을 시뮬레이션합니다. 출력은 여전히 ​​0V에서 5V로 디지털 토글됩니다. 그러나 저전압 필터 (콘덴서 및 저항)는 아날로그 전압을 시뮬레이션합니다.
  • 오디오 신호 생성
  • 모터에 가변 속도 제어를 제공합니다.
  • 리모컨의 적외선 LED를 구동하기 위해 변조 된 신호를 생성합니다.

작동 방식 :

PWM 핀은 약 490Hz의 속도로 핀을 자동으로 전환하는 온칩 타이머로 제어됩니다. "펄스 폭 변조"(PWM)는 해당 주파수의 단일 사이클 동안 핀이 켜져 있거나 꺼져있는 시간입니다. 이렇게하면 LED의 밝기가 이전과 같이 절반으로 줄어드는 현상이 발생하여 LED가 어두워 질 수 있습니다. Image of different duty cycles.

듀티 사이클이 25 % 일 때는 1/4입니다. LED를 사용한 경우 약 1/4 정도 밝게 표시됩니다 [제공 또는 가져 오기]. (참고 : 일부 사람들이 지적했듯이 이것은 실제로 비례하지는 않지만 단순성을 위해이 방법으로 남겨 두십시오. EX : 25 %가 항상 1/4의 밝기는 아닙니다.)

(실제로 전기에 정통한 경우 커패시터를 추가하여 아날로그 출력으로 만들 수도 있습니다.)


이 핀을 사용하여 출력하는 방법 :

먼저 핀을 출력으로 정의해야합니다. 그런 다음 analogWrite(ledPin, 128); 시작하는 데 사용 합니다. 은 ledPin당신이 PWM을 시작하고 싶은 것을 PWM 핀이다 128사이의 숫자로 대체해야 0하고 255, 0: 0% duty cycle(핀을 완전히 끕니다) 및 255: 100% duty cycle. (핀을 완전히 켭니다)

출처 : http://www.arduino-tutorials.com/arduino-pwm/


코드에서 조명을 켜고 끌 수없는 이유는 무엇입니까? :

그러나 기술적으로 몇 가지 문제가있을 수 있습니다.

  • Arduino에서 고정 배선 회로를 사용하는 것만 큼 정확하지 않을 수 있습니다
  • 많은 "if"문을 사용하는 대신 명령을 입력하는 것이 더 간단합니다.

Arduino의 유일한 목적이 PWM 신호를 생성하는 것이라면 실제로 큰 차이를 만들지는 않을 것입니다. 그러나 주 루프에 50MS보다 긴 지연을 설정하면 타이밍이 엉망이됩니다. 소프트웨어 접근 방식을 사용하면 Arduino가 하나의 스레드에서만 실행되므로 한 번에 한 가지 작업 만 수행 할 수 있으므로 "지연"기능을 제거하려고합니다. 당신이하고있는 일을 안다면, 빛을 어둡게하는 데 큰 차이가 생기지 않지만 PWM이있는 여분의 핀이 있다면 소프트웨어 접근 방식으로 시간을 낭비하고 있습니다.


다른 사람들이 지적했듯이 :

전류와 전압을 제한하려면 회로에 대한 저항이 여전히 필요합니다. 이것을 건너 뛸 수 없습니다.


1
나는 "가공 능력"(혹은 그 구절이 의미하는 바에 따라)이 무엇을 의미하는지 전혀 모른다. PWM은 실행 코드와 독립적으로 실행되는 타이머에 의해 트리거되기 때문에 작동합니다.
baldengineer

@ JamesC4S 지연을 추가하고 "켜기"와 "끄기"가되면 전체 코드가 느려집니다. 프로세서는 과열되기 전에 초당 너무 많은 작업을 수행 할 수 있으므로 속도를 제어합니다.
익명 펭귄

@AnnonomusPerson 당신은 당신이주는 답변에 훨씬 더 명확해야합니다. 나는 아직도 당신의 설명이 "가공 능력"과 어떤 관련이 있는지 알지 못합니다. 예를 들어 millis ()를 사용하여 delay ()를 사용하지 않는 PWM 루틴을 작성할 수 있습니다.이 루틴은 나머지 코드의 실행 속도에 최소한의 영향을 미칩니다.
baldengineer

1
@AnnonomusPerson : 코드에서 PWM을 구현하는 두 가지 방법이 있다고 말할 것입니다. 하나는 프로세서가 종료 시점을 결정하는 것 외에는 아무것도하지 않는 루프에서 PWM을 수행하도록 할 수 있거나 타이머 틱 인터럽트를 가질 수 있습니다 PWM을 수행하십시오. 전자의 경우에는 PWM이 발생하는 동안 프로세서가 다른 작업을 수행 할 수 없습니다. 후자의 경우 PWM 타이밍의 정확도와 정밀도에 한계가 있습니다. 하드웨어 PWM 회로를 사용하면 칩이 다른 일을하는 동안 마이크로 초 단위로 정확한 깨끗한 PWM 파형을 생성 할 수 있습니다.
supercat 2016 년

비전의 작동 방식으로 인해 1/4 DC (또는 다른 비율)의 LED가 반드시 전체 밝기의 해당 비율로 표시되는 것은 아닙니다.
Ignacio Vazquez-Abrams

7

PWM 핀에 대한 일반적인 오해는 PWM을 사용할 때 전류 제한 저항 (예 : LED)을 사용할 필요가 없다는 것입니다.

사실이 아닙니다. PWM 핀은 자동으로 켜지고 꺼지는 디지털 핀으로 생각해야합니다. 즉, 다른 핀과 동일한 고전압으로 이동합니다.

PWM과 함께 LED를 사용할 때는 여전히 전류 제한 저항을 사용해야합니다. PWM이있는 모터를 사용할 때는 트랜지스터를 사용해야합니다.


2
@AnnonomusPerson 아니요, 맞지 않습니다. 진정한 아날로그 출력이 있더라도 LED에 대한 전류 제한 기가 여전히 필요합니다. LED에는 정전압 소스가 아닌 정전류 소스가 필요합니다.
baldengineer

3
전류 제한 저항이 내장 된 LED를 얻을 수 있습니다. Maplin에서 LED를 요청했을 때 너무 실망했으며 12V에서 직접 실행되는 LED가 있다고 말했을 때 12V에서 LED를 실행할 수있는 적절한 저항이있었습니다. 그들은 AND 게이트 또는 무언가를 만들기 위해 하나의 패키지에 트랜지스터의 부하를 패키징 할 때까지 기다리십시오.
Andrew Morton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.