Cách đơn giản nhất để tạo ra PWM mà không cần Vi điều khiển là gì?


15

Cách nhanh chóng và thanh lịch để tạo ra PWM mà không cần Vi điều khiển để điều khiển động cơ servo là gì? Với chiết áp hoặc các cách khác để kiểm soát chu kỳ nhiệm vụ với thời gian sửa chữa.

  • xin lỗi về sự lộn xộn, tôi muốn điều khiển một sở thích servo.

Bạn có thực sự muốn điều khiển một động cơ như là một phần của hệ thống điều khiển servo, hoặc bạn đang hỏi về việc điều khiển "servo sở thích"? Xem thêm vào câu trả lời của tôi.
Olin Lathrop

1
Tại sao bạn muốn PWM? PWM thường chỉ là một cách để vi mô xấp xỉ chức năng điều khiển analog. Nếu những gì bạn thực sự muốn là một điện áp tương tự hoặc hiện tại, có lẽ có nhiều cách tốt hơn để làm điều đó.
Photon

2
@ThePhoton Nếu anh ta điều khiển một servo sở thích, PWM là thứ được yêu cầu làm tín hiệu điều khiển.
Nick Johnson

Nếu bạn bỏ yêu cầu thời gian cố định, bộ tạo dao động delta-sigma sẽ là một giải pháp rất đơn giản. Tôi đã thấy các triển khai với một opamp duy nhất và một điện trở / tụ điện nhỏ. Điều này giả định rằng bạn không nói về RC-servo.
jippie

1
@jippie - Bộ tạo dao động delta-sigma là gì? Tôi biết một ADC delta-sigma cần một bộ tạo dao động, nhưng tôi luôn cho rằng đó là một điều phổ biến, vì nó không thực sự là một phần của chính bộ chuyển đổi.
stevenvh

Câu trả lời:


25

Tôi khuyên dùng Timer (GASP!) 555 ở chế độ "astable" . Bạn sẽ tìm thấy mọi thứ bạn cần trong liên kết, nhưng tôi đã sao chép chúng ở đây chỉ dành cho bạn!

Chế độ ổn định cung cấp cho bạn tần số PWM thay đổi và cũng cho phép điều chỉnh chu kỳ nhiệm vụ (phương trình thời gian cao và thời gian thấp trong liên kết).

Mạch:

Hẹn giờ 555, chế độ astable

Lưu ý: Tôi sẽ thêm một nắp điện phân trên Vcc (đạo trình dương) và GND (đạo trình âm) để giảm ảnh hưởng của điện áp cung cấp điện.

Tần số PWM:

Tần số đầu ra của bộ định thời 555 ở chế độ astable

Một số bảo vệ cho câu trả lời của tôi so với những người khác trong bài viết này. Hầu hết các câu trả lời khác yêu cầu dạng sóng trung gian để tạo tín hiệu PWM thay đổi, chẳng hạn như phương pháp so sánh / sóng tam giác phổ biến. Tôi không thấy nhiều điểm trong việc xây dựng bộ tạo sóng tam giác (một mạch quan trọng trong chính nó) chỉ là một bước trung gian để giải quyết vấn đề của bạn.

555 là một chip analog tuyệt vời và làm đúng những gì bạn cần. Tôi ước mọi người không ghét họ nhiều như vậy.


2
Tôi thích 555s, nhưng tôi nghĩ rằng @supercat đúng ở chỗ một chiếc 555 duy nhất sẽ không thể cung cấp cho bạn tín hiệu tỷ lệ thay đổi, tần số cố định. C được sạc qua R1 + R2 và thải qua R2. Nếu bạn tăng R2, bạn sẽ tăng cả thời gian bật và tắt, và do đó là khoảng thời gian. Nếu bạn tăng R1, bạn chỉ tăng thời gian, mà còn cả thời gian. Nếu bạn tăng C, bạn sẽ tăng tất cả các lần, kể cả khoảng thời gian. Bạn cần hai chiếc 555. Một, trong chế độ astable, sẽ xác định khoảng thời gian, kích hoạt một thứ hai, trong chế độ ổn định, sẽ xác định tỷ lệ nhiệm vụ.
Telaclavo

5
"Bạn sẽ tìm thấy mọi thứ bạn cần trong liên kết". Không. Đó không phải là cách thích hợp để trả lời. Cung cấp các chi tiết ở đây.
stevenvh

1
Tôi không ghét 555, tôi chỉ ước mọi người sẽ không coi chúng là giải pháp tốt nhất cho mọi thứ . Một chiếc 555 không phải là cách tốt nhất để điều khiển servo sở thích.
stevenvh

1
@Telaclavo - Bạn nói đúng; bạn không thể thay đổi chu kỳ nhiệm vụ và giữ tần số không đổi. Tuy nhiên, như WoutervanOoijen đề cập, bạn không cần tần số cố định cứng để chạy servo. Thay đổi chu kỳ nhiệm vụ có thể tạo ra khoảng 10-20% (ước tính sơ bộ) dao động trong tần số xung, đủ chính xác cho hầu hết các động cơ servo. Và một lần nữa, bạn không thực sự cần phải điều chỉnh chu kỳ nhiệm vụ để điều khiển dù sao đi nữa.
kevlar1818

2
@stevenvh Bạn cho tôi biết khi Wikipedia chết. Ngay cả nếu nó như vậy, như Dean đã trình bày với nhận xét của mình ở trên, thì chiếc 555 này rất phổ biến, thật khó để không tìm thấy một cuốn sách cũ, blog nhỏ hoặc trang web sở thích với thông tin về chúng.
kevlar1818

8

Cách thức Ye Olde Ph Fashioned để tạo ra PWM với chu kỳ nhiệm vụ được điều khiển tương tự là so sánh tín hiệu điều khiển analog với sóng tam giác. Bạn tạo một bộ tạo sóng tam giác chạy ở tần số PWM mong muốn. Điều này được đưa đến đầu vào âm của bộ so sánh và tín hiệu điều khiển tương tự đến đầu vào tích cực. Kết quả là mức cao hoàn toàn hoặc mức thấp hoàn toàn, nhưng chu kỳ nhiệm vụ tỷ lệ tuyến tính với tín hiệu điều khiển. Ampe âm thanh lớp D sớm làm việc theo nguyên tắc này, ví dụ.

Trong rất nhiều trường hợp, PWM không cần phải siêu tuyến tính, do đó sóng tam giác không cần phải có các cạnh hoàn toàn thẳng. Cho phép chúng là một số mũ có thể đơn giản hóa mạch.

Thêm:

Mark Rages chỉ ra rằng khi bạn nói "động cơ servo", bạn có thể đề cập đến các động cơ sở thích điều khiển vị trí nhỏ được sử dụng trên các mặt phẳng mô hình và tương tự. Câu trả lời của tôi áp dụng cho việc điều khiển một động cơ giả sử bạn có điện áp tương tự tỷ lệ thuận với mức độ bạn muốn lái xe máy. Nó không áp dụng cho các "sở thích sở thích". Những người không được điều khiển bởi PWM theo nghĩa thông thường của thuật ngữ đó, nhưng theo độ rộng của các xung thường cần từ 1 đến 2 ms lặp lại cứ sau 20 đến 50 ms hoặc lâu hơn. Nếu câu hỏi này thực sự là về sở thích, thì nó nên được sửa để làm rõ điều đó.


Mặc dù điều này không hoàn thành nhiệm vụ, nhưng điều quan trọng cần lưu ý là @pstan muốn lái một servo, và do đó, việc có một bộ tạo chức năng trong quá trình thực hiện của anh ta có thể sẽ không khả thi.
kevlar1818

1
Chu kỳ nhiệm vụ động cơ servo thường khá thấp, như 10% hoặc ít hơn. Và servo sử dụng độ rộng xung trực tiếp, không phải giá trị trung bình, vì vậy tốt hơn là sử dụng mạch tách riêng độ rộng xung khỏi tốc độ lặp lại.
đánh dấu

1
@kevlar: Tôi đã kiểm tra lại câu trả lời của mình và tôi vẫn không thấy đề cập đến một trình tạo hàm trong đó. Tất cả những gì tôi nói là bạn cần một sóng tam giác hoặc một cái gì đó đủ gần. Bạn chắc chắn không cần một trình tạo chức năng để tạo một trong số đó.
Olin Lathrop

@Markrages: Hả? Động cơ nhìn thấy trung bình của một mạch xung nếu nó đủ nhanh. Một vài 100 Hz là đủ tốt đối với hầu hết các động cơ. Phần servo được thực hiện theo sơ đồ điều khiển mà OP không hỏi về. Có vẻ như anh ta đã có một mức độ tương tự tỷ lệ thuận với việc động cơ được điều khiển cứng như thế nào.
Olin Lathrop

@Markrages: Điều này chỉ xảy ra với tôi rằng bạn đang nói về các sở thích sở thích, muốn có xung 1-2 ms mỗi 20 ms hoặc lâu hơn? Nhận xét của bạn có ý nghĩa gì đó trong ánh sáng đó, nhưng OP hoàn toàn không đề cập đến dịch vụ sở thích.
Olin Lathrop

7

Sóng tam giác. So sánh. Ngưỡng điều khiển. Đó là cách cơ bản để làm điều đó.

PP

enter image description here

Đầu tiên tạo ra sóng vuông 50Hz. Cách đơn giản nhất:

enter image description here

Ω

REXTCEXT

T= =REXT×CEXT

μΩ

ΩΩ

Tôi có thể đã làm điều này với hai LM555, nhưng tôi cần nhiều thành phần bên ngoài hơn.

chỉnh sửa (về vi điều khiển)
Tôi đồng ý với Olin (xem bình luận) rằng loại trừ vi điều khiển là thiển cận (Olin nói "ngớ ngẩn"). Đã có lúc việc phát triển cho một vi điều khiển rất phức tạp, nhưng ngày nay điều đó không còn đúng nữa. Bạn cũng có thể có một giao diện lập trình với một vài euro. Giải pháp sau đó trông dễ dàng đến mức không có giải pháp không phải bộ điều khiển nào có thể cạnh tranh với nó: bạn lấy ATTiny5 (Olin lấy PIC10F220) trong SOT23-6. Kết nối một tụ điện tách rời với các kết nối nguồn và potmeter với đầu vào ADC. Đó là nó! 3 (ba) thành phần. Chuyển đổi việc đọc ADC thành đầu ra độ rộng xung dễ đến mức gần như vô lý, ngay cả đối với một lập trình viên mới bắt đầu.

Khi bạn bắt đầu với chúng, bạn sẽ thấy rằng các bộ vi điều khiển thường cung cấp một giải pháp đơn giản và linh hoạt hơn so với các IC hoặc các thành phần riêng biệt khác.

một lưu ý
Từ câu hỏi khác của bạn tôi thấy rằng bạn sử dụng vi điều khiển. Tại sao bạn muốn tránh chúng ở đây?


Cách để có được một sóng tam giác là gì?
m.Alin

1
@ m.Alin - Nếu bạn muốn một tam giác rất sạch thì đây là cách thích hợp. Nhưng đầu vào biến tần trong bộ dao động của tôi cũng xấp xỉ một hình tam giác, mặc dù độ dốc thực sự là số mũ.
stevenvh

1
nói tại địa phương, 555 rẻ hơn 74HCT1G14 tại đây. +1 BTW. \
Sandun tiêu chuẩn

3
@stevenvh "Nếu bạn muốn có một hình tam giác rất sạch thì đây là cách thích hợp." Theo logic của bạn, điều này là hoàn toàn không thể chấp nhận. Vui lòng bao gồm điều này trong câu trả lời rất nhiều thông tin và đầy đủ của bạn.
kevlar1818

2
@pstan - Nếu thông số kỹ thuật của bạn không quá cao, có thể bạn sẽ sử dụng mạch 555. Nó không hoàn hảo: tần số thay đổi theo chu kỳ nhiệm vụ và điều khiển không tuyến tính. Bộ tạo tam giác + bộ so sánh giải quyết những nhược điểm đó.
stevenvh

4

Cách đơn giản nhất để tạo tín hiệu PWM là đưa sóng răng cưa hoặc sóng tam giác vào một đầu vào của bộ so sánh tương tự và điện áp điều khiển vào đầu kia. Nếu người ta không thể có được sóng tam giác thuần, người ta có thể ước chừng một cách hợp lý bằng cách truyền sóng vuông qua bộ lọc RC sao cho đầu ra của bộ lọc dao động trong khoảng 1 / 4VDD và 3 / 4VDD, sau đó điều chỉnh điện áp điều khiển đi vào bộ so sánh để điện áp điều khiển mang lại chu kỳ nhiệm vụ 0,01% sẽ được dịch thành điện áp thấp nhất của sóng vuông được lọc và điện áp điều khiển sẽ mang lại chu kỳ nhiệm vụ 99,99% sẽ được dịch sang điện áp cao nhất của bộ lọc sóng vuông. Điều này sẽ mang lại độ rộng xung không tỷ lệ tuyến tính với biên độ, nhưng đủ gần cho nhiều mục đích.


1
Và đây chính xác là những gì mạch NE555 thực hiện theo đề xuất của kevlar1818 ...
Cees Meijer

2
@CeesMeijer: Người đăng yêu cầu một chu kỳ nhiệm vụ thay đổi và thời gian cố định. Tôi không biết cách nào để sử dụng một 555 đơn lẻ để chuyển đổi điện áp điều khiển thành sóng chu kỳ nhiệm vụ biến tần số cố định. Mặc dù vậy, nó có thể phục vụ rất tốt để tạo ra sóng tam giác để đưa vào bộ so sánh.
supercat

Đã 20 năm kể từ khi tôi xây dựng mạch này, vì vậy tôi phải tìm kiếm nó. Và thực sự bạn đúng. Tôi đã sử dụng một kích hoạt bên ngoài để có được một tần số không đổi. Bạn có thể sử dụng một 555 thứ hai cho điều đó mặc dù.
Cees Meijer

2

Tôi khuyên bạn nên sử dụng IC điều khiển cấp nguồn điện áp thấp (BiCMOS) như UCC3803 . Tần số hoạt động có thể dễ dàng được thiết lập với R và C đơn giản, và điều khiển chu kỳ nhiệm vụ dễ dàng thực hiện với chiết áp. Nó sẽ hoạt động trên đường ray 5V.

excerpt from TI UC3842 data sheet

UCC3803 tương thích pin với loạt bộ điều khiển PWM UCx84x. Nếu bạn muốn thực hiện dễ dàng PWM, bạn có thể sử dụng sơ đồ trên, bỏ qua R1, nồi điều chỉnh 2N2222 và 5k ISENSE (chỉ cần buộc chân 3 xuống đất). Bạn có thể cũng có thể bỏ qua hai điện trở 4,7k nối tiếp với nồi điều chỉnh amp lỗi và trực tiếp đến Vref và Gnd hoặc sử dụng bộ chia điện áp rõ ràng nếu không cần điều chỉnh. (Bạn không chỉ định nếu bạn cần dễ dàng thay đổi chu kỳ nhiệm vụ).

IC có khả năng lái khoảng 1A dòng điện. (Nếu động cơ servo của bạn có đầu vào PWM, đây là điểm di chuyển.)


"Có thể cần một trình điều khiển bên ngoài để thực sự cung cấp năng lượng cho động cơ". Bạn có chắc không? Tôi luôn nghĩ rằng đầu vào PWM chỉ là mức tín hiệu dòng điện thấp. Đối với nguồn điện, servo có kết nối thứ ba.
stevenvh

Ngoài ra, tôi chỉ nhớ chu kỳ thuế chỉ là 5 đến 10%. Đó có thể là cách thích hợp để cung cấp năng lượng.
stevenvh

Cái này đẹp đấy. Nhưng vẫn còn rất nhiều thành phần bên ngoài.
Sandun tiêu chuẩn

Trông giống như một UEMIG: Trình tạo EMI không cần thiết. :-(
stevenvh

Nó cũng có vẻ cần một đầu vào tối thiểu 10V. Có lẽ không phải là sự lựa chọn tốt nhất ...
stevenvh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.