General Purpose Input-Output Pin menggunakan Arduino Uno sebagai contoh
Arduino adalah salah satu microcontroller yang relatif mudah untuk dipelajari karena menggunakan bahasa pemograman C++. Selain penggunaan bahasa pemograman yang mudah dipahami, Arduino juga merupakan salah satu open-source platform atau platform yang memiliki keterbukaan mengenai sumber-sumber pengembangannya. Lebih sederhananya, open-source platform adalah sistem yang tidak terkoordinasi oleh suatu lembaga ataupun per-seorangan, pengembang dapat memanfaatkan sumber yang sudah tersedia di dunia maya dan sumber tersebut bisa dimanfaatkan untuk pengembangan lebih lanjut.
Gambar 1 di atas merupakan salah satu contoh produk dari Arduino yang sering digunakan dalam pembelajaran. Seperti yang sudah dijelaskan dalam artikel sebelumnya, Arduino dapat diprogram melalui Arduino Integrated Development Environment (IDE) yaitu salah satu perangkat lunak dari Arduino untuk melakukan pengembangan-pengembangan lebih lanjut berbasis Bahasa C++. Lalu bagaimana cara Arduino dapat berkomunikasi dengan instrumen-instrumen lainnya?
1. Pengertian GPIO (General Purpose Input-Output)
Seperti mikrokontroler lainnya, Arduino tentunya memiliki GPIO (General Purpose Input-Output) untuk sarana berkomunikasi antara mikrokontroler dan perangkat keras lainnya. Seperti namanya, pengertian input dan output pada Arduino ini bisa berperan sebagai menggunakan (output) atau digunakan (input). GPIO ini juga sering kali disebut sebagai pin dalam mikrokontroler. Sebelum masuk ke dalam penjabaran pin pada mikrokontroler, ada baiknya kita memahami bilangan biner terlebih dahulu. Pada poin selanjutnya, kita akan membahas mengenai bilangan biner dalam mikrokontroler.
2. Bilangan biner dalam Mikrokontroler
Bilangan biner adalah sistem digital yang direprentasikan oleh nilai 1 dan 0. Nilai 1 dan 0 dalam bilangan biner adalah representasi dari logika antara benar atau salah (false and true condition). Di dalam konteks elektronika, logika ini digunakan antara menyala atau mati (high and low condition). Maksud dari menyala atau mati di sini adalah penggunaan sumber daya dari elektronik tersebut. Pada beberapa mikrokontroler Arduino, ada yang menggunakan 5 Volt maupun 3.3 Volt sebagai sumber dayanya. Oleh karena itu, jika logika biner menyatakan 1, dia akan memberikan 5 Volt atau 3.3 Volt tersebut pada pin atau GPIO yang dituju.
Bentuk representasi dari bilangan biner salah satunya adalah Bits. Tidak asing untuk kalian, bukan? Pengunaan kata Bits ini diambil dari kata (Binary digit). Seperti yang sudah di jelaskan diatas, Bits merepresentasikan pengunaan logika benar-salah menyala-mati atau 0 dan 1. Kemudian untuk satuan yang digunakan dalam bilangan biner adalah Byte, Nibble, dan Words. Byte merupakan satuan dari bilangan biner yang merepresentasikan 8 bits, kemudian Nibble adalah 4 bits, dan Word adalah kumpulan dari beberapa Byte. Sistem penggunaan satuan tergantung kepada arsitektur dari mikrokontroler tersebut.
N bits memiliki makna nilai 2N. Sebagai contoh, 2 bits memiliki 4 nilai kombinasi yang mungkin, yaitu 00, 01, 10, dan 11. Untuk GPIO dalam mikrokontroler sendiri memiliki nilai N=1 karena hanya memiliki 2 kemungkinan yaitu 0 atau 1, hal ini disebut juga sebagai single bits. Bagaimana? Sudah paham sejauh ini? Jika sudah mari kita lanjut ke poin selanjutnya yang membahas tentang contoh GPIO di salah satu mikrokontroler Arduino.
3. Diagram Arduino Uno
Sub-bab ini dibuat untuk menjadi patokan Anda belajar memahami pin dalam mikrokontroler Arduino. Jika anda membaca poin selanjutnya dan kebingungan mencari di mana letak pin tersebut dalam Arduino yang sedang dibahas, anda bisa mencarinya pada gambar berikut ini:
4. Input-Output untuk Sumber Daya
Sebelum memutuskan berapa Volt yang akan Anda gunakan sebagai sumber daya utama mikrokontroler, ada baiknya Anda membaca daya yang dibutuhkan oleh mikrokontroler tersebut. Sebagai contoh, dalam Arduino Uno ini dapat menggunakan 5-20 Volt untuk sumber daya utama, namun Voltase yang direkomendasikan adalah 7-12 Volt. Apa yang terjadi jika lebih atau kurang dari itu? Yang terjadi adalah mikrokontroler tersebut bisa saja terlampau panas (overheat) jika Voltase lebih dari 12 Volt, dan jika sumber daya tidak mencapai 7 Volt, bisa saja kerja mikrokontroler ini tidak maksimal. Dalam menentukan sumber daya utama untuk mikrokontroler, ada beberapa pin yang bisa digunakan sebagai berikut.
- Power Jack
Sumber daya tipe ini sudah dibahas pada pengenalan sebelumnya. Masukan daya yang direkomendasikan adalah 7-12 Volt. Untuk Arduino Uno, jack ini biasa disebut sebagai Barrel Jack karena bentuknya yang bulat seperti barel. Barrel Jack bisa dilihat dalam gambar 2 dengan anotasi Power Jack.
- Vin Pin
Vin pin adalah pin yang bisa digunakan sebagai masukan daya dalam mikrokontroler Arduino Uno. Pin ini juga mengikuti aturan seperti sebelumnya yaitu 7-12 Volt untuk masukan sumber daya utama.
- Kabel USB
Selain digunakan untuk memasukkan program yang dibuat, kabel USB ini juga bisa digunakan sebagai masukan sumber daya utama untuk mikrokontroler. Kabel USB Arduino Uno biasanya mampu memberikan 5 Volt dengan kekuatan arus sebesar 500 miliAmpere.
Dari ketiga tipe masukan daya yang disebutkan di atas, setiap masukan daya memiliki proteksi dalam menentukan kuat arus yang digunakan. Selain proteksi tersebut, Arduino juga memiliki regulator khusus menuju chip yang digunakan agar masukan daya terjaga dan dipastikan tidak melebihi dari Voltase yang dibutuhkan oleh chip tersebut. Masih membahas sumber daya utama dari Arduino, selanjutnya akan dijabarkan pin sumber daya keluaran dari Arduino Uno.
- 5V dan 3.3V
Seperti yang terlihat dalam gambar 2 pada sub-bab sebelumnya, pin 5V dan 3.3V digunakan untuk memberikan daya kepada perangkat keras lainnya, seperti sensor dan instrumen yang digunakan dalam rakitan elektronik yang dibuat. Beberapa instrumen yang membutuhkan masukan daya lebih dari 5 Volt bisa menggunakan sumber daya eksternal yang disambungkan kepada instrumen tersebut.
- GND
Terlihat pada gambar 2, pin GND ada lebih dari 1 pin. Semua GND yang terdapat pada Arduino ini saling berhubungan satu sama lain. Pin ini digunakan sebagai penutup sirkuit listrik; lebih mudahnya jika membayangkan baterai ini adalah sisi negatif dari baterai tersebut.
- Reset
Reset atau mulai ulang digunakan untuk memulai ulang operasi yang berjalan pada Arduino. Misalkan program yang dibuat adalah penghitung dari 1 sampai dengan 1000, jika proses baru sampai 590 lalu pin Reset menerima sinyal, maka proses penghitungan akan dimulai ulang dari 1.
- IOREF
Pin ini digunakan sebagai referensi input-output Voltase dari operasi mikrokontroler. Pin ini sangat penting jika menggunakan shield atau chip tambahan untuk suatu prototype.
5. Analog in pin
Dapat dilihat pada gambar 2, mikrokontroler Arduino Uno memiliki 6 pin analog. Di dalam diagram, analog input ditandai dengan anotasi ADC (Analog to Digital Conversion). Pin ini (A0-A5) mampu membaca Voltase analog. Resolusi kemampuan baca dari pin ini adalah 10 bits yang berarti bisa merepresentasikan analog Voltage sampai 1024 level digital. Konverter ADC mengubah voltage menjadi bits yang mana bisa dipahami oleh microprosessor/chip. Perlu dicatat bahwa analog pin juga bisa berperan sebagai digital input. Simak poin berikutnya untuk penjelasan mengenai digital input.
6. Digital in pin
Didalam gambar 2 bagian kanan, terdapat pin 0-13, dimana pin ini berfungsi sebagai digital input-output. Pin 13 dalam mikrokontroler Arduino Uno memiliki koneksi langsung dengan LED kecil pada sirkuit mikrokontroler tersebut. Digital memiliki fungsi untuk merepresentasikan Voltase dalam bilangan biner, yaitu 1 atau 0. Seperti yang dijelaskan sebelumnya, 1 atau 0 memiliki arti Menyala atau Mati dalam sirkuit elektronik. Atau lebih mudahnya, 5 Volt atau 0 Volt. Batasan yang diterapkan oleh Arduino Uno adalah 0 untuk 0.8 Volt kebawah dan 1 untuk 2 Volt keatas. Lalu dari pin 0-13 ada yang memiliki tanda pasang surut (~) atau bisa juga disebut sebagai tilde. Jika pin tersebut memiliki tanda tilde, itu berarti pin tersebut bisa digunakan sebagai PWM input. Apa itu PWM input? Mari kita simak poin selanjutnya.
7. PWM input
PWM adalah singkatan dari Pulse Width Modulation (Modulasi Lebar Pulsa), yang artinya pin tersebut memiliki kemampuan untuk mengubah lebar dari pulsa dengan nilai frekuensi dan amplitudo yang tetap. Untuk lebih mudahnya, kita bisa mengatur kecerahan pada LED menggunakan potensimeter melalui PWM pin input ini. Hal ini tidak bisa dilakukan oleh pin yang hanya berperan pada digital input saja.
8. Pin Komunikasi
Komunikasi disini berarti komunikasi antar perangkat keras yang akan dikontrol oleh mikrokontroler. Pin TX dan RX memiliki kepanjangan dari transmitter dan receiver. Hal ini bisa dibayangkan dengan menambahkan modul Bluetooth untuk memberi sinyal kepada mikrokontroler. Komunikasi antar perangkat keras ini bisa dilakukan melalui pin dengan anotasi TX dan RX. Selain TX dan RX, ada juga pin untuk berkomunikasi dengan SPI (Serial Peripheral Interface). Pin yang digunakan untuk berkomunikasi dengan SPI memiliki anotasi SS/SCK/MISO/MOSI. Hal ini bisa dimanfatkan untuk koneksi antar mikrokontroler.
Sekian penjabaran mengenai GPIO (General Purpose Input-Output) dari salah satu contoh mikrokontroler dari Arduino. Semoga bermanfaat dan membantu untuk lebih memahami mengenai mikrokontroler. Jangan lupa untuk share postingan ini agar lebih banyak orang yang paham mengenai mikrokontroler.
Penulis: Malik Athafarras
Editor: Aulia Djati Pramiesta
Sumber: