태그 보관물: digital-logic

digital-logic

일부 핀에 숫자 옆에`~`표시가있는 이유는 무엇입니까? 9, 6, 5,와 3.

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



답변

편하게 하다. 걱정마 이 핀들은 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이있는 여분의 핀이 있다면 소프트웨어 접근 방식으로 시간을 낭비하고 있습니다.


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

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


답변

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

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

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


답변