Percobaan 3 modul3


a. LED


b. Potensiometer



Lampu LED mati
 

Lampu LED hidup




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

 

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

JAWAB:

Jika mengirim data, Master hanya dapat mengirimkan sejumlah byte (masing-masing 8 bit). Saat memuliah proses transmitting dari Master, 7 bit pertama sebagai alamat Slave yang akan dituju (Address frame), 1 bit kemudian sebagai R/W bit untuk memberitahukan ke Slave-slave apakah Master akan menerima atau mengirimkan data. Sedangkan bit ke-9, bit tersebut akan dikeluarkan oleh Slave sebagai tanda bahwa data telah diterima oleh receiver (ACK/NACK). Kemudian, Master akan menulis data 8 bit (Data frame) dan bit-9 oleh Slave sebagai sinyal acknowledge / ACK (berlogika 0) yang dikeluarkan Slave kembali untuk dapat menerima data selanjutnya hingga SDA menerima sinyal Not Acknowladge / NACK (berlogika 1) untuk mengakhirim transfer data.

2.     Apa pengaruh potensiometer terhadap output (LED)?

JAWAB:

Pada percobaan yang telah dilakukan kita menggunakan sebuah potensiometer, yang mana potensiometer tersebut berpengaruh terhadapap kecapatan clock pada LED, yaitu pada saat potensiometernya diperbesar maka, kecepatan delay led cepat, sehingga led akan berkedip maka kecepatan delay led lambat, sehingga led juga akan berkedip dengan sangat lambat pula.

3.     Jelaskan prinsip kerja I2C pada rangkaian

JAWAB:

Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya. Piranti yang dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai Master dan Slave. Master adalah piranti yang memulai transfer data pada I2C Bus dengan membentuk sinyal Start, mengakhiri transfer data dengan membentuk sinyal Stop, dan membangkitkan sinyal clock. Slave adalah piranti yang dialamati master.

Sinyal Start merupakan sinyal untuk memulai semua perintah, didefinisikan sebagai perubahan tegangan SDA dari “1” menjadi “0” pada saat SCL “1”. Sinyal Stop merupakan sinyal untuk mengakhiri semua perintah, didefinisikan sebagai perubahan tegangan SDA dari “0” menjadi “1” pada saat SCL “1”.

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.

Dalam melakukan transfer data pada I2C Bus, kita harus mengikuti tata cara yang telah ditetapkan yaitu:

  • Transfer data hanya dapat dilakukan ketikan Bus tidak dalam keadaan sibuk.
  • Selama proses transfer data, keadaan data pada SDA harus stabil selama SCL dalam keadan tinggi. Keadaan perubahan “1” atau “0” pada SDA hanya dapat dilakukan selama SCL dalam keadaan rendah. Jika terjadi perubahan keadaan SDA pada saat SCL dalam keadaan tinggi, maka perubahan itu dianggap sebagai sinyal Start atau sinyal Stop.
Video [ DOWNLOAD ]
Rangkaian Simulasi [ DOWNLOAD
Listing Program Master [ DOWNLOAD ]
Listing Program Slave [ DOWNLOAD ]
HTML [ DOWNLOAD ]

No comments:

Post a Comment