Modul II
PWM, ADC dan Interupt
Pada sehari-hari banyak motor dan sensor yang digunakan untuak banyak kegunaan, oleh karena itu kita harus memahi cara penggunaannya pada arduino uno. cara penggunaannya berfokus pada Pulse Width Modulation (PWM) dan Analog to Digital Converter (ADC). Dimana PWM berfungsi untuk penggunaan motor sedangkan ADC digunakan untuk sensor.
- Memahami prinsip kerja PWM pada mikrokontroler
- Memahami prinsip kerja ADC pada mikrokontroler
- Menggunakan PWM dan ADC pada Arduino
3.1 Alat
- Power Supply
- Potensiometer
- Motor DC
- Sensor Infrared
- Dip Switch
- LCD
- Sensor LDR
- Motor Servo
- Driver Motor L293D
- Sensor Suhu LM35
A. PWM
Pulse Width Modulation (PWM) secara umum adalah sebuah cara memanipulasi lebar sinyal yang dinyatakan dengan pulsa dalam suatu perioda, untuk mendapatkan tegangan ratarata yang berbeda. Beberapa Contoh aplikasi PWM adalah pemodulasian data untuk telekomunikasi, pengontrolan daya atau tegangan yang masuk ke beban, regulator tegangan, audio effect dan penguatan, serta aplikasi-aplikasi lainnya.
Aplikasi PWM berbasis mikrokontroler biasanya berupa, pengendalian kecepatan motor DC, Pengendalian Motor Servo, Pengaturan nyala terang LED. JENIS PWM 1. PWM Analog Pembangkitan sinyal PWM yang paling sederhana adalah dengan cara membandingkan sinyal gigi gergaji sebagai tegangan carrier dengan tegangan referensi menggunakan rangkaian op-amp comparator.
Cara kerja dari komparator analog ini adalah membandingkan gelombang tegangan gigi gergaji dengan tegangan referensi seperti yang terlihat pada Gambar dibawah :
Saat nilai tegangan referensi lebih besar dari tegangan carrier (gigi gergaji) maka output comparator akan bernilai high. Namun saat tegangan referensi bernilai lebih kecil dari tegangan carrier, maka output comparator akan bernilai low. Dengan memanfaatkan prinsip kerja dari komparator inilah, untuk mengubah duty cycle dari sinyal output cukup dengan mengubahubah besar tegangan referensi. Besarnya duty-cycle rangkaian PWM ini :
2. PWM Digital Gambar
C. Timer
Sebuah pewaktu, timer, merupakan bagian dari microcontroller yang berperan sebagai clock internal untuk mengukur waktu suatu event. Untuk timer dapat diatur dengan menggunakan beberapa register khusus. Pada firmware Arduino semua timer memiliki konfigurasi frekuensi 1 kHz dengan enable interrupt. Berikut ini timer khusus untuk Arduino.
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, Selain tiga pewaktu tersebut, terdapat juga Timer3, Timer4, dan Timer5, semuanya 16 bit, untuk board Arduino Mega. 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
Timer Register
Untuk dapat melakukan manipulasi timer pada Arduino terlebih dahulu harus mengetahui fungsi dari masing-masing register yang terkait timer. Salah satu register timer yang paling penting ialah :
- 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
Timer Frekuensi
Untuk menghitung frekuensi timer dengan frekuensi yang ditentukan dapat dilakukan dengan cara sebagai berikut :
- 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
PWM dan Timer
Terdapat hubungan antara timer dengan output PWM. Dalam data sheet atau pin out microcontroller (Arduino) terdapat PWM pin dengan nama seperti OCRxA, OCRxB, atau OCRxC, dimana x adalah nomor timer. Untuk fungsi pin PWM sering digunakan bersama dengan fungsi lainnya. Untuk board Arduino Uno memiliki 3 timer dan 6 pin output PWM. Kaitan antara timer dengan output PWM sebagai berikut.
- Arduino pin 5 dan 6, dikendalikan oleh Timer0
- Arduino pin 9 dan 10, dikendalikan oleh Timer1
- Arduino pin 3 dan 11, dikendalikan oleh Timer2
Sementara itu untuk board Arduino Mega terdapat 6 timer dengan output 15 PWM, dengan konfigurasi sebagai berikut.
- 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
Mode Operasi Timer
Ada empat mode operasi timer pada microcontroller, yakni sebagai berikut :
- 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
D. Potensiometer
Potensiometer (POT) adalah salah satu jenis Resistor yang Nilai Resistansinya dapat diatur sesuai dengan kebutuhan rangkaian elektronika ataupun kebutuhan pemakainya. Sebuah Potensiometer (POT) terdiri dari sebuah elemen resistif yang membentuk jalur (track) dengan terminal di kedua ujungnya. Sedangkan terminal lainnya (biasanya berada di tengah) adalah Penyapu (Wiper) yang dipergunakan untuk menentukan pergerakan pada jalur elemen resistif (Resistive). Pergerakan Penyapu (Wiper) pada Jalur Elemen Resistif inilah yang mengatur naik-turunnya Nilai Resistansi sebuah Potensiometer.
Simbol dan bentuk Potensiometer dapat dilihat pada gambar 9 berikut.
Jenis Potensiometer:
1. Potensiometer Slider
Potensiometer geser, atau pot geser, dirancang untuk mengubah nilai resistansi kontaknya dengan gerakan linier dan dengan demikian terdapat hubungan linier antara posisi kontak penggeser dan resistansi output.
2. Potensiometer Rotary
Potensiometer putar (tipe yang paling umum) memvariasikan nilai resistifnya sebagai hasil dari pergerakan sudut. Memutar kenop atau dial yang terpasang pada poros menyebabkan penyeka internal menyapu sekitar elemen resistif melengkung. Penggunaan potensiometer putar yang paling umum adalah pot kontrol volume.
3. Potensiometer Trimmer
Potensiometer preset atau trimmer adalah potensiometer tipe "set-and-forget" kecil yang memungkinkan penyesuaian yang sangat halus atau sesekali mudah dilakukan ke rangkaian, (misalnya untuk kalibrasi). Potensiometer preset putar satu putaran adalah versi mini dari variabel resistor standar yang dirancang untuk dipasang langsung pada papan rangkaian tercetak dan disesuaikan dengan menggunakan obeng berbilah kecil atau alat plastik serupa.
B. Komponen Input
Sensor LM 35
Sensor suhu IC LM 35 merupkan chip IC produksi Natioanal Semiconductor yang berfungsi untuk mengetahui temperature suatu objek atau ruangan dalam bentuk besaran elektrik, atau dapat juga di definisikan sebagai komponen elektronika yang berfungsi untuk mengubah perubahan temperature yang diterima dalam perubahan besaran elektrik. Sensor suhu IC LM35 dapat mengubah perubahan temperature menjadi perubahan tegangan pada bagian outputnya. Sensor suhu IC LM35 membutuhkan sumber tegangan DC +5 volt dan konsumsi arus DC sebesar 60 µA dalam beroperasi. Bentuk fisik sensor suhu LM 35 merupakan chip IC dengan kemasan yang berfariasi, pada umumnya kemasan sensor suhu LM35 adalah kemasan TO-92 seperti terlihat pada gambar dibawah.
Dari gambar diatas dapat diketahui bahwa sensor suhu IC LM35 pada dasarnya memiliki 3 pin yang berfungsi sebagai sumber supply tegangan DC +5 volt, sebagai pin output hasil penginderaan dalam bentuk perubahan tegangan DC pada Vout dan pin untuk Ground.
Karakteristik Sensor suhu IC LM35 adalah :
- 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
Dip Swtich
DIP switch, atau Dual Inline Package switch, adalah jenis saklar yang terdiri dari beberapa saklar kecil yang terpasang dalam paket berbentuk baris ganda pada rangkaian elektronik terpadu atau modul. Setiap saklar memiliki dua posisi, ON dan OFF, yang digunakan untuk konfigurasi atau pengaturan pada perangkat elektronik, seperti menetapkan alamat atau parameter lainnya. DIP switch umumnya memberikan kemudahan penggunaan tanpa memerlukan keahlian khusus dalam pengaturan, meskipun beberapa pengembang kini beralih ke metode konfigurasi yang lebih canggih.
DIP switch, atau Dual Inline Package switch, bekerja berdasarkan prinsip sederhana saklar elektronik yang dapat berada dalam dua posisi, ON (hidup) atau OFF (mati). Dalam konteks penggunaannya pada rangkaian terpadu atau modul, setiap saklar DIP switch merepresentasikan satu bit informasi. Ketika saklar dalam posisi ON, itu menghubungkan pin terkait, sementara posisi OFF memutuskan hubungan. Pengaturan atau konfigurasi tertentu dapat dicapai dengan mengatur posisi ON atau OFF dari masing-masing saklar DIP switch sesuai dengan kebutuhan aplikasi. DIP switch sering digunakan untuk pengaturan alamat atau parameter lainnya dalam rangkaian elektronik tanpa memerlukan pemrograman atau perangkat lunak tambahan.
Sensor Infrared
Sensor infrared (IR) adalah perangkat elektronika yang dirancang untuk mendeteksi radiasi inframerah dalam spektrum elektromagnetik. Radiasi inframerah adalah bentuk radiasi panas yang tidak terlihat oleh mata manusia. Sensor infrared mengonversi energi radiasi inframerah menjadi sinyal listrik yang dapat diukur. Ada dua jenis sensor infrared utama: sensor pasif dan sensor aktif :
1. Sensor Infrared Pasif: Sensor ini mendeteksi radiasi inframerah yang dipancarkan atau dipantulkan oleh objek atau tubuh yang memiliki suhu lebih tinggi daripada nol absolut. Sensor pasif sering digunakan dalam aplikasi deteksi gerak (PIR sensor) untuk mengidentifikasi perubahan suhu yang terkait dengan pergerakan manusia atau objek.
2. Sensor Infrared Aktif: Sensor ini menghasilkan radiasi inframerah sendiri dan kemudian mendeteksi pantulan atau perubahan dalam pantulan tersebut. Sensor ini sering digunakan dalam aplikasi pengukuran jarak (seperti sensor ultrasonik atau lidar) dan komunikasi inframerah.
Sensor infrared memiliki berbagai aplikasi, termasuk di dalam pengendalian jarak jauh, perangkat keamanan, sistem kendali otomatis, dan perangkat medis. Keunggulan sensor infrared termasuk kemampuan bekerja dalam kondisi cahaya rendah atau gelap dan kemampuan mengukur suhu objek tanpa kontak fisik.
Prinsip kerja sensor infrared tergantung pada jenis sensor dan aplikasinya. Secara umum, prinsip kerja sensor infrared melibatkan deteksi radiasi inframerah dan konversi energi inframerah menjadi sinyal listrik yang dapat diukur. Ada dua jenis utama sensor infrared: sensor pasif dan sensor aktif.
1. Sensor Infrared Pasif:
- Deteksi Radiasi : Sensor pasif mendeteksi radiasi inframerah yang dipancarkan atau dipantulkan oleh objek atau tubuh yang memiliki suhu lebih tinggi daripada nol absolut. Ini dapat mencakup perubahan suhu yang terkait dengan pergerakan manusia atau objek.
- Konversi Menjadi Sinyal Listrik : Ketika radiasi inframerah tertangkap, sensor mengonversinya menjadi sinyal listrik melalui elemen detektor termal atau pyroelektrik.
- Aplikasi : Sensor pasif, seperti sensor deteksi gerak PIR (Passive Infrared), sering digunakan dalam sistem keamanan atau otomatisasi rumah untuk mendeteksi perubahan suhu yang diindikasikan oleh pergerakan.
2. Sensor Infrared Aktif:
- Pancaran Radiasi: Sensor aktif menghasilkan sendiri radiasi inframerah, kemudian mendeteksi pantulan atau perubahan dalam pantulan tersebut.
- Konversi Menjadi Sinyal Listrik: Sinyal pantulan atau perubahan dalam intensitas pantulan diukur dan dikonversi menjadi sinyal listrik oleh elemen detektor seperti fotodioda atau fototransistor.
- Aplikasi: Sensor infrared aktif digunakan dalam pengukuran jarak (lidar, sensor ultrasonik) dan komunikasi inframerah.
Prinsip kerja sensor infrared memanfaatkan sifat radiasi inframerah yang tidak terlihat oleh mata manusia dan kemudian mengonversinya menjadi bentuk sinyal yang dapat diolah untuk berbagai aplikasi.
Sensor LDR
Sensor LDR (Light Dependent Resistor), juga dikenal sebagai fotoresistor, adalah jenis sensor yang sensitif terhadap intensitas cahaya. Prinsip kerja LDR didasarkan pada perubahan resistansinya tergantung pada tingkat cahaya yang diterimanya. Ketika cahaya mengenai LDR, resistansinya menurun, dan sebaliknya, saat kondisi gelap, resistansinya meningkat.
LDR umumnya terbuat dari semikonduktor yang memiliki resistivitas yang sangat sensitif terhadap tingkat pencahayaan. Ketika cahaya menyinari LDR, energi foton mengeksitasi elektron dalam struktur semikonduktor, sehingga resistansi menurun. Pengukuran resistansi LDR dapat digunakan untuk mengukur intensitas cahaya di sekitarnya.
Aplikasi umum dari sensor LDR termasuk dalam sistem pengaturan otomatis pencahayaan, seperti lampu jalan yang menyala otomatis saat gelap, atau dalam perangkat sensor cahaya untuk kamera atau ponsel pintar. Penggunaan LDR dalam berbagai proyek elektronika memungkinkan respons otomatis terhadap kondisi pencahayaan, menawarkan solusi hemat energi dan efisien.
Prinsip kerja sensor LDR (Light Dependent Resistor) didasarkan pada perubahan resistansinya terhadap intensitas cahaya yang diterimanya. LDR terbuat dari material semikonduktor khusus yang memiliki resistivitas yang sangat sensitif terhadap tingkat pencahayaan. Ketika cahaya mengenai LDR, energi foton dari cahaya tersebut menghasilkan elektron-elektron berenergi tinggi dalam struktur semikonduktor, sehingga meningkatkan konduktivitas dan menurunkan resistansi sensor.
Jadi, pada kondisi cahaya yang cukup, LDR memiliki resistansi yang rendah, memungkinkan arus listrik untuk mengalir dengan mudah melalui sensor. Sebaliknya, pada kondisi gelap, resistansi LDR meningkat, membatasi arus listrik yang dapat mengalir. Pengukuran resistansi LDR dapat digunakan sebagai indikator intensitas cahaya di sekitar sensor.
Aplikasi umum dari prinsip ini adalah dalam rangkaian pengaturan otomatis pencahayaan. Sebagai contoh, ketika lingkungan menjadi gelap, resistansi LDR meningkat, dan ini dapat digunakan untuk mengaktifkan atau mengatur lampu secara otomatis. Penggunaan sensor LDR membuat perangkat dapat merespons secara otomatis terhadap kondisi pencahayaan, menjadikannya berguna dalam berbagai proyek elektronika dan sistem kontrol otomatis.
C. Komponen Output
a) LCD
Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untukmenampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter). Struktur LCD dapat dilihat pada gambar berikut.
- Umpan Balik (Feedback): Motor servo menggunakan sensor umpan balik, seperti potensiometer, enkoder, atau resolver, untuk terus memonitor posisi atau sudut rotor.
- Kontroler : Kontroler servo menerima sinyal perintah untuk mencapai posisi tertentu, Kontroler membandingkan posisi aktual (yang diberikan oleh sensor umpan balik) dengan posisi yang diminta.
- Error Signal : Jika terdapat perbedaan antara posisi aktual dan yang diminta, tercipta sinyal kesalahan (error signal).
- Sinyal Penggerak (Drive Signal) : Kontroler menghasilkan sinyal penggerak yang disesuaikan berdasarkan error signal, Sinyal penggerak mengontrol daya yang disuplai ke motor untuk mengoreksi perbedaan posisi.
- Pergerakan Presisi : Motor servo merespons dengan mengubah posisi rotor untuk mengurangi error posisi, Proses ini berlanjut sampai posisi yang diminta tercapai.
- Pin EN (Enable, EN1.2, EN3.4) berfungsi untuk mengijinkan driver menerima perintah untuk menggerakan motor DC.
- Pin In (Input, 1A, 2A, 3A, 4A) adalah pin input sinyal kendali motor DC
- Pin Out (Output, 1Y, 2Y, 3Y, 4Y) adalah jalur output masing-masing driver yang dihubungkan ke motor DC
- Pin VCC (VCC1, VCC2) adalah jalur input tegangan sumber driver motor DC, dimana VCC1 adalah jalur input sumber tegangan rangkaian kontrol dirver dan VCC2 adalah jalur input sumber tegangan untuk motor DC yang dikendalikan.
- Pin GND (Ground) adalah jalu yang harus dihubungkan ke ground, pin GND ini ada 4 buah yang berdekatan dan dapat dihubungkan ke sebuah pendingin kecil.
Tidak ada komentar:
Posting Komentar