마이크로 컨트롤러없이 PWM을 생성하는 가장 간단한 방법은 무엇입니까?


15

서보 모터를 제어하기 위해 마이크로 컨트롤러없이 PWM을 생성하는 빠르고 우아한 방법은 무엇입니까? 전위차계 또는 고정 기간으로 듀티 사이클을 제어하는 ​​다른 방법.

  • 혼란에 대해 죄송합니다. 취미 서보를 제어하고 싶습니다.

서보 제어 시스템의 일부로 모터를 제어한다는 의미입니까, 아니면 "취미 서보"제어를 요구합니까? 내 답변 이외에도 참조하십시오.
Olin Lathrop

1
왜 PWM을 원하십니까? PWM은 종종 마이크로가 아날로그 제어 기능에 근접하는 방법 일뿐입니다. 실제로 원하는 것이 아날로그 전압 또는 전류라면 훨씬 더 좋은 방법이 있습니다.
광자

2
@ThePhoton 그가 취미 서보를 제어하는 ​​경우, 제어 신호로 PWM이 필요합니다.
Nick Johnson

고정 기간 요구 사항을 삭제하면 델타 시그마 발진기가 매우 간단한 솔루션입니다. 단일 opamp와 소수의 저항 / 커패시터를 사용한 구현을 보았습니다. 이것은 당신이 RC-servo에 대해 이야기하고 있지 않다고 가정합니다.
jippie

1
@jippie-델타 시그마 발진기는 무엇입니까? 델타-시그마 ADC에는 발진기가 필요하다는 것을 알고 있지만, 실제로는 컨버터 자체의 일부가 아니기 때문에 항상 일반적인 것으로 가정했습니다.
stevenvh

답변:


25

"astable"모드에서 (GASP!) 555 Timer를 권장 합니다 . 링크에서 필요한 모든 것을 찾을 수 있지만 여기에 당신을 위해 복사했습니다!

불안정 모드는 가변 PWM 주파수를 제공하며 듀티 사이클을 조정할 수 있습니다 (링크의 상한 및 하한 등식).

회로 :

555 Timer, astable mode

참고 : Vcc (positive lead)와 GND (negative lead)에 전해 캡을 추가하여 전원 공급 장치 전압 강하 효과를 줄입니다.

PWM 주파수 :

Output frequency of 555 Timer in astable mode

이 게시물의 다른 답변과 비교하여 내 대답에 대한 일부 방어. 대부분의 다른 답변에는 일반적인 삼각파 / 비교기 방법과 같은 가변 PWM 신호를 생성하기 위해 중간 파형이 필요합니다. 나는 삼각파 발생기 (중요한 회로 자체)를 문제를 해결하기위한 중간 단계로 구성 할 때 많은 요점을 보지 못합니다.

555는 훌륭한 아날로그 칩이며 필요한 기능 만 수행합니다. 나는 사람들이 그들을 싫어하지 않았 으면 좋겠다.


2
나는 555s를 좋아하지만 @supercat은 단일 555가 고정 주파수, 가변 듀티 비 신호를 줄 수 없다는 점에서 옳다고 생각합니다. C는 R1 + R2를 통해 충전되고 R2를 통해 방전됩니다. R2를 늘리면 켜기 및 끄기 시간과 기간이 증가합니다. R1을 늘리면 켜짐 시간뿐만 아니라 기간도 증가합니다. C를 늘리면 마침표를 포함하여 모든 시간이 늘어납니다. 두 개의 555가 필요합니다. 하나는 불안정 모드에서 듀티 비를 결정하는 단 안정 모드에서주기를 결정하고주기를 결정합니다.
Telaclavo

5
"링크에 필요한 모든 것을 찾을 수 있습니다". 아니요. 올바른 답변 방법이 아닙니다. 여기에 세부 사항을 제공하십시오.
stevenvh

1
나는 555를 싫어하지 않는다. 단지 사람들이 모든 것을 위한 최상의 솔루션 으로 언급하지 않기를 바란다 . 하나의 555가 취미 서보를 제어하는 ​​가장 좋은 방법은 아닙니다.
stevenvh

1
@Telaclavo-맞습니다; 듀티 사이클을 변경하거나 주파수를 일정하게 유지할 수 없습니다. 그러나 WoutervanOoijen이 언급했듯이 서보를 작동하기 위해 고정 주파수가 필요하지 않습니다. 듀티 사이클을 변경하면 펄스 주파수에서 약 10-20 % (대략 추정치)의 워블이 발생하며 이는 대부분의 서보에 대해 충분히 정확해야합니다. 그리고 다시, 서보를 제어하기 위해 듀티 사이클을 조정할 필요가 없습니다.
kevlar1818

2
@stevenvh 위키 백과가 언제 죽는 지 알려주세요. 그럼에도 불구하고 Dean이 위에서 언급 한 것처럼 555는 (보통) 너무나 편재되어 있기 때문에 오래된 책, 작은 블로그 또는 취미 웹 사이트를 찾지 못하는 것은 어렵습니다.
kevlar1818

8

아날로그 제어 듀티 사이클로 PWM을 만드는 Ye Olde Phashioned 방법은 아날로그 제어 신호를 삼각파와 비교하는 것입니다. 원하는 PWM 주파수에서 실행되는 삼각파 발생기를 만듭니다. 이것은 비교기의 네거티브 입력에 공급되고 아날로그 제어 신호는 포지티브 입력에 공급됩니다. 결과는 완전 최고 또는 완전 저이지만 듀티 사이클은 제어 신호에 선형 비례합니다. 예를 들어 초기 클래스 D 오디오 앰프가이 원리에 따라 작동했습니다.

많은 경우에, PWM은 수퍼 선형 일 필요가 없으므로, 삼각파는 완벽한 직선 모서리를 가질 필요는 없습니다. 그것들을 조금 지수화하면 회로를 단순화 할 수 있습니다.

추가 :

Mark Rages는 "서보 모터"라고 말할 때 모델 비행기 등에 사용되는 위치 제어형 취미 모터를 언급 할 수 있다고 지적했습니다. 내 대답은 모터를 얼마나 열심히 운전하고 싶은지에 비례하는 아날로그 전압이 있다고 가정하면 모터를 제어하는 ​​데 적용됩니다. 이 "취미 서보"에는 적용되지 않습니다. 그것들은 그 용어의 상식으로 PWM에 의해 제어되는 것이 아니라 일반적으로 20에서 50ms 정도마다 반복되는 1-2ms의 펄스 폭에 의해 제어됩니다. 이 질문이 실제로 취미 서보에 관한 것이라면 그것을 명확히하기 위해 수정해야합니다.


이것이 작업을 수행하는 동안 @pstan은 서보를 구동하기를 원하므로 구현에 함수 발생기가 있으면 이식성이 떨어질 것입니다.
kevlar1818

1
서보 모터 듀티 사이클은 일반적으로 10 % 이하와 같이 상당히 낮습니다. 또한 서보는 평균값이 아닌 펄스 폭을 직접 사용하므로 반복 폭에서 펄스 폭을 분리하는 회로를 사용하는 것이 좋습니다.
markrages

1
@ kevlar : 내 대답을 다시 확인했지만 여전히 거기에 함수 발생기에 대한 언급이 없습니다. 내가 말했듯이 당신은 삼각파 또는 충분히 가까운 것이 필요하다는 것입니다. 그중 하나를 만들기 위해 함수 발생기가 필요하지 않습니다.
Olin Lathrop

@Markrages : 응? 모터는 펄스 트레인이 충분히 빠르면 평균을 봅니다. 대부분의 모터에 대해서는 몇 100Hz로 충분합니다. 서보 부분은 OP가 요구하지 않은 제어 체계에 의해 달성됩니다. 그는 모터가 얼마나 힘들게 구동되는지에 비례하는 아날로그 레벨을 이미 가지고있는 것 같습니다.
Olin Lathrop

@ Markrages : 20ms마다 1-2ms 펄스를 원하는 취미 서보에 대해 이야기하는 것이 나에게 발생했습니다. 귀하의 의견은 그 의미에서 의미가 있지만 OP는 취미 서보를 전혀 언급하지 않았습니다.
Olin Lathrop

7

삼각파. 비교기. 제어 임계 값. 이것이 기본적인 방법입니다.

PP

여기에 이미지 설명을 입력하십시오

먼저 50Hz 구형파를 생성하십시오. 가장 간단한 방법 :

여기에 이미지 설명을 입력하십시오

Ω 저항과 100nF 커패시터는 20ms의주기를 제공합니다.

REXTCEXT

T=REXT×CEXT

μΩ

ΩΩ

두 개의 LM555로이 작업을 수행 할 수 있었지만 더 많은 외부 구성 요소가 필요했습니다.

편집 (마이크로 컨트롤러에 대해)
나는 마이크로 컨트롤러 를 제외하면 근시안적이라고 Olin에 동의합니다 (설명 참조). 마이크로 컨트롤러를위한 개발이 복잡했던시기가 있었지만 오늘날에는 더 이상 사실이 아닙니다. 몇 유로에 대한 프로그래밍 인터페이스를 가질 수도 있습니다. 이 솔루션은 컨트롤러가 아닌 솔루션과 경쟁 할 수 없을 정도로 쉬워 보일 것 입니다. SOT23-6에서 ATTiny5 (Olin은 PIC10F220을 사용함 )를 사용합니다. 디커플링 커패시터를 전원 연결부에 연결하고 전위계를 ADC 입력에 연결하십시오. 그게 다야! 3 개의 구성 요소. ADC 판독 값을 펄스 폭 출력으로 변환하는 것은 매우 쉬워 초보자를위한 프로그래머라도 거의 어리 석습니다.

일단 시작하면 마이크로 컨트롤러가 종종 다른 IC 나 개별 부품보다 더 간단하고 유연한 솔루션을 제공한다는 것을 알게 될 것입니다.

참고
다른 질문에서 나는 당신 마이크로 컨트롤러를 사용 하는 것을 본다 . 왜 여기를 피하고 싶습니까?


삼각파를 얻는 방법은 무엇입니까?
m.Alin

1
@ m.Alin-매우 깨끗한 삼각형을 원한다면 이것이 올바른 방법입니다. 그러나 경사가 실제로 지수이지만 내 발진기의 인버터 입력도 삼각형에 가깝습니다.
stevenvh

1
현지에서 말하면 555는 74HCT1G14보다 저렴합니다. +1 BTW. \
표준 Sandun

3
@stevenvh "매우 깨끗한 삼각형을 원한다면 이것이 올바른 방법입니다." 당신의 논리에 따르면 이것은 완전히 받아 들일 수 없습니다. 유익하고 완전한 답변에 이것을 포함 시키십시오.
kevlar1818

2
@pstan-사양이 너무 높지 않으면 555 회로를 사용했을 것입니다. 주파수는 듀티 사이클에 따라 다르며 제어는 선형 적이 지 않습니다. 삼각형 발생기 + 비교기는 이러한 문제점을 해결한다.
stevenvh

4

PWM 신호를 생성하는 가장 간단한 방법은 톱니파 또는 삼각파를 아날로그 비교기의 한 입력에 공급하고 제어 전압을 다른 입력에 공급하는 것입니다. 순수한 삼각파를 얻을 수 없다면 RC 필터를 통해 구형파를 통과시켜 필터의 출력이 대략 1 / 4VDD와 3 / 4VDD 사이에서 스윙 한 다음 제어 전압의 스케일링 0.01 % 듀티 사이클을 생성해야하는 제어 전압이 필터링 된 구형파의 최저 전압으로 변환되고 99.99 % 듀티 사이클을 생성해야하는 제어 전압이 필터링 된 최대 전압으로 변환되도록 비교기로 네모 난 파동. 이것은 진폭에 선형 적으로 비례하지 않지만 많은 목적을 위해 충분히 가까운 펄스 폭을 생성합니다.


1
이것이 바로 kevlar1818이 제안한 NE555 회로의 기능입니다.
Cees Meijer

2
@CeesMeijer : 포스터는 가변 듀티 사이클과 고정 기간을 요청했습니다. 제어 전압을 고정 주파수 가변 듀티 사이클 웨이브로 변환하기 위해 단일 555를 사용하는 방법을 모르겠습니다. 그래도 비교기에 공급하기 위해 삼각형 모양의 파도를 생성하는 것이 매우 좋습니다.
supercat

이 회로를 만든 지 20 년이 지났으므로 이것을 찾아야했습니다. 그리고 당신이 옳습니다. 일정한 주파수를 얻기 위해 외부 트리거를 사용했습니다. 그래도 두 번째 555를 사용할 수 있습니다.
Cees Meijer

2

UCC3803 과 같은 저전압 (BiCMOS) 전원 공급 장치 제어 IC를 사용하는 것이 좋습니다 . 간단한 R 및 C로 작동 주파수를 쉽게 설정할 수 있으며 포텐쇼미터로 듀티 사이클 제어를 쉽게 수행 할 수 있습니다. 5V 레일에서 작동합니다.

TI UC3842 데이터 시트에서 발췌

UCC3803은 UCx84x 계열 PWM 컨트롤러와 핀 호환됩니다. 쉬운 PWM을 원한다면 R1, 2N2222 및 5k ISENSE 조정 포트를 생략하고 위의 회로도를 사용할 수 있습니다 (단지 핀 3을 접지에 연결). 오차 증폭기 조정 포트와 직렬로 연결된 2 개의 4.7k 저항을 생략하고 Vref 및 Gnd로 직접 이동하거나 조정이 필요하지 않은 경우 명시 적 전압 분배기를 사용할 수도 있습니다. 듀티 사이클을 쉽게 변경해야하는지 여부를 지정하지 않았습니다.

IC는 약 1A의 전류를 구동 할 수 있습니다. (서보 모터에 PWM 입력이있는 경우이 점이 문제입니다.)


"실제로 모터에 전원을 공급하려면 외부 드라이버가 필요할 수 있습니다". 확실합니까? 나는 항상 PWM 입력이 저 전류 신호 레벨이라고 생각했습니다. 전원 공급을 위해 서보에는 세 번째 연결이 있습니다.
stevenvh

또한 듀티 사이클이 5-10 %에 불과하다는 것을 기억합니다. 그것은 전원을 공급하는 올바른 방법 일 수 있습니다.
stevenvh

이거 좋다. 그러나 여전히 많은 외부 구성 요소를 계산합니다.
표준 Sandun

UEMIG : 불필요한 EMI 생성기처럼 보입니다. :-(
stevenvh

또한 최소 10V 입력이 필요한 것 같습니다. 어쩌면 최선의 선택 ...
stevenvh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.