Menu

  • Home
  • Elektronika
  • Sensor
  • Praktikum ESD
  • Praktikum Up & Uc
    • Modul 1
    • Modul 2
    • Modul 3
    • Modul 4

      Laporan Akhir 2 (I2C)




      1. Komponen 

      a. Arduino Uno


      Gambar 1. Arduino Uno

      b. Potensiometer


      Gambar 2. Potensiometer

      c. Resistor


      Gambar 3. Resistor

      d. LED


      Gambar 4. LED

      e. Ground

      Gambar 5. Ground


      a. Rangkaian sebelum dijalankan

        

      Gambar 6. Rangkaian sebelum dijalankan


      Gambar 7. Rangkaian setelah dijalankan

      [kembali]

      3. Flowchart 
      Gambar 8. Flowchart Master




      Gambar 9. Flowchart Slave

      [kembali]

      4. Listing Program

      //MASTER

       

      #include <Wire.h>

      #define SLAVE_ADDR 9

       

      int analogPin = 0;

      int val = 0;

       

      void setup() {

        Wire.begin();

      }

       

      void loop() {

       delay(50);

       val = map(analogRead(analogPin), 0, 1023, 255, 1);

       

       Wire.beginTransmission(SLAVE_ADDR);

       Wire.write(val);

       Wire.endTransmission();

       

      }


      //SLAVE

       

      #include <Wire.h>

      #define SLAVE_ADDR 9

       

      int LED = 13;

      int rd;

      int br;

       

      void setup() {

        pinMode(LED, OUTPUT);

        Wire.begin(SLAVE_ADDR);

        Wire.onReceive(receiveEvent);

       

        Serial.begin(9600);

        Serial.println("I2C Slave demo");

       

      }

       

      void receiveEvent(){

        rd = Wire.read();

        Serial.println(rd);

      }

      void loop() {

        delay(50);

       

        br = map(rd, 1, 255, 100, 2000);

       

        digitalWrite(LED, HIGH);

        delay(br);

        digitalWrite(LED, LOW);

        delay(br);

      }



      [kembali]

      5. Video 



      [kembali]

      6. Kondisi 

      Jika pada rangkaian komunikasi I2C menggunakan 2 slave, bagaimana cara master untuk menentukan berkomunikasi dengan slavaenya, apakah berkominikasi dengan slave 1 atau 2, jelaskan secara rangkaian dan program!

      Jawab :

      I2C merupakan jenis komunikasi yang memiliki kecepatan sangat tinggi dan 2 arah (timbal balik) dengan menggunakan 2 pin yaitu pin SDA dan SCL. Pada I2C data masuk dari master lalu ditransfer ke slave, begitu juga sebaliknya berlaku hubungan timbal balik.

      Pada rangkaian I2C menngunakan kondisi start dan stop untuk master berkomunikasi dengan slave. Jika ingin menambahkan device lain atau slave lain maka pin SDA dan SCL dihubungkan secara paralel ke jalur yang menghubungkan master dan slave 1. Cara master memilih slave yaitu master akan mentransferkan data ke slave denga logika HIGH yaitu pada rangkaian terdapat pada slave 1 sehingga LED paad slave 1 menyala sedangkan slave 2 diberi logika LOW.

      Seperti pada gambar rangkaian berikut :

      Gambar 1. Rangkaian sebelum dijalankan

      Gambar 2. Rangkaian setelah dijalankan

      Untuk menjalankan rangkaian tersebut menggunakan program arduino, dimana terdapat perbedaan pada program slave 1 dan slave 2 di bagian void loop yaitu slave 1 diberi logika HIGH dan slave 2 diberi logika LOW.

      ·         Slave 1

      void loop() {

        delay(50);

        br = map(rd, 1, 255, 100, 2000);

        digitalWrite(LED, HIGH);

        delay(br);

      }

      ·         Slave 2

      void loop() {

        delay(50);

        br = map(rd, 1, 255, 100, 2000);

        digitalWrite(LED, LOW);

        delay(br);

      }


      [kembali]

      7. Link Download

      Download Rangkaian Simulasi  [ DOWNLOAD ]
      Download Video Praktikum [ DOWNLOAD ]
      Download Program Arduino Master [ DOWNLOAD ]
      Download Program Arduino Slave[ DOWNLOAD ]
      Download HTML [ DOWNLOAD ]

      [kembali]









      Tidak ada komentar:

      Posting Komentar