Sebuah papan Arduino, dalam hal ini Arduino Uno memiliki 14 buah pin digital yang dinamakan pin 0 s.d 13. Secara umum, pin digital adalah pin yang digunakan untuk bekerja pada level digital (logika ‘0’ dan logika ‘1’) baik sebagai input dan output. Sebagai ‘INPUT’ berarti ada tegangan yang masuk ke pin Arduino, dan sebaliknya, yang disebut ‘OUTPUT’ artinya Arduino akan mengeluarkan tegangan ke arah luar. ‘Tegangan’ di sini elektrikalnya berada level digital yakni tegangan ‘0V’ untuk logika ‘0’/’LOW’ dan tegangan ‘5V’ untuk logika ‘1’ atau ‘HIGH’. Jadi ketika kita berbicara mengenai pin digital, ini artinya kita berbicara mengenai dua level tegangan ini saja. Ini merupakan prinsip dasar dalam dunia mikrokontroller yang harus Anda pahami.
Sebagaimana dijelaskan pada paragraph di atas, sebuah pin digital dapat berfungsi sebagai pin input digital maupun output digital. Nah, bagaimana cara kita untuk menentukan suatu pin digital sebagai input atau ouput digital? Jawabannya, Anda harus mendefinisikan mode pin tersebut dalam blok deklarasi void setup (). Contoh, jika kita mendefinisikan pin 13 sebagai output, maka sintaks deklarasinya adalah sebagai berikut :
void setup() { pinMode (13,OUTPUT); }
Cukup sederhana, bukan? Mengapa dideklarasikan di blok void setup() bukan void loop() ? Jawabannya adalah karena definisi mode suatu pin digital cukup dilakukan sekali saja. Sebagaimana kita ketahui blok void setup() adalah blok deklarasi yang hanya dieksekusi sekali saja, yakni saat pertama kali program Arduino dijalankan, sebelum berlanjut ke blok void loop() sebagai program utama.
Berikutnya, setelah dilakukan deklarasi mode pin di void setup(), Anda dapat memanggil function digitalWrite() untuk mengeluarkan tegangan digital ke suatu pin. Sintaks function digitalWrite adalah sebagai berikut :
digitalWrite (no_pin, level_digital);
dengan parameter ‘no_pin’ adalah nomor pin digital sedangkan parameter ‘level_digital’ adalah tegangan digital yang akan dikeluarkan. Anda dapat mengisi parameter ‘level_digital’ ini dengan ‘0’ atau ‘LOW’ jika akan mengeluarkan tegangan 0 V dan sebaliknya isilah dengan ‘1’ atau ‘HIGH’ jika akan mengeluarkan tegangan digital 5 V. Contoh :
digitalWrite (13, 1); atau digitalWrite (13, HIGH);
Sebagai contoh program, Anda dapat membuka contoh program/sketch yang sudah disediakan di IDE Arduino melalui menu File | Examples | Basics | Blink. Contoh program ini akan menyalakan LED pada papan Arduino yang terhubung langsung pada pin 13 secara bergantian dengan jeda waktu tertentu (flip flop)
Yang perlu Anda perhatikan, penulisan sintaks di Arduino adalah bersifat case sensitive, jadi penulisan digitalWrite adalah berbeda dengan digitalwrite atau DigitalWrite, sehingga akan menimbulkan kesalahan saat proses compiling. Berhati-hatilah …
Beberapa pin digital memiliki fungsi khusus yakni sebagai output analog dengan teknik PWM pada pin 3, 5, 6, 9, 10 dan 11, sebagai pin serial pada pin 0 dan 1 dan sebagai serial sinkronus dengan teknik SPI (Serial Peripheral Interface) pada pin 11, 12 dan 13. Untuk lebih jelasnya dapat dilihat pada diagram layout Arduino (Uno) di bawah.
Selain pin yang didedikasikan sebagai pin digital, Anda juga dapat menggunakan pin Analog sebagai pin digital. Caranya sudah saya jelaskan dengan detail pada artikel ‘Cara Konfigurasi Pin Analog Arduino sebagai Pin Digital‘
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com