1. Hardware [Kembali]
A. LED
B. Push Button
2. Rangkaian Simulasi [Kembali]
3. Flowchart [Kembali]
4. Listing Program [Kembali]
A. I2C Master
// // Menambahkan library wire #include <Wire.h> // Deklarasi Button #define BUTTON 2 uint8_t _data; void setup() { // Konfigurasi button sebagai INPUT pinMode(BUTTON, INPUT); // Bergabung dengan I2C Bus Wire.begin(); } void loop() { if (digitalRead(BUTTON) == LOW) { // Mengirim byte Alamat (Alamat slave #8) Wire.beginTransmission(8); // Mengirim data (data = 1) _data = 1; Wire.write(_data); // Berhenti mengirim Wire.endTransmission(); } else { // Mengirim byte Alamat (Alamat slave #8) Wire.beginTransmission(8); // Mengirim data (data = 0) _data = 0; Wire.write(_data); // Berhenti mengirim Wire.endTransmission(); } } //
B. I2C Slave
// // Menambahkan library Wire #include <Wire.h> // Deklarasi LED #define LED 2 // Data yang diterima Slave uint8_t _data; // Flag data telah diproses bool proceed = true; void setup() { // Konfigurasi LED sebagai OUTPUT pinMode(LED, OUTPUT); // Bergabung dengan I2C Bus dengan alamat 8 (Desimal) Wire.begin(8); // Mengatur event ketike I2C Slave menerima data Wire.onReceive(receiveEvent); } void loop() { if(!proceed){ // Mengecek Data if(_data == 1){ digitalWrite(LED, HIGH); }else if(_data == 0){ digitalWrite(LED, LOW); } proceed = true; } } // Fungsi untuk menghandel I2C receive event void receiveEvent(int howMany) { // Membaca data _data = Wire.read(); proceed = false; } //
0 komentar:
Posting Komentar