Modul 3 Percobaan 3



 

1. Tujuan [kembali]

1.  Memahami tujuan penggunaan I2C
2.  Mengaplikasikan dan menjelaskan penggunaan I2C
3.    Memahami prinsip kerja komunikasi I2C

2. Komponen [kembali]

1. Arduino


Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain.

2. Potensiometer

Potensiometer adalah resistor tiga terminal dengan sambungan geser yang membentuk pembagi tegangan dapat disetel. Jika hanya dua terminal yang digunakan (salah satu terminal tetap dan terminal geser), potensiometer berperan sebagai resistor variabel atau Rheostat. Potensiometer biasanya digunakan untuk mengendalikan peranti elektronik seperti pengendali suara pada penguat.

3. Motor DC



Motor Listrik DC atau DC Motor adalah suatu perangkat yang mengubah energi listrik menjadi energi kinetik atau gerakan (motion). Motor DC ini juga dapat disebut sebagai Motor Arus Searah. Seperti namanya, DC Motor memiliki dua terminal dan memerlukan tegangan arus searah atau DC (Direct Current) untuk dapat menggerakannya. Motor Listrik DC ini biasanya digunakan pada perangkat-perangkat Elektronik dan listrik yang menggunakan sumber listrik DC seperti Vibrator Ponsel, Kipas DC dan Bor Listrik DC.

4. Ground




Ground adalah titik kembalinya arus searah atau titik kembalinya sinyal  bolak balik atau titik patokan dari berbagai titik tegangan dan sinyal listrik dalam rangkaian elektronika.

3. Rangkaian Simulasi [kembali]



Prinsip Kerja:

Pada rangkaian terdapat 2 buah Arduino (Master dan Slave), button, LED, dan ground. Untuk menjalankan rangkaian maka dibuat program Arduino untuk Master dan Slave. Untuk Master, dideklarasikan library Wire, variable SLAVE_ADDR 9, int analogPin = 0, dan int val = 0. Lalu, fungsi void setup() terdapat Wire.begin() dan dieksekusi sekali. Kemudian, void loop() yang dieksekusi berulang. Di dalamnya terdapat delay 50 ms. Lalu, val = map(analogRead(analogPin), 0, 1023, 255, 1); dimana analoPin akan dibaca, 0 dan 1023 dari ADC dengan 10 bit, dan 255, 1 dari PWM dengan 8 bit, sehingga diperlukan sintaks map. Lalu, transmisi dimulai dengan data dari val sebelumnya dan transmisi selesai.

Untuk Slave, dideklarasikan library Wire, variable SLAVE_ADDR 9, int LED = 13, int rd, dan int br. Kemudian fungsi void setup() dimana LED sebagai output, Wire.begin(SLAVE_ADDR), dan proses penerimaan data. Lalu, set baud rate 9600 dan menampilkan "I2C Slave demo". Pada fungsi receiveEvent() pada proses penerimaan data, terdapat delay 50 ms dan br = map(rd, 1, 255, 100, 2000). Lalu LED HIGH (hidup) , delay dari br, LED LOW (mati), dan delay dari br kembali.

Setelah program Arduino untuk Master dan Slave dibuat, lalu dipasang pada Arduino pada rangkaian. Ketika rangkaian dijalankan, ketika nilai tahanan pada potensiometer diatur (rd) maka akan mempengaruhi nilai br dan delay yang menggunakan nilai br. Apabila nilai tahanannya kecil, maka nilai br juga kecil sehingga delay nya pun semakin kecil. Dengan begitu, LED akan redup (hidup-mati) lebih cepat. Sedangkan jika nilai tahanannya besar, maka delay nya pun besar sehingga LED akan redup lebih lama.


4. Flowchart [kembali]






5. Listing Program [kembali]

//MASTER

#define button 2 //Deklarasi pin 2 untuk button

void setup()        //Semua kode dalam fungsi ini dieksekusi sekali
{
  pinMode(button, INPUT_PULLUP);
  Serial.begin(9600); //Set baud rate 9600
}

void loop()         //Semua kode dalam fungsi ini dieksekusi berulang
{
  int nilai = digitalRead(button);

  //Button ditekan
  if (nilai == 0)
  {
    Serial.print("1");
  }
  else
  {
    Serial.print("2");
  }

  delay(200);
}



//SLAVE

#define motor 13 //Deklarasi pin 13 untuk motor

void setup()    //Semua kode dalam fungsi ini dieksekusi sekali
{
  pinMode(motor, OUTPUT); //Deklarasi Motor sebagai output
  Serial.begin(34500);           //Set baud rate 34500
}

void loop()                          //Semua program dalam fungsi ini dieksekusi berulang
{
  if (Serial.available() > 0)
  {
    int data = Serial.read();
    if (data == '1') //Jika data yang dikirimkan berlogika
    {
      digitalWrite(motor, HIGH); //Motor menyala
    }
    else
    {
      digitalWrite(motor, LOW); //Motor mati
    }

  }
}

6. Video Rangkaian  [kembali]



7. Analisa [kembali]

1. jelaskan pengaruh nilai potensiometer terhadap output rangkaian
Analisa:
Potensiometer menyebabkan terjadinya perubahan kecepatan motor DC. Saat kaki tengah potensio kearah bawah mendekati kaki yang terhubung ke ground maka kecepatan motor akan berkurang hingga berhenti. Pada saat kondisi melambat hingga berhenti ini disebabkan karena hambatan tegangan power pada potensi menjadi besar sedangkan hambatan ke ground kecil, sehingga menyebabkan nilai tegangan yang didapat nilai pada ground yaitu 0 V. Sebaliknya, saat kaki tengah potensiometer dinaikkan arah atas mendekati kaki yang terhubung ke power maka kecepatan motor akan bertambah. Pada saat kondisi bertambah cepat, ini disebabkan karena hambatan tegangan power pada potensio menjadi kecil sedangkan hambatan ke ground besar, sehingga menyebakan nilai pada power yaitu mendekati max power yang digunakan. Maka jika pada potensiometer diatur sebesar 75%, maka kecepatan motor akan lebih lambat daripada gerak motor yang potensio diatur 90 %.

2. Pada komunikasi I2C, apakah memungkinkan menggunakan lebih dari 1 master dalam sistem yang sama? jelaskan alasannya
Analisa:
Pada komunikasi I2C, tidak bisa menggunakan 2 master karena dasar dari rangkaian hanya 1 (otak) maka hanya slave penggerak. Begitujuga 2 slave juga tidak bisa pada komunikasi I2C karena tidak memiliki pin slave select (SS) pada komunikasi I2C.

3. Bagaimana mengontrol kecepatan dan arah motor DC pada percobaan ini?Jelaskan!
Analisa:
Cara untuk mengontrol kecepatan serta arah motor DC dengan memperhatikan nilai potensiometer yang digunakan dalam rangkaian. Listing program menyesuaikan arah dari motor DC.

8. Link Download [kembali]

    HTML klik disini
    Rangkaian Simulasi klik disini
    Video Rangkaian klik disini
    Listing Program Master klik disini
    Listing Program Slave klik disini
    Flowchart klik disini
    Library Arduino klik disini
    Datasheet arduino klik  disini
    Datasheet Motor Dc klik disini
    Datasheet Resistor klik disini

Tidak ada komentar:

Posting Komentar

BAHAN PRESENTASI UNTUK MATAKULIAH SISTEM DIGITAL 2021 OLEH: Achmad Ridwan 1910951023 Dosen Pengampu: Darwison, M....