[lwptoc numeration=”none” title=”Daftar Isi”] |
I2C atau Inter-Integred-Circuit merupakan modul komunikasi serial dua arah yang berfungsi untuk mengirim dan menerima data. Kedua komunikasi serial tersebut berupa SCL (Serial Clock) dan SDA (Serial Data). Pengunaan I2C dapat menghemat penggunaan pin pada Arduino. Untuk dapat menggunakan I2C kita perlu mengetahui Mencari Tahu Alamat I2C karena setiap perangkat memiliki alamat yang berbeda.
[membership level=”0,1,2,4″]
Mencari Tahu Alamat I2C Pada Modul I2C
1. Alat / Bahan
- Arduino IDE
- Arduino Uno 1 Buah
- ProjectBoard 1 Buah
- Modul I2C 1 Buah
- Jumper Secukupnya
2. Skema Rangkaian
Gambar Rangkaian Dispenser Otomatis
Keterangan:
- 5V – VCC I2C
- GND – GND I2C
- SDA – SDA I2C
- SCL – SCL I2C
[/membership]
Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar?Segera Daftar sekarang dan dapatkan PROMO
3. Langkah Kerja
- Pertama Siapkan alat dan bahan yang akan digunakan
- Kedua Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
- Ketiga Buka software Arduino IDE yang telah terinstal pada laptop/komputer
- Kemudian Ketikkan sketch program pada halaman Arduino IDE
- Selanjutnya Lakukan proses uploading program
4. Sketch Program
/* Program Dispenser Otomatis dibuat oleh Indobot */ #include <Wire.h> void setup() { //prosedur pembacaan i2c Wire.begin(); Serial.begin(9600); //komunikasi serial menggunakan kecepatan 9600 bps while (!Serial); // Arduino Uno: wait for serial monitor Serial.println("\nI2C Scanner"); } void loop() //fungsi yang berjalan terus menerus { int nDevices; byte error, address; //tipe data untuk address dan error yaitu byte //ditampilkan diserial monitor "Scanning..." Serial.println("Scanning..."); nDevices = 00; for(address = 1; address < 127; address++ ) { // The i2c_scanner menggunakan pembalik nilai // Write.endTransmisstion untuk melihat jika perangkat pada alamat dimana Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 00) //jika sudah tidak ada keerroran { Serial.print("I2C device found at address 0x"); //menuliskan di serial monitor "i2c ditemukan" if (address<16) Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); nDevices++; } else if (error==4) //jika error == 4 //menuliskan di serial monitor di tidak diketahui alamat i2c { Serial.print("Unknow error at address 0x"); //menuliskan jika eror tidak diketahui if (address<16) Serial.print("0"); Serial.println(address,HEX); //format penulisan address dalam bentuk heksa } } if (nDevices == 00) //jika tidak ada perangkat yang terhubung Serial.println("No I2C devices found\n"); //ditampilkan peringatan tidak ada i2c yang ditemukan else Serial.println("done\n"); delay(5000); // diberikan waktu tunda 5 detik untuk scan berikutnya }
Kesimpulannya:
Kesimpulannya Program bekerja dengan mendeteksi alamat I2C yang digunakan pada modul I2C. ketika program dijalankan program akan melalukan “scanning…” kemudian serial monitor akan menampilkan alamat I2C yang dapat kita gunakan untuk program dengan menggunakan modul I2C.
[/membership]