- Modulasi Lebar Pulsa:
- Material Diperlukan
- Diagram Sirkuit
- Kode dan Penjelasan
- Kontrol Kecepatan Motor DC menggunakan Arduino
Motor DC adalah motor yang paling banyak digunakan dalam proyek Robotika dan elektronik. Untuk mengontrol kecepatan motor DC kami memiliki berbagai metode, seperti kecepatan dapat diatur secara otomatis berdasarkan temperatur, namun dalam proyek ini metode PWM akan digunakan untuk mengontrol kecepatan motor DC. Di sini, di proyek Arduino Motor Speed Control ini, kecepatan dapat dikontrol dengan memutar kenop potensiometer.
Modulasi Lebar Pulsa:
Apa itu PWM? PWM adalah teknik dengan menggunakan kita dapat mengontrol tegangan atau daya. Untuk memahaminya lebih sederhana, jika Anda menerapkan 5 volt untuk menggerakkan motor maka motor akan bergerak dengan beberapa kecepatan, sekarang jika kita mengurangi tegangan yang diterapkan sebesar 2 berarti kita menerapkan 3 volt ke motor maka kecepatan motor juga berkurang. Konsep ini digunakan dalam proyek untuk mengontrol tegangan menggunakan PWM. Kami telah menjelaskan PWM secara detail di artikel ini. Periksa juga rangkaian ini di mana PWM digunakan untuk mengontrol kecerahan LED: LED Dimmer 1 Watt.
% Siklus kerja = (TON / (TON + TOFF)) * 100 Dimana, T ON = waktu HIGH gelombang persegi T OFF = waktu RENDAH gelombang persegi
Sekarang jika sakelar pada gambar ditutup terus menerus selama periode waktu tertentu maka motor akan terus ON selama waktu itu. Jika sakelar ditutup selama 8ms dan dibuka selama 2ms selama siklus 10ms, maka Motor akan ON hanya dalam waktu 8ms. Sekarang rata-rata terminal selama periode 10ms = Turn ON time / (Turn ON time + Turn OFF time), ini disebut duty cycle dan 80% (8 / (8 + 2)), jadi rata-rata tegangan keluaran akan menjadi 80% dari tegangan baterai. Sekarang mata manusia tidak dapat melihat bahwa motor hidup selama 8ms dan mati selama 2ms, sehingga akan terlihat seperti Motor DC berputar dengan kecepatan 80%.
Dalam kasus kedua, sakelar ditutup selama 5ms dan dibuka selama 5ms selama 10ms, sehingga tegangan terminal rata-rata pada output akan menjadi 50% dari tegangan baterai. Katakanlah jika tegangan baterai adalah 5V dan duty cycle adalah 50% dan tegangan terminal rata-rata akan menjadi 2.5V.
Dalam kasus ketiga, duty cycle 20% dan tegangan terminal rata-rata 20% dari tegangan baterai.
Kami telah menggunakan PWM dengan Arduino di banyak Proyek kami:
- Dimmer LED Berbasis Arduino menggunakan PWM
- Kipas Kontrol Suhu menggunakan Arduino
- Kontrol Motor DC menggunakan Arduino
- Kontrol Kecepatan Kipas AC menggunakan Arduino dan TRIAC
Anda dapat mempelajari lebih lanjut tentang PWM dengan melalui berbagai proyek berdasarkan PWM.
Material Diperlukan
- Arduino UNO
- Motor DC
- Transistor 2N2222
- Potensiometer 100k ohm
- Kapasitor 0.1uF
- Papan tempat memotong roti
- Melompat Kabel
Diagram Sirkuit
Diagram rangkaian Pengatur Kecepatan Motor DC Arduino menggunakan PWM adalah sebagai berikut:
Kode dan Penjelasan
Kode lengkap untuk Arduino DC Motor Control menggunakan potensiometer diberikan di bagian akhir.
Pada kode di bawah ini, kami telah menginisialisasi variabel 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, pada kode di bawah ini, setting pin A0 sebagai input dan 12 (yang merupakan pin PWM) sebagai output.
batal penyiapan () { pinMode (pwmPin, OUTPUT); // mendeklarasikan pin 12 sebagai output pinMode (pot, INPUT); // mendeklarasikan pin A0 sebagai input }
Sekarang, dalam void loop (), kita membaca nilai analog (dari A0) menggunakan analogRead (pot), dan menyimpannya ke variabel c2. Kemudian, kurangi nilai c2 dari 1024 dan simpan hasilnya di c1. Kemudian buat pin PWM ke- 12 dari Arduino HIGH dan kemudian setelah penundaan nilai c1 buat pin itu LOW. Sekali lagi, setelah penundaan nilai c2, loop berlanjut.
Alasan pengurangan nilai Analog dari 1024 adalah, Arduino Uno ADC memiliki resolusi 10-bit (jadi nilai integer dari nilai 0 - 2 ^ 10 = 1024). Ini berarti akan memetakan tegangan input antara 0 dan 5 volt menjadi nilai integer antara 0 dan 1024. Jadi jika kita mengalikan input anlogValue menjadi (5/1024), maka kita mendapatkan nilai digital dari tegangan input. Pelajari di sini cara menggunakan input ADC di Arduino.
void loop () { c2 = analogRead (pot); c1 = 1024-c2; digitalWrite (pwmPin, TINGGI); // set pin 12 HIGH delayMicroseconds (c1); // menunggu c1 uS (waktu tinggi) digitalWrite (pwmPin, LOW); // setel pin 12 LOW delayMicroseconds (c2); // menunggu c2 uS (waktu sepi) }
Kontrol Kecepatan Motor DC menggunakan Arduino
Pada rangkaian ini, untuk mengontrol kecepatan motor DC, kami menggunakan potensiometer 100K ohm untuk mengubah duty cycle dari sinyal PWM. 100K ohm potensiometer dihubungkan ke input pin A0 analog dari Arduino UNO dan motor DC terhubung ke 12 th pin Arduino (yang merupakan pin PWM). Cara kerja program Arduino sangat sederhana, yaitu membaca tegangan dari pin analog A0. Tegangan pada pin analog divariasikan dengan menggunakan potensiometer. Setelah melakukan beberapa perhitungan yang diperlukan, siklus tugas disesuaikan dengannya.
Misalnya, jika kita memasukkan nilai 256 ke input analog, maka waktu HIGH akan menjadi 768ms (1024-256) dan waktu LOW akan menjadi 256ms. Oleh karena itu, ini berarti duty cycle adalah 75%. Mata kita tidak bisa melihat osilasi frekuensi setinggi itu dan sepertinya motor terus menerus ON dengan kecepatan 75%. Jadi begitulah cara kita melakukan Kontrol Kecepatan Motor menggunakan Arduino.