Input Output Pada Arduino
Pin digital pada Arduino bersifat bidirectional, berarti sebuah pin dapat menjadi pin input sekaligus pin output pada saat yang tidak bersamaan (bergantian). Konsep kerja input digital sendiri berkebalikan dari output digital.
Input digital digunakan untuk mendeteksi perubahan logika biner pada pin tertentu. Adanya input digital memungkinkan mikrokontroler untuk dapat menerjemahkan 0V menjadi logika LOW dan 5V menjadi logika HIGH. Output digital terdiri atas dua buah logika, yaitu kondisi logika HIGH dan kondisi logika LOW. Anda dapat mendemonstrasikan output digital sederhana dengan bantuan sebuah LED.


LED Sebagai Output
LED (Light Emitting Diode) adalah Sebuah lampu kecil yang digunakan sebagai penanda atau indikator. LED adalah salah satu komponen elektronika yang terbuat dari bahan semi konduktor jenis dioda yang mempu mengeluarkan cahaya. Untuk mendapatkan emisi cahaya pada semikonduktor, doping yang pakai adalah galium, arsenic dan phosporus. Jenis doping yang berbeda menghasilkan warna cahaya yang berbeda pula.
Jika kita ingin menyambungkan LED, maka kita butuh tahanan (resistor) untuk membatasi arus yang masuk ke LED. LED memiliki tegangan kerja yang disebut dengan forward voltage (fv) yang mana tegangan ini adalah tegangan yang dibutuhkan LED untuk bisa menyala dengan baik dan aman. Ukuran resistor yang bisa dipakai adalah 100 Ω hingga 1 KΩ (Ω dibaca ohm, satuan dari resistansi/hambatan), makin besar nilai resistor maka nyala LED akan semakin redup.

Switch / Saklar Sebagai Input (1)

Push button switch (saklar tombol tekan) adalah perangkat / saklar sederhana yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik dengan sistem kerja tekan unlock (tidak mengunci). Sistem kerja unlock disini berarti saklar akan bekerja sebagai device penghubung atau pemutus aliran arus listrik saat tombol ditekan, dan saat tombol tidak ditekan (dilepas), maka saklar akan kembali pada kondisi normal.
Sebagai device penghubung atau pemutus, push button switch hanya memiliki 2 kondisi, yaitu On dan Off (1 dan 0). Istilah On dan Off ini menjadi sangat penting karena semua perangkat listrik yang memerlukan sumber energi listrik pasti membutuhkan kondisi On dan Off.
Karena sistem kerjanya yang unlock dan langsung berhubungan dengan operator, push button switch menjadi device paling utama yang biasa digunakan untuk memulai dan mengakhiri kerja mesin di industri. Secanggih apapun sebuah mesin bisa dipastikan sistem kerjanya tidak terlepas dari keberadaan sebuah saklar seperti push button switch atau perangkat lain yang sejenis yang bekerja mengatur pengkondisian On dan Off.

Berdasarkan fungsi kerjanya yang menghubungkan dan memutuskan, push button switch mempunyai 2 tipe kontak yaitu NC (Normally Close) dan NO (Normally Open).
- NO (Normally Open), merupakan kontak terminal dimana kondisi normalnya terbuka (aliran arus listrik tidak mengalir). Dan ketika tombol saklar ditekan, kontak yang NO ini akan menjadi menutup (Close) dan mengalirkan atau menghubungkan arus listrik. Kontak NO digunakan sebagai penghubung atau menyalakan sistem circuit (Push Button ON).
- NC (Normally Close), merupakan kontak terminal dimana kondisi normalnya tertutup (mengalirkan arus litrik). Dan ketika tombol saklar push button ditekan, kontak NC ini akan menjadi membuka (Open), sehingga memutus aliran arus listrik. Kontak NC digunakan sebagai pemutus atau mematikan sistem circuit (Push Button Off).
Berikut ini rangkaian LED Active LOW (Menggunakan R array atau R pack) dan Push button yang digunakan dalam percobaan:


Percobaan 1 : 1 LED Blinking
- Hubungkan L7 Active Low dengan pin D2 ATMEGA 2560
- Hubungkan board ATMEGA 2560 dengan Komputer menggunakan kabel USB.
- Bukalah IDE Arduino, kemudian ketikkan kode program/sketch atau buka file LED_1_ACTIVE_LOW_BLINK
- Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
- Upload program ke arduino dengan cara, pilih File > Upload to I/O board, atau tekan tombol tanda panah pada jendela IDE arduino.
Coding LED_1_ACTIVE_LOW_BLINK:
void setup() {
// put your setup code here, to run once:
pinMode(2, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(2, LOW);
delay(1000);
digitalWrite(2, HIGH);
delay(1000);
}
Penjelasan Coding:
"pinMode(2, OUTPUT)" adalah baris kode dalam bahasa pemrograman Arduino. Fungsinya adalah untuk mengkonfigurasi pin digital nomor 2 sebagai pin keluaran (OUTPUT). Ini berarti bahwa kita dapat mengirim sinyal keluaran dari pin ini dan mengontrol perangkat eksternal, seperti LED atau relay.
"digitalWrite(2, LOW)" adalah baris kode dalam bahasa pemrograman Arduino. Fungsinya adalah menulis nilai digital ke pin digital nomor 2. Nilai LOW menunjukkan bahwa sinyal keluaran dari pin tersebut harus dikirimkan dengan level logika rendah, yang berarti 0 Volt. Ini sering digunakan untuk mematikan perangkat eksternal seperti LED atau relay. Harap dicatat bahwa pin harus dikonfigurasi sebagai pin keluaran (OUTPUT) dengan menggunakan perintah "pinMode" sebelum menulis nilai digital ke pin tersebut.
"delay(1000)" adalah baris kode dalam bahasa pemrograman Arduino. Fungsinya adalah untuk menunda eksekusi program selama 1.000 milidetik atau 1 detik. Ini berguna untuk memberikan waktu pada perangkat eksternal untuk melakukan tugas yang diperintahkan oleh program, misalnya memberikan waktu untuk LED menyala atau mematikan. Fungsi "delay" membuat program menunggu selama waktu yang ditentukan sebelum melanjutkan eksekusi kode berikutnya.
File LED_1_ACTIVE_LOW_BLINK: https://drive.google.com/file/d/1Qc1vknDDXWEXSZxyy1zkCojPtkm8yFGQ/view?usp=sharing
Percobaan 2 : 8 LED Blinking

- Hubungkan LED L0-L7 Active Low dengan pin D2-D9 ATMEGA 2560 secara berurutan
- Hubungkan board ATMEGA 2560 dengan Komputer menggunakan kabel USB.
- Bukalah IDE Arduino, kemudian ketikkan kode program/sketch atau buka file LED_8_ACTIVE_LOW_BLINK
- Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
- Upload program ke arduino dengan cara, pilih File > Upload to I/O board, atau tekan tombol tanda panah pada jendela IDE arduino.
Coding LED_8_ACTIVE_LOW_BLINK:
void setup() {
// put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
delay(1000);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
}
Berikut ini demonstrasinya:
Percobaan 3: 8 LED Berjalan
- Ikuti langkah-langkah 8 LED Blinking
- Tulis Coding LED_8_ACTIVE_LOW_RUNNING
Coding LED_8_ACTIVE_LOW_RUNNING:
void setup() {
// put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
delay(1000);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
}
Coding LED_8_ACTIVE_LOW_RUNNING yang disederhanakan:
unsigned char i, j;
void setup() {
// put your setup code here, to run once:
for(i = 2; i <= 9; i++)
{
pinMode(i, OUTPUT);
digitalWrite(i, HIGH);
}
}
void loop() {
// put your main code here, to run repeatedly:
for(i = 2; i <= 9; i++)
{
for(j = 2; j <= 9; j++)
{
if(i == j)
digitalWrite(j, LOW);
else
digitalWrite(j, HIGH);
}
delay(1000);
}
}
Penjelasan Coding:
"unsigned char i, j;" adalah baris kode dalam bahasa pemrograman C yang digunakan dalam Arduino. Ini menyatakan bahwa kita membuat dua variabel bernama "i" dan "j" yang bertipe data "unsigned char".
"unsigned char" adalah tipe data yang digunakan untuk menyimpan nilai-nilai numerik yang berkisar antara 0 sampai 255. Kata "unsigned" berarti bahwa tipe data tersebut tidak menyimpan nilai negatif. Sedangkan "char" berarti bahwa tipe data tersebut memiliki ukuran 1 byte.
"for(i = 2; i <= 9; i++)" adalah blok kode dalam bahasa pemrograman C yang digunakan dalam Arduino. Ini adalah contoh dari loop "for", yang digunakan untuk mengeksekusi serangkaian perintah berulang kali.
Dalam hal ini, loop akan berjalan sebanyak 8 kali, dengan nilai "i" bertambah 1 setiap kali iterasi selesai. Nilai "i" akan berkisar dari 2 hingga 9, mengikuti aturan "i = 2; i <= 9; i++".
Dalam tubuh loop, "pinMode(i, OUTPUT)" digunakan untuk mengkonfigurasi setiap pin digital dari nomor 2 sampai 9 sebagai pin keluaran (OUTPUT). Kemudian, "digitalWrite(i, HIGH)" digunakan untuk menulis nilai digital tinggi (HIGH) ke setiap pin tersebut. Ini berarti bahwa semua pin tersebut akan menerima sinyal logika tinggi, atau 5 Volt.
Loop ini berguna untuk melakukan konfigurasi dan mengatur pin digital secara cepat dan efisien, tanpa perlu menulis perintah yang sama beberapa kali.
"for(i = 2; i <= 9; i++)" dan "for(j = 2; j <= 9; j++)" adalah dua loop nested (perulangan bersarang) dalam bahasa pemrograman C yang digunakan dalam Arduino. Ini akan mengeksekusi serangkaian perintah dalam loop dalam 8 kali seiring dengan 8 kali iterasi dari loop luar.
Dalam tubuh loop, ada blok kondisional "if(i == j)". Ini akan memeriksa apakah variabel "i" sama dengan "j", yaitu apakah mereka memiliki nilai yang sama. Jika benar, perintah "digitalWrite(j, LOW)" akan dieksekusi dan pin digital dengan nomor "j" akan ditulis dengan nilai logika rendah (LOW), atau 0 Volt.
Jika kondisi tidak terpenuhi, "else" akan dieksekusi dan perintah "digitalWrite(j, HIGH)" akan menulis nilai logika tinggi (HIGH), atau 5 Volt, ke pin digital dengan nomor "j".
Ketika semua iterasi selesai, "delay(1000)" akan membuat program menunggu selama 1000 milidetik (atau 1 detik) sebelum memulai iterasi berikutnya.
Kode ini mengkonfigurasi dan mengatur pin digital dalam loop nested untuk menciptakan sebuah efek berulang seiring waktu. Ini berguna untuk mem-batch konfigurasi dan mengatur pin digital secara cepat dan efisien.
Berikut ini demonstrasinya:
Percobaan 4: 1 LED dan 1 Push Button

- Hubungkan LED L7 Active Low dengan pin D8 ATMEGA 2560
- Hubungkan Push Button S7 dengan pin D52 ATMEGA 2560
- Hubungkan board ATMEGA 2560 dengan Komputer menggunakan kabel USB.
- Bukalah IDE Arduino, kemudian ketikkan kode program/sketch atau buka file PUSH_BUTTON_1_LED_1_ACTIVE_LOW
- Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
Coding PUSH_BUTTON_1_LED_1_ACTIVE_LOW:
#define LED_PIN 8
#define BUTTON_PIN 52
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT);
digitalWrite(BUTTON_PIN, HIGH); //PULL-UP INTERNAL
}
void loop() {
if (digitalRead(BUTTON_PIN) == HIGH) {
digitalWrite(LED_PIN, HIGH);
}
else {
digitalWrite(LED_PIN, LOW);
}
}
Penjelasan Coding:
Baris "#define LED_PIN 8" dan "#define BUTTON_PIN 52" adalah definisi konstanta preprocessor pada bahasa pemrograman C. Ini memungkinkan kita untuk memberikan nama simbolik untuk suatu nilai yang akan digunakan dalam program.
Definisi konstanta preprocessor akan diterjemahkan ke kode sumber sebelum kompilasi. Setiap kali nama simbolik digunakan dalam program, kompiler akan menggantinya dengan nilai yang didefinisikan. Ini mempermudah pemeliharaan kode dan membuat kode lebih mudah dibaca.
Dalam hal ini, LED_PIN akan diterjemahkan menjadi pin D8 dan BUTTON_PIN akan diterjemahkan menjadi pin D52 selama kompilasi. Ini mempermudah mengakses dan mengidentifikasi pin LED dan tombol pada board mikrokontroler seperti Arduino, karena kita dapat menggunakan nama simbolik LED_PIN dan BUTTON_PIN sepanjang program, sehingga membuat program lebih mudah dibaca dan diterima.
"if (digitalRead(BUTTON_PIN) == HIGH)" adalah blok kondisional yang memeriksa nilai yang dibaca dari pin digital D52 atau BUTTON_PIN. Fungsi "digitalRead(BUTTON_PIN)" akan membaca nilai logika dari pin digital BUTTON_PIN dan menghasilkan nilai logika tinggi (HIGH) atau rendah (LOW) sesuai dengan tegangan yang diterima dari pin tersebut.
Jika kondisi "digitalRead(BUTTON_PIN) == HIGH" terpenuhi, maka perintah "digitalWrite(LED_PIN, HIGH)" akan dieksekusi dan menulis nilai logika tinggi (HIGH), atau 5 Volt, ke pin digital D8 atau LED_PIN. Ini akan mengaktifkan LED yang terhubung ke pin tersebut.
Jika kondisi tidak terpenuhi, maka perintah "else" akan dieksekusi dan perintah "digitalWrite(LED_PIN, LOW)" akan menulis nilai logika rendah (LOW), atau 0 Volt, ke pin digital D8 atau LED_PIN. Ini akan mematikan LED yang terhubung ke pin tersebut.
Kode ini memungkinkan untuk memonitor dan memantau pin BUTTON_PIN dan mengatur pin LED_PIN sesuai dengan nilai logika yang diterima dari pin BUTTON_PIN. Ini berguna untuk membuat sebuah sistem interaksi sederhana, seperti menyalakan LED dengan menekan tombol.
Berikut ini demonstrasinya:
https://youtube.com/shorts/inmm4DCPRrM?feature=share
Percobaan 5: 8 LED dan 1 Push Button

- Hubungkan LED L0-L7 Active Low dengan pin D2-D9 ATMEGA 2560 secara berurutan
- Hubungkan Push Button S7 dengan pin D52 ATMEGA 2560
- Hubungkan board ATMEGA 2560 dengan Komputer menggunakan kabel USB.
- Bukalah IDE Arduino, kemudian ketikkan kode program/sketch atau buka file PUSH_BUTTON_1_LED_8_ACTIVE_LOW atau
- Buka PUSH_BUTTON_1_LED_8_ACTIVE_LOW_SIMPLIFY
- Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
Berikut ini Coding PUSH_BUTTON_1_LED_8_ACTIVE_LOW:
#define BUTTON_PIN 52
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(BUTTON_PIN, INPUT);
digitalWrite(BUTTON_PIN, HIGH); //PULL-UP INTERNAL
}
void loop() {
if (digitalRead(BUTTON_PIN) == HIGH) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
}
else {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
}
Berikut ini Coding PUSH_BUTTON_1_LED_8_ACTIVE_LOW_SIMPLIFY:
#define BUTTON_PIN 52
int i;
void setup() {
for(i = 2; i <=9; i++)
pinMode(i, OUTPUT);
pinMode(BUTTON_PIN, INPUT);
digitalWrite(BUTTON_PIN, HIGH); //PULL-UP INTERNAL
}
void loop() {
if (digitalRead(BUTTON_PIN) == HIGH) {
for(i = 2; i <=9; i++)
digitalWrite(i, HIGH);
}
else {
for(i = 2; i <=9; i++)
digitalWrite(i, LOW);
}
}
Penjelasan Coding:
Blok kode yang ada di dalam loop() memeriksa apakah pin tertentu (BUTTON_PIN) sedang memiliki nilai "HIGH" atau "LOW". Jika nilai dari pin BUTTON_PIN adalah "HIGH", maka perulangan "for" akan berjalan dari i = 2 sampai i = 9. Dalam setiap iterasi, kode akan mengirimkan sinyal "HIGH" ke pin i, yang mungkin mewakili sebuah output ke sebuah perangkat eksternal seperti LED.
Jika nilai dari pin BUTTON_PIN adalah "LOW", maka perulangan "for" akan berjalan dengan cara yang sama seperti sebelumnya, tetapi kode akan mengirimkan sinyal "LOW" ke setiap pin dalam jangkauan 2 sampai 9. Ini mungkin mematikan output yang diteruskan ke perangkat eksternal.
Secara keseluruhan, kode ini mungkin digunakan untuk menyalakan sekelompok LED saat tombol ditekan, dan mematikan LED saat tombol tidak ditekan (LED active low).
Berikut ini demonstrasinya:
Percobaan 6: 8 LED dan 8 Push Button

- Hubungkan LED L0-L7 Active Low dengan pin D2-D9 ATMEGA 2560 secara berurutan
- Hubungkan Push Button S0-S7 dengan pin D46-D53 ATMEGA 2560 secara berurutan
- Hubungkan board ATMEGA 2560 dengan Komputer menggunakan kabel USB.
- Bukalah IDE Arduino, kemudian ketikkan kode program/sketch atau buka file PUSH_BUTTON_8_LED_8_ACTIVE_LOW_SIMPLIFY
- Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
Berikut ini Codingnya:
int i;
void setup() {
for(i = 2; i <=9; i++)
pinMode(i, OUTPUT); //led kaki 2-9
for(i = 46; i <=53; i++){
pinMode(i, INPUT); // push button kaki 46 - 53
digitalWrite(i, HIGH); //PULL-UP INTERNAL
}
}
void loop() {
for(i = 2; i <=9; i++)
if (digitalRead(i + 44) == HIGH) {
digitalWrite(i, HIGH);
}
else {
digitalWrite(i, LOW);
}
}
Penjelasan Coding:
Kode ini menjalankan perulangan "for" dari i = 2 sampai i = 9. Dalam setiap iterasi, kode memeriksa apakah pin i + 44 sedang memiliki nilai "HIGH" atau "LOW". Jika nilai dari pin i + 44 adalah "HIGH", maka kode akan mengirimkan sinyal "HIGH" ke pin i. Sebaliknya, jika nilai dari pin i + 44 adalah "LOW", maka kode akan mengirimkan sinyal "LOW" ke pin i.
Ini mungkin digunakan untuk memantau sejumlah input dari perangkat eksternal dan memutuskan apakah harus mengirimkan sinyal "HIGH" atau "LOW" ke sejumlah output. Contohnya, jika sebuah push button memberikan sinyal "HIGH" pada pin D46, maka kode akan mengirimkan sinyal "HIGH" ke pin LED D2.
Berikut ini Demonstrasinya:
Percobaan 7: Buzzer
Buzzer adalah perangkat elektronik yang digunakan untuk memproduksi suara berupa nada atau bunyi yang dapat dikendalikan. Buzzer biasanya digunakan dalam aplikasi pembuatan suara seperti alarm, pemberitahuan, atau sebagai bagian dari sistem interkom.
Buzzer dapat bekerja dengan cara memanfaatkan fenomena piezoelektrik, yaitu bahan yang menghasilkan arus listrik ketika tekanan diterapkan, atau dengan cara memanfaatkan vibrasi mekanik dari sebuah elemen resonansi untuk memproduksi suara. Buzzer dapat digerakkan secara aktif atau pasif, dan bekerja dengan cara memanfaatkan tegangan AC atau DC untuk memproduksi suara.
Buzzer biasanya sangat sederhana dan mudah digunakan, dan dapat ditemukan dalam berbagai bentuk dan ukuran. Dalam aplikasi elektronik, buzzer sering digunakan sebagai bagian dari sistem pengontrol mikrokontroler seperti Arduino, dan dapat dengan mudah dikendalikan melalui perintah digitalWrite() atau tone().

- Hubungkan IN Buzzer dengan pin D9 ATMEGA 2560
- Hubungkan board ATMEGA 2560 dengan Komputer menggunakan kabel USB.
- Bukalah IDE Arduino, kemudian ketikkan kode program/sketch atau buka file BUZZER
- Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
Berikut ini Coding BUZZER:
const int buzzer = 9; //buzzer pin 9
void setup(){
pinMode(buzzer, OUTPUT); //
}
void loop(){
tone(buzzer, 1000); // Send 1KHz sound signal...
delay(1000); // ...for 1 sec
noTone(buzzer); // Stop sound...
delay(1000); // ...for 1sec
}
Berikut ini demonstrasinya:
Sensor Magnetic Reed

Sensor Magnetic Reed ini menyediakan antarmuka analog dan juga digital. Anda dapat melihat bahwa modul reed switch memiliki potensiometer yang digunakan untuk mengatur sensitifitas. Modul ini juga memiliki LED on-board yang menunjukkan bahwa reed switch mendeteksi medan magnet atau tidak.
Sensor Magnetic Reed adalah sebuah perangkat yang digunakan untuk memdeteksi kehadiran medan magnet. Sensor ini terdiri dari sebuah reed switch yang menutup atau membuka dengan cara menempelkan atau menjauhkan magnet. Saat magnet mendekat, reed switch akan menutup dan memberikan sinyal "LOW" ke pin digital. Saat magnet tidak ada, reed switch akan terbuka dan memberikan sinyal "HIGH" ke pin digital.
Percobaan 8: Sensor Magnet

- Hubungkan output Magnetic Reed dengan pin D2 ATMEGA 2560
- Hubungkan output L7 dengan pin D13 ATMEGA 2560
- Hubungkan board ATMEGA 2560 dengan Komputer menggunakan kabel USB.
- Bukalah IDE Arduino, kemudian ketikkan kode program/sketch atau buka file MAGNETIC_REED
- Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
Berikut ini coding MAGNETIC_REED:
int Led_pin = 13 ;
int Sensor_pin = 2 ;
int Value ;
void setup ( )
{
pinMode ( Led_pin, OUTPUT ) ;
pinMode ( Sensor_pin, INPUT ) ;
}
void loop ( )
{
Value = digitalRead ( Sensor_pin ) ;
if (Value == HIGH )
{
digitalWrite ( Led_pin, HIGH ) ;
}
else
{
digitalWrite ( Led_pin, LOW ) ;
}
}
Berikut ini Video Demo nya:
Sensor Kemiringan SW-520D

Sensor kemiringan digunakan untuk membaca data output terkait miring atau tidaknya posisi dari modul Sensor Tilt (Sensor Kemiringan) SW-520D. Output dari modul Tilt Sensor (Sensor Kemiringan) SW-520D ini berupa nilai Digital berupa Logika HIGH atau LOW.


Sensor kemiringan tipe saklar bola (ball switch-type) ini adalah jenis saklar digital yang mengubah dari kondisi terbuka menjadi tertutup berdasarkan kemiringannya relatif terhadap gaya gravitasi bumi. Untuk karakteristik listriknya, sensor ini memiliki karakteristik seperti push button di mana kontaknya tersambung ketika saklar ditutup(ditekan), dan terputus ketika saklar terbuka(tidak ditekan). Secara mekanis, sensor ini berbentuk tabung dan di dalamnya terdapat bola logam yang bisa menyebabkan kedua kaki sensor terhubung/short ketika orientasi sensor sedemikian rupa sehingga bola berguling dan menempel dengan kedua kaki sensor.
Percobaan 9: Sensor Kemiringan
- Hubungkan output SW 520D dengan pin D2 ATMEGA 2560
- Hubungkan output L7 dengan pin D13 ATMEGA 2560
- Hubungkan board ATMEGA 2560 dengan Komputer menggunakan kabel USB.
- Bukalah IDE Arduino, kemudian ketikkan kode program/sketch atau buka file KEMIRINGAN_SW520D
- Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
Berikut ini Codingnya:
///SENSOR INI DIARAHKAN KE BAWAH DAN KE ATAS
int Led_pin = 13 ;
int Sensor_pin = 2 ;
int Value ;
void setup ( )
{
pinMode ( Led_pin, OUTPUT ) ;
pinMode ( Sensor_pin, INPUT ) ;
}
void loop ( )
{
Value = digitalRead ( Sensor_pin ) ;
if (Value == HIGH )
{
digitalWrite ( Led_pin, LOW ) ;
}
else
{
digitalWrite ( Led_pin, HIGH ) ;
}
}
Traffic Light - Arduino
Alat ini merupakan simulasi dari Traffik Light 4 Persimpangan atau 4 Jalur atau 4 Way. Prinsip kerjanya sama dengan traffic light yang ada di jalan. Semua LED Active High. Kode M (Merah), K (Kuning) dan H (Hijau).

Percobaan 10: Traffic Light 4 Way

- Hubungkan pin-pin M1-H4 dengan pin D2-13 ATMEGA 2560 secara berurutan (terdapat 12 pin)
- Hubungkan board ATMEGA 2560 dengan Komputer menggunakan kabel USB.
- Bukalah IDE Arduino, kemudian ketikkan kode program/sketch atau buka file traffic_ok
- Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
Berikut ini Coding nya:
int r1 = 2;
int y1 = 3;
int g1 = 4;
int r2 = 5;
int y2 = 6;
int g2 = 7;
int r3 = 8;
int y3 = 9;
int g3 = 10;
int r4 = 11;
int y4 = 12;
int g4 = 13;
void setup() {
pinMode (r1, OUTPUT);
pinMode (y1, OUTPUT);
pinMode (g1, OUTPUT);
pinMode (r2, OUTPUT);
pinMode (y2, OUTPUT);
pinMode (g2, OUTPUT);
pinMode (r3, OUTPUT);
pinMode (y3, OUTPUT);
pinMode (g3, OUTPUT);
pinMode (r4, OUTPUT);
pinMode (y4, OUTPUT);
pinMode (g4, OUTPUT);
}
void loop() {
digitalWrite(g1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
delay(3000);
digitalWrite(g1, LOW);
digitalWrite(r2, LOW);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
delay(1000);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(r1, HIGH);
digitalWrite(g2, HIGH);
delay(3000);
digitalWrite(g2, LOW);
digitalWrite(r3, LOW);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
delay(1000);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(r2, HIGH);
digitalWrite(g3, HIGH);
digitalWrite(r4, HIGH);
delay(3000);
digitalWrite(g3, LOW);
digitalWrite(r4, LOW);
//??? ???????
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(1000);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
digitalWrite(r3, HIGH);
digitalWrite(g4, HIGH);
delay(3000);
digitalWrite(r3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(y1, HIGH);
digitalWrite(y4, HIGH);
delay(1000);
digitalWrite(y1, LOW);
digitalWrite(y4, LOW);
}
Berikut ini video demo nya: