PERCOBAAN 3



1.komponen   [kembali]

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.

LED


Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan cahaya monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan semikonduktor.

Resistor

Resistor adalah komponen dasar elektronika yang umumnya digunakan pada rangkaian elektronika ataupun rangkaian listrik lainnya dengan fungsi utama yaitu menghambat/membatasi jumlah arus input atau arus yang mengalir masuk ke dalam satu rangkaian, dimana kemampuan resistor dalam membatasi arus masuk sesuai dengan spesifikasi resistor tersebut.

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.

2.RangkaianSimulasi   [kembali]


 Gambar Rangkaian  Percobaan 3



3. Flowchart  [kembali]




Gambar Flowchart Program Arduino Master

Gambar Flowchart Program Arduino Slave





4. Listing Program  [kembali]

//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);

}


5. Video  [kembali]






Video PenjelasanRangkaianPercobaan 

Cara kerja
merupakan komunikasi seial 2 arah pada rangkaian diatas digunakan komponen-komponen seperti 2 buah arduino, potensiometer, LED, resistor dan ground. potensiometer disini berfungsi sebagai input ke master, ketika potensiometer maksimum maka delay waktu idup dan mati lampu makin cepat begitupun sebaliknya. LED sebagai output dari slave.


6.kondisi [kembali]

Percobaan 3 komunikasi I2C

Analisa :

1.  Apakah kita dapat mengirim data sebanyak 9 bit?jelaskan alasannya

Jawab :

Tidak bisa karena I 2C merupakan serial bus dengan orientasi data 8 bit (byte), komunikasi 2 arah, dengan kecepatan transfer data sampai 100Kbit/s pada mode standart dan 3,4 Mbit/s pada mode kecepatan tinggi. rangkaian percobaan 3 memperlihatkan

 

2.   2. Bagaiamana cara master mengirimkan address ke slave? Berapa bit addresss yang dikirim? Berapa address untuk yang dapat tercipta oleh master?

Jawab :

format pembacaan/pengiriman data dari Master ke Slave dengan mempergunakan komunikasi serial I2C. Komunikasi antara Master dengan Slave dimulai dengan membangkitkan pulsa START oleh Master. Pulsa START dibaca oleh Slave pada bus SDA dalam keadaan LOW pada saat pulsa clock dalam keadaan HIGH. Setelah pulsa START dikirimkan, maka pada clock berikutnya Master mengirimkan 8 bit alamat, yang dikirimkan secara serial melalui bus SDA, ke Slave dengan format B6, B5, B4, B3, B2, B1, B0, dan R/W. Bit alamat tersebut mengandung informasi R/W pada LSB. Jika LSB pada byte alamat “1” maka master ingin membaca data dari Slave tetapi jika LSB byte alamat “0” maka master akan menulis pada slave. Karena hanya 7 bit yang dipergunakan dalam byte alamat maka banyaknya device yang dapat dijadikan slave hanya 127. Alamat 0 dipergunakan untuk General Call. Bila alamat dan perintah, Read atau Write, yang dikirimkan oleh master dapat diterima oleh slave maka slave akan membangkitkan pulsa LOW (ACK), pada bus SDA, jika perintah tersebut dapat dijalankan dan pulsa HIGH (NACK) jika perintah tersebut gagal. Sinyal dasar yang lain dalam I2C Bus adalah sinyal acknowledge yang disimbolkan dengan ACK Setelah transfer data oleh master berhasil diterima slave, slave akan menjawabnya dengan mengirim sinyal acknowledge, yaitu dengan membuat SDA menjadi “0” selama siklus clock ke 9. Ini menunjukkan bahwa Slave telah menerima 8 bit data dari Master

Address yang dapat tercipta oleh master dari kerja I2C bus dapat dibedakan menjadi format 7 bit addressing dan format 10 bit addressing,

Address byte terdiri dari bagian yang tetap dan bagian yang dapat diprogram, bagian yang tetap merupakan bawaan dari IC , sedangkan yang dapat diprogram biasanya berupa pin address pada IC yang bersangkutan, sebagai contoh IC PCF8591, memiliki address byte sbb : 1 0 0 1 A2 A1 A0 , dimana 1001 adalah bagian yang tetap dan A2,A1,A0 adalah bagian yang dapat diprogram sesuai dengan kondisi logika pada pin IC PCF8591. Sinyal Acknowledge (ACK) terjadi : Dari Slave ke Master Transmitter : · Sesudah address byte diterima dengan baik oleh slave · Setiap kali slave selesai menerima data byte dengan baik Dari Master Receiver ke Slave : · Setiap kali Master selesai menerima data byte dengan baik Sinyal Negative Acknowledge (NACK) terjadi : Dari Slave ke Master Transmitter : · Setelah slave gagal menerima address byte dengan baik · Setiap kali slave gagal menerima data byte dengan baik · Slave tidak terhubung pada bus Dari Master Receiver ke slave : · Setelah Master menerima data byte yang terakhir dari slave




File HTML - download
File rangkaian  - download
File video - download
File Library Arduino download
File Datasheet  download







Tidak ada komentar:

Posting Komentar