PERCOBAAN 3

LAPORAN AKHIR II


1. Komponen [kembali]

power supply

arduino


Resistor

Potensiometer



motor DC






2. Rangkaian Simulasi [kembali]




Komponen yang digunakan pada rangkaian ini adalah 2 buah arduino uno yang berperan sebagai slave dan master, kemudian potensiometer, resistor, dan LED. Kaki output potesiometer dihubungkan pin analog A0 dari master, pin 13 dan pin 9 slave dihubungkan dengan resistor dan LED, pin A4 dan A5 master dan slave dari arduino uno saling dihubungkan. Pada listing program master, pertama deklarasikan library wire atau kabel, yang mana komunikasi I2C menggunakan kabel, deklarasikan alamat dari sebagai slave, variabel analogPin sebagai tipe data integer yang bernilai 0, dan variabel value sebagai tipe data integer yang bernilai 0. Pada void setup deklarasikan sintaks untuk memulai komunikasi wire. Pada void loop, deklarasikan variabel val sebagai pembanding nilai dari pot, yaitu 1023 merupakan bit maksimum dari pot dan 255 merupakan bit maksimum dari PWM, kemudian lanjut ke sintaks untuk memulai transmisi data dari master ke slave, memberikan nilai dari val, dan sintaks untuk menyelesaikan transmisi data. Pada listing program slave, pertama deklarasikan library wire atau kabel, alamat dari arduino slave (9), pin 13 sebagai variabel LED red dan pin 9 sebagai variable led blue dengan tipe data integer, dan variabel data rb dan br tipe data integer. Pada void setup, deklarasikan LED red dan blue sebagai output, kemudian memulai komunikasi dari slave ADDR. Pada fungsi void receiveEvent, rd berfungsi membaca data dari master. Pada void loop, LED akan hidup dan mati dengan delay sebesar nilai perbandingan br. Potensiometer berfungsi sebagai pengatur kecepatan mati dan hidupnya LED.

3. Flowchart [kembali]



4. Listing Program [kembali]

//MASTER


#include <Wire.h> 

#define MASTER_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(MASTER_ADDR); Wire.write(val);

Wire.endTransmission();


}

//SLAVE

#include <Wire.h> 

#define SLAVE_ADDR 9


int RED = 13;

int BLUE = 9;

int rd;

int br;



void setup() { 

  pinMode(RED, OUTPUT);

  pinMode(BLUE, 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(RED, HIGH); delay(br); digitalWrite(RED, LOW); delay(br);

digitalWrite(BLUE, HIGH); delay(br); digitalWrite(BLUE, LOW); delay(br);

}

5. Video [kembali]






6. Kondisi [kembali]

Percobaan 3

1. Jelaskan pengaruh nilai potensiometer terhadap output rangkaian

Jawab: 

            Jika nilai potensiometer diperbesar, maka tahanannya akan semakin besar. Pengaruhnya terhadap output (LED) pada rangkaian adalah semakin besar nilai potensiometer, maka LED akan hidup lebih lama dan mati juga lebih lama, begitupun sebaliknya semakin kecil nilai potensiometer maka LED akan hidup dan mati lebih singkat karena potensiometer berfungsi sebagai pengatur kecepatan kelap-kelip dari LED.

2. Jelaskan bagian mana dari rangkaian dan program yg diganti jika output di ubah menjadi motor DC

Jawab: 

            Pada rangkaian yang diubah adalah LEDnya. LED tersebut dapat kita ganti dengan motor DC dan kemudian mengubah resistornya menjadi  220 ohm. Untuk programnya kita dapat mengubah setiap kata ‘LED’ dengan  ‘Motor’. Mulai dari pendeklarasian pin motor, pendeklarasian motor sebagai output dan untuk logika motornya, yaitu menjadi seperti berikut

//SLAVE

#include <Wire.h>

#define SLAVE_ADDR 9

 

int motor = 13; int rd;

int br;

 

void setup() { pinMode(motor, 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(motor, HIGH); delay(br); digitalWrite(motor, LOW); delay(br);

}

3. Bagaimana mengontrol kecepatan dan arah Motor DC pada percobaan ini? Jelaskan! 

Jawab: 

            Dengan mengatur potensiometernya,, karena potensiometer berfungsi sebagai pengatur kecepatan motor DC. Pada program slave juga terdapat deklarasi br yang mengatur delay untuk jalan dan berhentinya motor.


7. Link Download [kembali]

HTML: disini

File rangkaian: disini

Listing program: disini

Video: disini

Librabry Arduino: disini







Tidak ada komentar:

Posting Komentar