PWM, ADC, dan Interrupt
PWM (Pulse Width Modulation), ADC (Analog to Digital Converter), dan Interrupt merupakan fitur penting dalam mikrokontroler seperti Arduino Uno. PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi. ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan sampling dan resolusi. Interupsi adalah proses dalam sistem mikrokontroler yang menghentikan prosea program utama akibat terjadinya pemicu tertentu dari suatu sumber interupsi dan memaksa sistem mikrokontroler untuk mengeksekusi blok program layanan interupsi. Bila terjadi interupsi, mikroprosesor akan menghentikan dahulu apa yang sedang dikerjakannya dan mengerjakan permintaan khusus tersebut.
a) Memahami prinsip kerja PWM pada mikrokontroler
b) Memahami prinsip kerja ADC pada mikrokontroler
c) Memahamai prinsip Interupt pada mikrokontroler
d) Menggunakan PWM dan ADC pada Arduino
a) Modul Arduino
b) Motor DC
c) Servo
d) Stepper Motor
e) Driver Motor L293D
f) Seven Segment
g) Dipswitch
h) Keypad
i) Dot Matrix
j) Sensor Infrared
4. Dasar Teori [Kembali]
PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi.
Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).
Duty Cycle = tON / ttotal
tON = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (high atau 1)
tOFF = Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah (low atau 0)
ttotal = Waktu satu siklus atau penjumlahan antara tON dengan tOFF atau disebut juga dengan “periode satu gelombang”
Pada board Arduino Uno, pin yang bisa dimanfaatkan untuk PWM adalah pin yang diberi tanda tilde (~), yaitu pin 3, 5, 6, 9, 10, dan pin 11. Pin-pin tersebut merupakan pin yang bisa difungsikan untuk input analog atau output analog. Oleh sebab itu, jika akan menggunakan PWM pada pin ini, bisa dilakukan dengan perintah analogWrite();
PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255. Ketika kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt (pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika memberikan 25% dari 255 (1/4 * 255 atau 64), maka 1/4 siklus akan bernilai 5 volt, dan 3/4 sisanya akan bernilai 0 volt, dan ini akan terjadi 500 kali dalam 1 detik.
4.2 Analog to Digital Converter
ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan sampling dan resolusi.
Kecepatan sampling menyatakan seberapa sering perangkat mampu mengkonversi sinyal analog ke dalam bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam sample per second (SPS). Sementara Resolusi menyatakan tingkat ketelitian yang dimilliki.
Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 - 1023. Dan pada Arduino tegangan referensi yang digunakan adalah 5 volt, hal ini berarti ADC pada Arduino mampu menangani sinyal analog dengan tegangan 0 - 5 volt. Pada Arduino, menggunakan pin analog input yang diawali dengan kode A( A0- A5 padaArduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analogRead(pin);
4.3 Interupt
Interupsi adalah proses dalam sistem mikrokontroler yang menghentikan prosea program utama akibat terjadinya pemicu tertentu dari suatu sumber interupsi dan memaksa sistem mikrokontroler untuk mengeksekusi blok program layanan interupsi. Bila terjadi interupsi, mikroprosesor akan menghentikan dahulu apa yang sedang dikerjakannya dan mengerjakan permintaan khusus tersebut.
- Timer0, 8 bit, digunakan untuk function seperti delay(), millis(), dan micros(), dengan mengubah konfigurasi Timer0 akan mempengaruhi function lainnya
- Timer1, 16 bit, biasa digunakan untuk aplikasi terkait motor servo
- Timer2, 8 bit, function tone() menggunakan Timer2
- delay(), digunakan untuk tundaan eksekusi baris program selanjutnya dalam millisecond
- delayMicroseconds(), digunakan untuk tundaan eksekusi baris program selanjutnya dalam microseconds
- millis(), digunakan sebagai pewaktu internal yang (bila tanpa terminate bersyarat) akan terus berjalan hingga terjadi overflow (kembali ke nilai 0) dengan unit dalam millisecond, untuk board Arduino Uno nilai millis() akan terus berjalan hingga sekitar 50 hari
- micros(), digunakan sebagai pewaktu internal yang (bila tanpa terminate bersyarat) akan terus berjalan hingga terjadi overflow (kembali ke nilai 0) dengan unit dalam microsecond, untuk board Arduino Uno nilai millis() akan terus berjalan hingga sekitar 70 jam
- TCCRx (Timer/Conter Control Register), dengan x adalah nomor, berikut ini adalah register apa saja yang digunakan untuk timer.
- TCCRx (Timer/Conter Control Register), dimana prescaler dapat dikonfigurasi disini sekaligus mode operasi timer
- TCNTx (Timer/Counter Register), dimana nilai timer disimpan, merupakan register pencacah mulai dari 0 hingga nilai maximum
- OCRx (Output Compare Register), untuk membandingkan OCR yag diberikan dengan nilai TCNT
- ICRx (Input Capture Register), hanya tersedia untuk timer 16 bit, menerima data timer
- TIMSKx (Timer/Counter Interrupt Mask Register), digunakan untuk menjalankan atau mematikan timer interrupt
- TIFRx (Timer/Counter Interrupt Flag Register), menandakan timer interrupt hasil operasi timer
- Menentukan frekuensi pembagi, misal 2 Hz
- Mengetahui frekuensi kerja Arduino, yakni 16 MHz
- Mengetahui prescaler timer, 256 untuk 8 bit, 65536 untuk 16 bit
- Membagi nilai frekuensi kerja Arduino (16 MHz) dengan prescaler (256), hingga diperoleh hasil 62500
- Membagi hasil tersebut (62500) dengan frekuensi ditentukan (2 Hz), hingga diperoleh hasil 31250
- Memastikan bahwa hasil tersebut dapat digunakan dengan membandingkannya nilai maximum prescaler, bila nilai tersebut lebih kecil (dalam hal ini 31250 lebih kecil dari 65536), maka hasilnya tersebut valid, bila tidak valid gunakan nilai prescaler yang lebih besar
- Arduino pin 5 dan 6, dikendalikan oleh Timer0
- Arduino pin 9 dan 10, dikendalikan oleh Timer1
- Arduino pin 3 dan 11, dikendalikan oleh Timer2
- Arduino pin 4 dan 13, dikendalikan oleh Timer0
- Arduino pin 11 dan 12, dikendalikan oleh Timer1
- Arduino pin 9 dan 10, dikendalikan oleh Timer2
- Arduino pin 2, 3, dan 5, dikendalikan oleh Timer3
- Arduino pin 6, 7, dan 8, dikendalikan oleh Timer4
- Arduino pin 46, 45, dan 44, dikendalikan oleh Timer5
- Normal, hanya untuk mencacah, melakukan delay, menghitung selang waktu
- PWM, phase correct, membentuk gelombang PWM resolusi tinggi, berdasarkan operasi dual slope
- CTC (Clear Timer Compare Match), mengembalikan nilai TCNT ke 0, saat nilainya telah sama dengan nilai set point OCR
- Fast PWM, memberikan pulsa PWM frekuensi tinggi, berdasarkan operasi single slope
- Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius.
- Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC.
- Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.
- Bekerja pada tegangan 4 sampai 30 volt.
- Memiliki arus rendah yaitu kurang dari 60 µA.
- Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara diam.
- Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.
- Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.
- Tegangan output sensor suhu IC LM35 dapat diformulasikan sebagai berikut :
Vout LM35 = Temperature º x 10 mV
Keterangan:
1. Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.
2. Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).
3. Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).
4. Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).
5. Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.
6. Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat.
Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.
Simbol Motor DC
Gambar 18. Simbol Motor DC
Motor DC tersusun dari dua bagian yaitu bagian diam (stator) dan bagian bergerak (rotor). Stator motor arus searah adalah badan motor atau kutub magnet (sikat-sikat), sedangkan yang termasuk rotor adalah jangkar lilitanya. Pada motor, kawat penghantar listrik yang bergerak tersebut pada dasarnya merupakan lilitan yang berbentuk persegi panjang yang disebut kumparan.
Gambar 19. Prinsip Kerja Motor DC
Kumparan ABCD terletak dalam medan magnet serba sama dengan kedudukan sisi aktif AD dan CB yang terletak tepat lurus arah fluks magnet. Sedangkan sisi AB dan DC ditahan pada bagian tengahnya, sehingga apabila sisi AD dan CB berputar karena adanya gaya lorentz, maka kumparan ABCD akan berputar.
T = F.r
Dimana :
T = momen putar (Nm) F = gaya tolak (newton)
r = jarak sisi kumparan pada sumbu putar (meter)
Pada daerah dibawah kutub-kutub magnet besarnya momen putar tetap karena besarnya gaya lorentz. Hal ini berarti bahwa kedudukan garis netral sisi sisi kumparan akan berhenti berputar. Supaya motor dapat berputar terus dengan baik, maka perlu ditambah jumlah kumparan yang digunakan. Kumparan- kumparan harus diletakkan sedemikian rupa sehingga momen putar yang dialami setiap sisi kumparan akan saling membantu dan menghasilkan putaran yang baik. Dengan pertimbangan teknis, maka kumparan-kumparan yang berputar tersebut dililitkan pada suatu alat yang disebut jangkar, sehingga lilitan kumparan itupun disebut lilitan jangkar. Struktur Motor DC dapat dilihat pada gambar berikut ini.Arduino Uno
Bagian-bagian arduino uno:
-Power USB
Digunakan untuk menghubungkan Papan Arduino dengan komputer lewat koneksi USB.
-Power jack
Supply atau sumber listrik untuk Arduino dengan tipe Jack. Input DC 5 - 12 V.
-Crystal Oscillator
Kristal ini digunakan sebagai layaknya detak jantung pada Arduino. Jumlah cetak menunjukkan 16000 atau 16000 kHz, atau 16 MHz.
-Reset
Digunakan untuk mengulang program Arduino dari awal atau Reset.
-Digital Pins I / O
Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika ( 0 atau 1 ). Pin berlabel " ~ " adalah pin-pin PWM ( Pulse Width Modulation ) yang dapat digunakan untuk menghasilkan PWM.
-Analog Pins
Papan Arduino UNO memiliki 6 pin analog A0 sampai A5. Digunakan untuk membaca sinyal atau sensor analog seperti sensor jarak, suhu dsb, dan mengubahnya menjadi nilai digital.
-LED Power Indicator
Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik dengan baik.
Bagian - bagian pendukung:
-RAM
RAM (Random Access Memory) adalah tempat penyimpanan sementara pada komputer yang isinya dapat diakses dalam waktu yang tetap, tidak memperdulikan letak data tersebut dalam memori atau acak. Secara umum ada 2 jenis RAM yaitu SRAM (Static Random Acces Memory) dan DRAM (Dynamic Random Acces Memory).
-ROM
ROM (Read-only Memory) adalah perangkat keras pada computer yang dapat menyimpan data secara permanen tanpa harus memperhatikan adanya sumber listrik. ROM terdiri dari Mask ROM, PROM, EPROM, EEPROM.
Block Diagram Mikrokontroler ATMega 328P pada Arduino UNO
Adapun block diagram mikrokontroler ATMega 328P dapat dilihat pada gambar berikut:
Konstruksi Pin Driver Motor DC IC L293D
Fungsi Pin Driver Motor DC IC L293D
• 1. Pin EN (Enable, EN1.2, EN3.4) berfungsi untuk mengijinkan driver menerima perintah untuk menggerakan motor DC.
Feature Driver Motor DC IC L293D Driver motor DC IC L293D memiliki feature yang lengkap untuk sebuah driver motor DC sehingga dapat diaplikasikan dalam beberapa teknik driver motor DC dan dapat digunakan untuk mengendalikan beberapa jenis motor DC. Feature yang dimiliki driver motor DC IC L293D sesuai dengan datasheet adalah sebagai berikut :
• - Wide Supply-Voltage Range: 4.5 V to 36 V
• - Separate Input-Logic Supply
• - Internal ESD Protection
• - Thermal Shutdown
• - High-Noise-Immunity Inputs
- Functionally Similar to SGS L293 and SGS L293D
• - Output Current 1 A Per Channel (600 mA for L293D)
• - Peak Output Current 2 A Per Channel (1.2 A for L293D)
• - Output Clamp Diodes for Inductive Transient Suppression (L293D)
Rangkaian Aplikasi Driver Motor DC IC L293D
Pada gambar driver IC L293D diatas adalah contoh aplikasi dari keempat unit driver motor DC yang dihubungkan secar berbeda sesuai dengan keinginan dan kebutuhan.
Tidak ada komentar:
Posting Komentar