LA 2 Modul 3



  1. Tujuan [back]

    a. Untuk memahami komunikasi I2C

    b. Mengaplikasikan komunikasi I2C ke Arduino


    Kondisi: Mengubah output LED menjadi output Motor DC


2. Alat dan Bahan [back]

    a. Alat


  • Potensiometer
 
Potensiometer adalah sebuah jenis resistor yang mengatur sebuah tahanan atau hambatan secara linier atau Komponen resistif tiga kawat yang bertindak sebagai pembagi tegangan yang menghasilkan sinyal output tegangan variabel kontinu yang sebanding dengan posisi fisik wiper di sepanjang trek.
  • Resistor




Resistor adalah komponen elektronika yang berfungsi untuk menghambat atau membatasi aliran listrik yang mengalir dalam suatu rangkain elektronika
  • Motor DC
Alat yang berfungsi untuk mengubah energi listrik menjadi energi mekanik
  • Arduino Uno

Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital  dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya.

   b. Bahan

    -Software Arduino
    IDE itu merupakan kependekan dari Integrated Developtment Enviroenment, atau secara bahasa mudahnya merupakan lingkungan terintegrasi yang digunakan untuk melakukan pengembangan. Disebut sebagai lingkungan karena melalui software inilah Arduino dilakukan pemrograman untuk melakukan fungsi-fungsi yang dibenamkan melalui sintaks pemrograman. Arduino menggunakan bahasa pemrograman sendiri yang menyerupai bahasa C. Bahasa pemrograman Arduino (Sketch) sudah dilakukan perubahan untuk memudahkan pemula dalam melakukan pemrograman dari bahasa aslinya. Sebelum dijual ke pasaran, IC mikrokontroler Arduino telah ditanamkan suatu program bernama Bootlader yang berfungsi sebagai penengah antara compiler Arduino dengan mikrokontroler.





Prinsip Kerja:
Pada percobaan ini dilakukan percobaan I2C untuk melakukan komunikasi antar dua Arduino UNO. Sebuah arduino digunakan sebagai master dan yang lainnya sebagai slave. Hubungan arduino MASTER-SLAVE terhubung pada pin SDA dan SCL masing-masing pada pin A4 dan A5. Pada pin A0 arduino master terhubung ke push potensiometer, potensiometer terubung ke VCC  dan ke ground. Kecepatan Motor DC akan berputar mengikuti nilai potensiometer







//MASTER

#include <Wire.h>  //Deklarasi library Wire
#define SLAVE_ADDR 9  //Deklarasi pin 9 untuk alamat slave

int analogPin = 0;  //Deklarasi nilai analogPin sama dengan 0
int val = 0;  //Deklarasi nilai variabel val adalah 0

void setup() {  //Merupakan fungsi yang dieksekusi sekali
  Wire.begin();  //Inisiasi library Wire
}

void loop() {  //Merupakan fungsi yang dieksekusi berulang atau looping
 delay(50); //Penundaan eksekusi selama 50 ms
 val = map(analogRead(analogPin), 0, 1023, 255, 1); //Mengubah atau mapping nilai dari pembacaan analog dari range 0-1023 menjadi 255-1 dan dimasukkan ke variabel val
 
 Wire.beginTransmission(SLAVE_ADDR);  //Memulai transmisi data ke alamat slave yang dituju
 Wire.write(val);  //Menulis data pada slave
 Wire.endTransmission();  //Mengakhiri transmisi data ke slave
 
}

//Slave
#include <Wire.h>  //Deklarasi library Wire
#define SLAVE_ADDR 9  //Deklarasi pin 9 milik alamat slave

int MOTOR = 13;  //Deklarasi pin 13 terhubung ke Motor
int rd;  //Deklarasi variabel rd
int br;  //Deklarasi variabel br

void setup() {  //Fungsi ini dieksekusi sekali
  pinMode(MOTOR, OUTPUT);  //Deklarasi Motor sebagai Output
  Wire.begin(SLAVE_ADDR);  //Inisiasi library Wire dan Alamat Slave
  Wire.onReceive(receiveEvent);  //Memanggil fungsi ketika slave mendapat transmisi dari master

  Serial.begin(9600);  //Set baud rate 9600
  Serial.println("I2C Slave demo");  //Mencetak data
 
}

void receiveEvent(){  //Deklarasi variabel receiveEvent
  rd = Wire.read();  //Memasukkan data pembacaan ke variabel rd
  Serial.println(rd);  //Mencetak nilai rd
}
void loop() {  //Fungsi yang dieksekusi berulang atau looping
  delay(50);  //Mendelay eksekusi 50 ms

  br = map(rd, 1, 255, 100, 2000);  // //Mengubah atau mapping nilai variabel rd dari range 1-255 menjadi 1000-2000 dan dimasukkan ke variabel br

  digitalWrite(MOTOR, HIGH);  //Motor diberi logika 1 sehingga motor menyala
  delay(br);  //Eksekusi program delay selama br

}






1. Jelaskan pengaruh potensiometer terhadap output rangkaian
Jawab:
Pengaruh potensiometer yaitu mengatur kecepatan pada output yang mana pada Motor DC. Jika nilai potensiometer besar mak tinggi kecepatan/laju dari Motor DC juga cepat. Begitu juga sebaliknya, yang berarti pengaruh potensiometer dengan kecepatan motor berbanding lurus

2. Jelaskan bagian mana dari program dan rangkaian yang diganti jika outputnya diubah menjadi Motor DC
Jawab:
Untuk rangkaian yang diubah ialah output rangkaian tersebut, dimana LED diganti dengan Motor DC pada rangkaian percobaan
Untuk program yang diganti ialah semua variabel LED diganti dengan variabel MOTOR pada program arduino slave. Diantaranya yaitu:  deklarasi pin 13 terhubung ke motor, deklarasi motor sebagai output dan pemberian logika pada motor

3. Bagaimana mengotrol kecepatan Motor DC dan arah Motor DC pada percobaan
Jawab:
untuk mengatur kecepatan Motor DC ialah dengan mengatur nilai potensiometer. Dimana hubungan antara keduanya berbanding lurus
Untuk mengubah arah motor ialah menukar posisi input dan output arus pada motor. Jika menggunakan L239D caranya ialah menukar logika antara kedua input.





Tidak ada komentar:

Posting Komentar