Teknik Output Digital pada Mikrokontroler
Teknik Output Digital pada Mikrokontroler
Mikrokontroler seperti Arduino sering perlu disambungkan ke berbagai perangkat digital, untuk itu diperlukan kemampuan output dari mikrokontroler yang perlu disesuaikan dengan sifat perangkat yang dituju. Berikut ini beberapa kemungkinan permasalahan output yang dijumpai:
- Tegangan kecil, arus kecil (langsung)
- Tegangan kecil, arus besar (perlu penguat arus BJT/MOSFET)
- Tegangan besar (perlu pengubah tegangan BJT/MOSFET, Relay)
- Beban Induktif (kumparan,motor)
- Galvanic Isolation (dengan optocoupler)
- H-Bridge untuk motor 2 arah
- Pulse Width Modulation untuk mengatur pemberian energi
- Serial to Paralel untuk menambah port I/O
Daftar Isi
Tegangan Kecil Arus Kecil
Tegangan kecil di sini maksudnya adalah tegangan perangkat output sama atau kurang dari tegangan output mikrokontroler.
Arus kecil di sini maksudnya adalah arus yang diperlukan perangkat output sama atau kurang dari kemampuan arus output mikrokontroler.
Pada kasus ini output dari mikrokontroler cocok dari sisi arus maupun tegangan, sehingga output mikrokontroler dapat langsung dihubungkan ke beban / perangkat output.
Misal, output yang diinginkan adalah menyalakan sebuah LED. LED mempunyai tegangan maju sekitar 2 volt, dengan arus 25 mA jika ingin cukup terang. Port pada ATMega328 dapat memberikan arus maksimal 40 mA, dengan tegangan output 5 volt, maka dalam hal ini, LED dapat langsung dihubungkan ke output ATMega328 tanpa perlu penguatan, cukup dengan resistor sebagai pembatas arus.
Tegangan Kecil Arus Besar
Tegangan kecil di sini maksudnya adalah tegangan perangkat output sama atau kurang dari tegangan output mikrokontroler.
Arus besar di sini maksudnya adalah arus yang diperlukan perangkat output lebih dari kemampuan arus output mikrokontroler.
Contoh kasus:
- lampu LED perlu 25 mA, sedangkan output mikrokontroler hanya sanggup 8 mA karena pin output lain juga aktif
- LED 7 segmen , setiap segmen 25 mA, jadi perlu total 25 mA x 8 = 200 mA untuk arus di pin common anoda/katoda.
Dalam hal ini maka diperlukan penguatan arus, yang antara lain dapat dilakukan dengan komponen berikut:
- Transistor BJT NPN (misal BC548)
- Transistor BJT PNP (misal BC557)
- Transistor MOSFET kanal N (misal IRF520)
- Transistor MOSFET kanal P
- Transistor Darlington terintegrasi, seperti IC ULN2803
Secara teoritis, penguatan ini dapat juga dilakukan menggunakan penguat / amplifier analog ataupun op-amp, namun hal ini tidak praktis karena penguat analog umumnya menggunakan transistor dalam kondisi aktif sehingga penggunaan arus lebih besar. Penguat digital hanya menggunakan 2 keadaan transistor ON dan OFF, sehingga disipasi daya pada transistor lebih kecil.
Contoh rangkaian penguat arus dengan transistor NPN sebagai berikut:
Contoh rangkaian penguat arus dengan MOSFET sebagai berikut, cara kerjanya dijelaskan di artikel “Output Digital Mikrokontroler Dengan MOSFET“:
Tegangan Besar
Tegangan besar di sini maksudnya adalah tegangan yang diinginkan lebih tinggi dari tegangan output mikrokontroler. Misal output mikrokontroler adalah TTL 5 volt, sedangkan output diinginkan level CMOS, misal 9 volt. Maka dapat dipakai rangkaian berikut ini:
Pada contoh berikut ini , ada 5 buah LED seri yang ingin dinyalakan. 1 LED memerlukan tegangan 2 volt, sehingga total perlu 10 volt. Untuk itu diperlukan transistor NPN sebagai sakelarnya.
Selain itu untuk menaikkan tegagnan dapat menggunakan komponen bidirectional logic converter.
Beban Induktif
Beban induktif perlu dioda pengaman, karena ketika output dimatikan maka arus pada dioda masih ingin tetap mengalir.
Jika arus apda beban induktif melebihi kemampuan output port mikrokontroler maka arus perlu diperkuat dengan transistor BJT ataupun MOSFET.
Jika perlu banyak mengendalikan beban induktif, maka alternatif yang baik adalah IC ULN3803. ULN2803 di dalamnya sudah memiliki penguat arus dengan transistor dan dioda pengaman, sehingga cocok untuk beban induktif. Kemampuan arus setiap kanalnya adalah 500 mA.
Galvanic Isolation
Pada galvanic isolation, antara mikrokontroler dengan komponen yang dikendalikan tidak terdapat hubungan secara elektrik. Jalur ground dan sinyal betul-betul terpisah. Untuk mencapai galvanic isolation dapat menggunakan kopling magnetik ataupun optocoupler. Untuk aplikasi Arduino yang sederhana, yang praktis adalah menggunakan optocoupler jika dekat, dan menggunakan fiber optik jika jaraknya agak jauh.
H-Bridge
H-Bridge diperlukan untuk beban yang memerlukan polaritas yang dapat diubah.
Contoh output pengendali motor dengan TB6612FNG:
Contoh lain adalah IC TLE 5205-2:
Pulse Width Modulation
[under construction]
Serial to Paralel
Penambahan port input output pada Arduino dapat dilakukan dengan menggunakan komponen antar muka serial ke paralel. Komponen yang sering dipakai di antaranya adalah “74HC164 8-Bit Parallel-Out Serial Shift Register” dan “PCF8574 Remote8-Bit I/O Expander for I2C Bus“.
Prinsip kerja 74HC164 adalah sebagai sebuah shift register 8 bit. Data serial dimasukkan pada pin A dan B. Setiap ada pulsa clock pada pin CLK, maka data 1 bit dimasukkan ke shift register. Data pada shift register ditampilkan pada pin Qa sampai dengan Qh. Jadi setiap 74HC164 dapat menambah 8 port output. Jika diinginkan lebih dari 8 port output, maka 74HC164 berikutnya dapat ditambahkan secara cascade. 74HC164 ini hanya dapat berfungsi sebagai output digital.
Alternatif lainnya adalah menggunakan IC 74HC595. Prinsip kerjanya serupa, namun kelebihan 74HC595 adalah terdapat tambahan register output selain shift register, sehingga perubahan output dapat dilakukan secara serentak. 74HC595 juga memiliki three-state buffer di bagian outputnya sehingga lebih fleksibel.
PCF8574 adalah periferal I2C yang memiliki 8 buah port input output digital. PCF8574 dapat disambungkan dengan protokol I2C ke mikroprosesor. Jika memerlukan lebih dari 8 port digital, maka dapat ditambahkan PCF8574 berikutnya. Setiap PCF8574 mesti memiliki alamat yang berbeda. Alamat dapat diatur dengan pin A0,A1 dan A2, sehingga dari kombinasi 3 pin ini kita dapat menghubungkan 8 buah PCF8574 ke sebuah mikroprosesor, total menjadi 8×8 = 64 port digital sebagai input ataupun output.
Referensi
- Arduino Basic Connection https://box.glgprograms.it/CorsoArduino2016/didattica/Arduino-BC.pdf
- Texas Instruments: Datasheet 74HC164
- Texas Instruments: Datasheet 74HC165
- Texas Instruments: Datasheet PCF8574
- Texas Instruments: Datasheet 74HC595
- Texas Instruments: Datasheet ULN2803
2 thoughts on “Teknik Output Digital pada Mikrokontroler”