Apa cara cepat dan elegan untuk menghasilkan PWM tanpa Mikrokontroler untuk mengendalikan motor servo? Dengan potensiometer atau cara lain untuk mengontrol siklus tugas dengan periode perbaikan.
- maaf tentang kekacauan ini, saya ingin mengendalikan hobi servo.
Jawaban:
Saya merekomendasikan (GASP!) 555 Timer dalam mode "astable" . Anda akan menemukan semua yang Anda butuhkan di tautan, tetapi saya menyalinnya di sini hanya untuk Anda!
Mode astable memberi Anda frekuensi PWM variabel, dan memungkinkan untuk siklus tugas yang dapat disesuaikan juga (persamaan waktu tinggi dan waktu rendah dalam tautan).
Sirkuit:
Catatan: Saya akan menambahkan tutup elektrolitik di Vcc (timah positif) dan GND (timah negatif) untuk mengurangi efek penurunan tegangan listrik.
Frekuensi PWM:
Beberapa pembelaan untuk jawaban saya dibandingkan dengan yang lain di pos ini. Sebagian besar jawaban lain memerlukan bentuk gelombang menengah untuk menghasilkan sinyal PWM variabel, seperti metode gelombang segitiga / pembanding umum. Saya tidak melihat banyak gunanya dalam membangun generator gelombang segitiga (sirkuit signifikan di-dan-dari dirinya sendiri) hanya sebagai langkah perantara untuk menyelesaikan masalah Anda.
555 adalah chip analog yang hebat dan melakukan apa yang Anda butuhkan. Saya berharap orang-orang tidak membenci mereka juga.
sumber
Cara Ye Olde Phashioned untuk membuat PWM dengan siklus tugas yang dikontrol analog adalah dengan membandingkan sinyal kontrol analog dengan gelombang segitiga. Anda membuat generator gelombang segitiga yang beroperasi pada frekuensi PWM yang diinginkan. Ini diumpankan ke input negatif komparator dan sinyal kontrol analog ke input positif. Hasilnya adalah penuh tinggi atau penuh rendah, tetapi siklus tugas sebanding secara linear dengan sinyal kontrol. Amp audio kelas D bekerja pada prinsip ini, misalnya.
Dalam banyak kasus, PWM tidak perlu super linier, sehingga gelombang segitiga tidak harus memiliki tepi lurus sempurna. Mengizinkan mereka sedikit eksponensial dapat menyederhanakan sirkuit.
Ditambahkan:
Mark Rages menunjukkan bahwa ketika Anda mengatakan "motor servo", Anda bisa merujuk pada motor hobi yang dikendalikan oleh posisi kecil yang digunakan pada pesawat model dan sejenisnya. Jawaban saya berlaku untuk mengendalikan motor dengan asumsi Anda memiliki tegangan analog sebanding dengan seberapa keras Anda ingin menggerakkan motor. Itu tidak berlaku untuk "hobi hobi" ini. Mereka tidak dikendalikan oleh PWM dalam pengertian umum dari istilah itu, tetapi oleh lebar pulsa yang biasanya perlu dari 1 hingga 2 ms diulang setiap 20 hingga 50 ms atau lebih. Jika pertanyaan ini benar-benar tentang hobi hobi, maka itu harus diperbaiki untuk membuatnya menjadi jelas.
sumber
Gelombang segitiga. Pembanding. Ambang kontrol. Itulah cara dasar untuk melakukannya.
Pertama menghasilkan gelombang persegi 50Hz. Cara paling sederhana:
Saya bisa melakukan ini dengan dua LM555, tetapi saya membutuhkan lebih banyak komponen eksternal.
sunting (tentang mikrokontroler)
Saya setuju dengan Olin (lihat komentar) bahwa mengecualikan mikrokontroler adalah rabun (Olin berkata "konyol"). Ada waktu ketika mengembangkan untuk mikrokontroler rumit, tetapi hari ini itu tidak lagi benar. Anda juga dapat memiliki antarmuka pemrograman dengan biaya beberapa euro. Solusinya kemudian akan terlihat sangat mudah sehingga tidak ada solusi non-controller yang dapat bersaing dengannya: Anda mengambil ATTiny5 (Olin mengambil PIC10F220) dalam SOT23-6. Hubungkan kapasitor decoupling ke koneksi daya dan potmeter ke input ADC. Itu dia! 3 (tiga) komponen. Mengkonversi pembacaan ADC ke output lebar pulsa sangat mudah sehingga hampir konyol, bahkan untuk programmer pemula.
Setelah Anda mulai dengan mereka, Anda akan menemukan bahwa mikrokontroler sering menawarkan solusi yang lebih sederhana dan lebih fleksibel daripada dengan IC lain atau komponen diskrit.
catatan
Dari pertanyaan Anda yang lain saya melihat bahwa Anda lakukan menggunakan mikrokontroler. Mengapa Anda ingin menghindarinya di sini?
sumber
Cara paling sederhana untuk menghasilkan sinyal PWM adalah memberi makan gelombang gigi gergaji atau gelombang segitiga ke dalam satu input komparator analog dan tegangan kontrol ke input lainnya. Jika seseorang tidak bisa mendapatkan gelombang segitiga murni, orang mungkin bisa memperkirakannya dengan melewatkan gelombang persegi melalui filter RC sehingga output dari filter berayun antara kira-kira 1 / 4VDD dan 3 / 4VDD, dan kemudian menskalakan tegangan kontrol yang terjadi. ke dalam komparator sehingga tegangan kontrol yang menghasilkan siklus tugas 0,01% akan diterjemahkan ke tegangan terendah dari gelombang persegi disaring, dan tegangan kontrol yang harus menghasilkan siklus tugas 99,99% akan diterjemahkan ke tegangan tertinggi dari filter gelombang persegi. Ini akan menghasilkan lebar pulsa yang tidak cukup linier sebanding dengan amplitudo, tetapi cukup dekat untuk banyak tujuan.
sumber
Saya sarankan menggunakan IC kontrol catu daya bertegangan rendah (BiCMOS) seperti UCC3803 . Frekuensi operasi dapat dengan mudah diatur dengan R dan C sederhana, dan kontrol siklus tugas mudah dilakukan dengan potensiometer. Ini akan beroperasi pada rel 5V.
UCC3803 kompatibel dengan pin dengan seri UCx84x pengendali PWM. Jika Anda ingin melakukan PWM mudah, Anda dapat menggunakan skema di atas, menghilangkan R1, 2N2222 dan pot penyesuaian 5k ISENSE 5k (hanya ikat pin 3 ke ground). Anda mungkin juga dapat menghilangkan dua resistor 4.7k secara seri dengan pot kesalahan amp dan langsung menuju ke Vref dan Gnd, atau menggunakan pembagi tegangan eksplisit jika penyesuaian tidak diperlukan. (Anda tidak menentukan apakah Anda perlu dengan mudah mengubah siklus tugas).
IC ini mampu mengemudi di sekitar 1A saat ini. (Jika servomotor Anda memiliki input PWM, ini adalah titik moot.)
sumber