Laporan Akhir 3 (Modul 3)


[menuju akhir]





Gambar 1 Resistor
Gambar 2. Potensiometer

Gambar 3. LED

Gambar 4. Arduino Uno

2. Rangkaian Simulasi [kembali]


Gambar 5. Rangkaian Simulasi
Prinsip Kerja
     Rangkaian diatas merupakan rangkaian komunikasi I2C. Rangkaian tersebut terdiri dari 2 arduino yang berfungsi sebagai master dan slave. Pada komunikasi I2C dapat menggunakan lebih dari 1 slave. Pada rangkaian tersebut terdapat potensiometer yang dapat mengubah nilai tegangan yang diinginkan. Sinyal dari Potensio tersebut masuk ke pin A0 arduino master yang kemudian dilakukan perhitungan sesuai program. Data yang telah dihitung dikirim melalui Pin A4 sebagai pin data yang terhubung dengan A4 pada slave. Pin A5 merupakan pin clock. Lalu setelah data diterima oleh arduino slave output akan dikeluarkan oleh pin 13 yang kemudian diterima resistor lalu mengarah ke led lalu ke ground. Saat potensiometer tinggi maka delay pada led saat berkedip akan lebih lama dibandingkan saat resisstansi potensiometer rendah.



Gambar 6. Flowchart
 
//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);
}
 
//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);
}



1. Apa fungsi library Wire.h?

Jawaban:

Karena kita melakukan komunikasi I²C maka perlulah dimasukkan library Wire.h Hal ini disebabkan karena Wire.h merupakan library yang didalamnya terdapat perrhitungan/function yang diperlukan untuk I²C.

2. Bagaimana pengaruh resistansi potensiometer terhadap output led?

Jawaban:

Semakin besar potensiometer maka LED akan hidup-mati dalam waktu yang lama karena delay pada perogram tergantung dari nilai input dari potensiometer begitu pula sebaliknya.

3. Bagaimana jika slave dan master lebih dari 1 atau Komunukasi banyak arduino?

Jawaban:

Pada I²C dapat menggunakan lebih dari 1 slave dan master. Namun pemilihan slave tidak dijalankan secara bersamaan melainkan hanya salah satu saja tergantung dari sinyal ss dari master.


7. Download [kembali]

1. Video Download Di sini
2. HTML Download Di sini
3. Rangkaian Download Di sini
4. List Program Download Di sini
5. Library Arduino Download Di  sini
6. Datasheet arduino Dwonload Di  sini
[Kembali ke atas]

Tidak ada komentar:

Posting Komentar