Modul 2 Mikroprosesor dan Mikrokontroler




1. Tujuan [Kembali]
  • Memahami prinsip kerja PWM pada mikrokontroler
  • Memahami prinsip kerja ADC pada mikrokontroler
  • Menggunakan PWM dan ADC pada Arduino

2. Alat dan Bahan [Kembali]
  • Modul Arduino
  • Motor DC
  • LM35
  • Driver Motor
  • LCD
  • Potensiometer

3. Dasar Teori [Kembali]
A. Pulse Width Modulation
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.

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.



Gambar 2.4.1 Siklus Sinyal PWM pada Arduino


B. 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 pada Arduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analogRead(pin);


C. Arduino
Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain.

Adapun spesifikasi dari Arduino Uno ini adalah sebagai berikut :




Microcontroller
ATmega328P
Operating Voltage
5 V
Input Voltage (recommended)
7 – 12 V
Input Voltage (limit)
6 – 20 V
Digital I/O Pins
14 (of which 6 provide PWM output)
PWM Digital I/O Pins
6
Analog Input Pins
6
DC Current per I/O Pin
20 mA
DC Current for 3.3V Pin
50 mA
Flash Memory
32 KB of which 0.5 KB used by bootloader
SRAM
2 KB
EEPROM
1 KB
Clock Speed
16 MHz


BAGIAN-BAGIAN DARI 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.

D. LCD
 Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untuk menampilkan 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).



Gambar Penampang Komponen Penyusun LCD

  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.



Kaki - kaki yang terdapat pada LCD

E. Motor DC
      Pada dasarnya beberapa aplikasi yang menggunakan motor DC harus dapat mengatur kecepatan dan arah putar dari motor DC itu sendiri. Untuk dapat melakukan pengaturan kecepatan motor DC dapat menggunakan metode PWM (Pulse Width Modulation) sedangkan untuk mengatur arah putarannya dapat menggunakan rangkaian H-bridge yang tersusun dari 4 buah transistor. Tetapi dipasaran telah disediakan IC L293D sebagai driver motor DC yang dapat mengatur arah putar dan disediakan pin untuk input yang berasal dari PWM untuk mengatur kecepatan motor DC.

        Sebelum membahas tentang IC L293D, alangkah baiknya jika kita membahas driver motor DC menggunakan rangkaian analog terlebih dahulu.

        Jika diinginkan sebuah motor DC yang dapat diatur kecepatannya tanpa dapat mengatur arah putarnya, maka kita dapat menggunakan sebuah transistor sebagai driver. Untuk mengatur kecepatan putar motor DC digunakan PWM yang dibangkitkan melalui fitur Timer pada mikrokontroler. Sebagian besar power supply untuk motor DC adalah sebesar 12 V, sedangkan output PWM dari mikrokontroler maksimal sebesar 5 V. Oleh karena itu digunakan transistor sebagai penguat tegangan. Dibawah ini adalah gambar driver motor DC menggunakan transistor.



Sedangkan jika diinginkan sebuah motor DC yang dapat diatur kecepatan atau arah putarnya maka digunakanlah rangkaian H-brigde yang tersusun dari 4 buah transistor.



      Dari gambar diatas  jika diinginkan motor DC berputar searah jarum jam maka harus mengaktifkan transistor1 dan transistor4 dengan cara memberikan logika high pada kaki Basis transistor tersebut. Sedangkan untuk berputar berlawanan arah jarum jam maka harus mengaktifkan transistor2 dan transistor 3 dengan cara memberikan logika high pada kaki Basis transistor tersebut. Untuk lebih jelasnya perhatikan gambar dibawah ini.


Dari gambar diatas terlihat jelas bahwa dengan mengaktifkan transistor1 dan transistor4 akan menyebabkan motor DC berputar searah jarum jam.  Dimana arus listrik akan mengalir dari power supply (12 V) melalui transistor1, lalu ke motor DC, lalu ke transistor4 dan akan berakhir di ground. Begitu juga sebaliknya untuk putaran berlawanan arah jarum jam.

Sedangkan untuk pengaturan kecepatannya anda dapat menghubungkan output PWM ke kaki basis transistor1 untuk putaran searah jarum jam. Dan untuk putaran berlawanan arah jarum jam, output PWM dapat dihubungkan kekaki basis transistor- transistor.

Berikut adalah rangkaian dari driver l293D :




  • Input dan Output
        Pada gambar diatas kita bisa melihat bahwa terdapat 4 input dan 4 output. pada pin input akan mengatur dan mengontrol pin output masing-masing, yaitu Input 1 akan menggontrol Output 1 dan seterusnya. Pin input akan dihubungkan dengan kontroller, seperti mikrokontroller ATmega misalnya, yang berfungsi untuk memberikan sinyal untuk mengontrol IC L293d tersebut. Sinyal yang diberi berupa logika 1 (high) atau 0 (low). Ketika pin input mendapatkan logika 1 (high) maka ouptunya akan aktif dan sebaliknya jika diberi logika 0 (low) maka output akan nonaktif atau mati (kalau logika saya disini nilai 1 akan dihubungkan dengan input daya pada VCC2, sedangkan saat diberi nilai 0 maka terhubung pada GND). Motor akan berputar jika pada kedua output (misal ouput 1 dan ouput 2) memiliki sinyal yan berbeda, jika masing-masing menerima logika 1 dan 0 atau 0 dan 1 maka motor DC dapat bergerak, namun jika memiliki nilai logika yang sama yaitu 0 dan 0 atau 1 dan 1 maka motor DC akan berhenti atau tidak berputar.


  • Pin Enable
       Pada rangkaian diatas juga terdapat dua pin Enable yang berada pada pin ke 1 dan 9 yang berguna untuk mengkaktifkan fungsi input dan output. Pada Enable 1 akan mengontrol input dan output 1 dan 2, sedangkan pada Enable 2 akan mengontrol Input dan output 3 dan 4. Bagaimana cara kerja pin Enable? apa pengaruhnya dengan input dan output? Jadi, jika saya logikakan pin Enable ini memberi jalan untuk masing-masing input dan output untuk aktif atau tidak, cukup memberi tegangan sebesar 4,5v-5,5v pada pin ini maka output dan input yang dikontrolnya dapat digunakan, maka jika tidak diberikan tegangan pada pin Enable maka input dan outputnya tidak bisa bekerja.


  • VCC 1 dan VCC 2
       Kedua pin ini memiliki peran yang berbeda, dimana VCC 1 akan digunakan untuk memberi power atau tegangan listrik pada IC L293D agar bisa bekerja dan sedangkan VCC 2 berfungsi untuk memberi arus untuk motor DC yang ingin digunakan atau di kontrol. IC tersebut dapat bekerja pada tegangan sekitar 4,4v-5,5v DC agar bekerja maksimal. jadi maksimal suplay daya untuk VCC1 hanya sebesar 4,4v-5,5v DC saja. Untuk VCC 2 kita bisa menyuplay daya sebesar 3v-16v (tegangan tersebut sudah saya coba, untuk lebih dari 16v saya sendiri belum pernah coba).
Apakah VCC1 dan VCC2 bisa disambungkan?
Bisa saja, jika motor DC yang ingin kita kontrol membutuhkan tegangan hanya sebanyak 5v saja, lebih dari itu antara VCC1 dan VCC 2 tidak dapat dihubungkan karna akan menyebabkan IC L293D panas dan kebakar.