- Modulasi Lebar Nadi:
- Bahan Diperlukan
- Rajah Litar
- Kod dan Penjelasan
- Kawalan Kelajuan Motor DC menggunakan Arduino
Motor DC adalah motor yang paling banyak digunakan dalam projek Robotik dan elektronik. Untuk mengawal kelajuan motor DC kita mempunyai pelbagai kaedah, seperti kecepatan dapat dikawal secara automatik berdasarkan suhu tetapi dalam projek ini kaedah PWM akan digunakan untuk mengawal kelajuan motor DC. Di sini, dalam projek Arduino Motor Speed Control ini, kelajuan dapat dikawal dengan memutar tombol potensiometer.
Modulasi Lebar Nadi:
Apa itu PWM? PWM adalah teknik dengan menggunakan kita dapat mengawal voltan atau daya. Untuk memahaminya dengan lebih mudah, jika anda menggunakan 5 volt untuk menggerakkan motor maka motor akan bergerak dengan beberapa kelajuan, sekarang jika kita mengurangkan voltan yang diaplikasikan dengan 2 berarti kita menerapkan 3 volt pada motor maka kecepatan motor juga menurun. Konsep ini digunakan dalam projek untuk mengawal voltan menggunakan PWM. Kami telah menerangkan PWM secara terperinci dalam artikel ini. Periksa juga litar ini di mana PWM digunakan untuk mengawal kecerahan LED: 1 Watt LED Dimmer.
% Duty cycle = (TON / (TON + TOFF)) * 100 Di mana, T ON = Waktu TINGGI gelombang persegi T MATI = Masa rendah gelombang persegi
Sekarang jika suis dalam gambar ditutup secara berterusan dalam jangka masa tertentu, motor akan terus hidup pada waktu itu. Sekiranya suis ditutup selama 8ms dan dibuka selama 2ms selama satu kitaran 10ms, maka Motor akan ON hanya dalam masa 8ms. Sekarang terminal rata-rata melebihi jangka masa 10ms = Waktu AKTIF / (Waktu AKTIF + masa Mati), ini dipanggil kitaran tugas dan 80% (8 / (8 + 2)), jadi rata-rata voltan output akan menjadi 80% daripada voltan bateri. Sekarang mata manusia tidak dapat melihat bahawa motor dihidupkan selama 8ms dan dimatikan selama 2ms, jadi akan kelihatan seperti Motor DC berputar dengan kelajuan 80%.
Dalam kes kedua, suis ditutup selama 5ms dan dibuka selama 5ms dalam jangka masa 10ms, jadi voltan terminal rata-rata pada output akan menjadi 50% dari voltan bateri. Katakan jika voltan bateri 5V dan kitaran tugas adalah 50% dan voltan terminal purata akan menjadi 2.5V.
Dalam kes ketiga kitaran tugas adalah 20% dan voltan terminal purata adalah 20% daripada voltan bateri.
Kami telah menggunakan PWM dengan Arduino dalam banyak Projek kami:
- Dimmer LED Berasaskan Arduino menggunakan PWM
- Kipas Terkawal Suhu menggunakan Arduino
- DC Motor Control menggunakan Arduino
- AC Speed Speed Control menggunakan Arduino dan TRIAC
Anda boleh mengetahui lebih lanjut mengenai PWM dengan melalui pelbagai projek berdasarkan PWM.
Bahan Diperlukan
- Arduino UNO
- Motor DC
- Transistor 2N2222
- Potensiometer 100k ohm
- Kapasitor 0.1uF
- Papan roti
- Wayar Melompat
Rajah Litar
Gambarajah litar untuk Arduino DC Motor Speed Control menggunakan PWM terdapat di bawah:
Kod dan Penjelasan
Kod lengkap untuk Arduino DC Motor Control menggunakan potensiometer diberikan pada akhir.
Dalam kod di bawah, kami telah menginisialisasi pemboleh ubah c1 dan c2 dan menetapkan pin analog A0 untuk output potensiometer dan Pin ke- 12 untuk 'pwm'.
int pwmPin = 12; int pot = A0; int c1 = 0; int c2 = 0;
Sekarang, dalam kod di bawah, tetapkan pin A0 sebagai input dan 12 (yang merupakan pin PWM) sebagai output.
kekosongan persediaan () { pinMode (pwmPin, OUTPUT); // menyatakan pin 12 sebagai output pinMode (pot, INPUT); // menyatakan pin A0 sebagai input }
Sekarang, dalam gelung void (), kita membaca nilai analog (dari A0) menggunakan analogRead (pot), dan menyimpannya ke pemboleh ubah c2. Kemudian, tolak nilai c2 dari 1024 dan simpan hasilnya dalam c1. Kemudian buat pin PWM ke- 12 Arduino TINGGI dan kemudian setelah penundaan nilai c1 buat pin itu RENDAH. Sekali lagi, setelah penundaan nilai c2, gelung berterusan
Sebab untuk mengurangkan nilai Analog dari 1024 adalah, Arduino Uno ADC mempunyai resolusi 10-bit (jadi nilai integer dari 0 - 2 ^ 10 = 1024 nilai). Ini bermaksud bahawa ia akan memetakan voltan input antara 0 dan 5 volt menjadi nilai integer antara 0 dan 1024. Oleh itu, jika kita mengalikan input anlogValue menjadi (5/1024), maka kita mendapat nilai digital voltan input. Ketahui di sini cara menggunakan input ADC di Arduino.
gelung void () { c2 = analogRead (pot); c1 = 1024-c2; digitalWrite (pwmPin, TINGGI); // set pin 12 kelewatan TINGGIMikrodetik (c1); // menunggu c1 uS (masa tinggi) digitalWrite (pwmPin, RENDAH); // set pin 12 kelewatan RENDAHMikrodetik (c2); // menunggu c2 uS (masa rendah) }
Kawalan Kelajuan Motor DC menggunakan Arduino
Dalam litar ini, untuk mengawal kelajuan motor DC, kita menggunakan potensiometer 100K ohm untuk mengubah kitaran tugas isyarat PWM. Potensiometer 100K ohm disambungkan ke pin input analog A0 dari Arduino UNO dan motor DC disambungkan ke pin ke- 12 Arduino (yang merupakan pin PWM). Pengoperasian program Arduino sangat sederhana, kerana ia membaca voltan dari pin analog A0. Voltan pada pin analog diubah dengan menggunakan potensiometer. Setelah melakukan beberapa pengiraan yang diperlukan, kitaran tugas disesuaikan mengikutnya.
Sebagai contoh, jika kita memasukkan nilai 256 ke input analog, maka waktu TINGGI adalah 768ms (1024-256) dan masa RENDAH adalah 256ms. Oleh itu, ini bermaksud kitaran tugas adalah 75%. Mata kita tidak dapat melihat ayunan frekuensi tinggi seperti itu dan sepertinya motor terus hidup dengan 75% kelajuan. Oleh itu, bagaimana kita dapat melakukan Motor Speed Control menggunakan Arduino.