PERCOBAAN 3 MODUL 3







1. Komponen [Kembali]

A. Arduino 

 

Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri. Saat ini Arduino sangat populer di seluruh dunia. Banyak pemula yang belajar mengenal robotika dan elektronika lewat Arduino karena mudah dipelajari. Tapi tidak hanya pemula, para hobbyist atau profesional pun ikut senang mengembangkan aplikasi elektronik menggunakan Arduino. Bahasa yang dipakai dalam Arduino bukan assembler yang relatif sulit, tetapi bahasa C yang disederhanakan dengan bantuan pustaka-pustaka (libraries) Arduino.

Input/output digital atau digital pin adalah pin pin untuk menghubungkan arduino dengan komponen atau rangkaian digital. contohnya , jika ingin membuat LED berkedip, LED tersebut bisa dipasang pada salah satu pin input atau output digital dan ground. komponen lain yang menghasilkan output digital atau menerima input digital bisa disambungkan ke pin pin ini. Input analog atau analog pin adalah pin pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. contohnya , potensiometer, sensor suhu, sensor cahaya, dll.


B. POTENSIOMETER


Potensiometer (POT) adalah salah satu jenis Resistor yang Nilai Resistansinya dapat diatur sesuai dengan kebutuhan Rangkaian Elektronika ataupun kebutuhan pemakainya. Potensiometer merupakan Keluarga Resistor yang tergolong dalam Kategori Variable Resistor. Secara struktur, Potensiometer terdiri dari 3 kaki Terminal dengan sebuah shaft atau tuas yang berfungsi sebagai pengaturnya.

C. LED

Pengertian LED (Light Emitting Diode) dan Cara Kerjanya – 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. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada Remote Control TV ataupun Remote Control perangkat elektronik lainnya.


2. Gambar Rangkaian Simulasi [Kembali]



Gambar 1.rangkaian simulasi



Gambar 2.flow chart kondisi


//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 Simulasi [Kembali]



6. Prinsip Kerja Rangkaian dan Analisa [Kembali]

Percobaan 3

1.    Apakah kita bisa mengirimkan data sebanyak 9 bit? Jelaskan

Tidak bisa karena pada kumunikasi I2C ini pada pengiriman datanya dapat dilihat seperti ini :

Maka dapat dilihat pada pengiriman data pada I2C pada bit kesembilan itu digunakan sebagai ACK adalah status acknowladge (logik 0) yang harus keluar untuk bisa menerima data selanjutnya. Semua perintah atau step bit demi bit mengikuti hentakan signal clock, hingga SDA menerima signal Not acknowladge  (logik 1) dari slave device yang berarti mengakhiri  transfer data / stop.

2.    Apa pengaruh potensio terhadap Output atau LED?

Pengaruh potensio pada rangkian ini terhadap output adalah intensitas dari hidup matinya led atau kedipan led. Semakin besar hambatan potensiometer maka semakin besar delay pada perintah kedipan led pada akhir listing program slave sehingga lampu akan lama hidup dan akan lama juga mati atau led akan berkedip sangat pelan. Sebaliknya apabila potensio memiliki hambatan rendah maka delay nya kecil pada perintah kedipan led sehingga led akan hidup sebentar dan mati sebentar atau led berkedip dengan cepat.

3.    Jelaskan prinsip kerja I2C pada rangkaian

Rangkaian dimulai dari sumber 5V dari master ke potensio dan arus masuk ke pin 0A sebagai input dan diolah oleh master etelahnya dikirim ke slave dan diproses atau dieksekusi dan dikeluarkan output. Untuk lebih jels kita lihat dari listing programnya.

a)    Master

//MASTER

 

#include <Wire.h>

#define SLAVE_ADDR 9

 

int analogPin = 0;

int val = 0;

 

void setup() {

  Wire.begin();

}

·       Pertama pada listing program ini adalah deklarasi library wire karena pada  komunikasi I2C kita menggunakan library wire dan deklarasi variabel SLAVE_ADDR 9 untuk mempermudah memilih pada slave. Selanjutnya pemberian nilai awal pada analogpin int (analogPin = 0) dan variabel val (int val = 0). Pada fungsi void setup saya memasukan perintah memulai I2C dengan perintah Wire.begin(),

void loop() {

  delay(50);

  val = map(analogRead(analogPin), 0, 1023, 255, 1);

 

  Wire.beginTransmission(SLAVE_ADDR);

  Wire.write(val);

  Wire.endTransmission();

 

}

·   Pada listing program selanjutnya adalah fungsi void loop yang berisikan perintah delay 50 ms selanjutnya rumus mencari nilai val dengan pemetaan nilai yang dibaca pada analogpin yang didapat dari potensiometer dan diamsukan ke rumus. Sehingga pemetaan tersebut dimasukan ke variabel val. Selanjutnya Wire.beginTransmission(SLAVE_ADDR) untuk memulai pengiriman data ke salve dan selanjutnya Wire.write(val) untuk penyetaan dari nilai val dan selanjutnya Wire.endTransmission() untuk menghentikan pengiriman data. 

b)    Slave

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

 

}

·  Pada program slave ini kita menggunakan library wire dan variabel SLAVE_ADDR 9 agar sama dengan master. Deklarasikan Pin 13 masuk ke variabel LED dan inisialisasi variabel rd dan br. Untuk void setup nya saya memberi perintah adalah pin LED saya berikan perintah sebagai output. Wire.begin(SLAVE_ADDR) digunakan untuk memulai dari komunikasi I2C. Wire.onReceive(receiveEvent) perintah ini digunakan untuk menerima data dengan variabel receiverEvent. Selanjutnya memberi kecepatan mengirim data 9600 dan mencetak kata "I2C Slave demo" pada layar

 

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

}

 

·       Pada listing program selanjutnya adalah fungsi void untuk mendapatkan atau menerima data yang dikirimkan. Isi void tersebut adalah dengan memasukan nilai yang terbaca pada Wire.read() atau yang dikirimkan ke slave ke variabel rd dan kemudian nilai rd tersebut dicetak dengan perintah Serial.println(rd).listing selanjutnya adalah fungsi loop dijalankan yang berisikan delay 50 ms dan selanjutnya mencari nilai dari br yang didapatkan dari sintak  br = map(rd, 1, 255, 100, 2000) yang merupakan pemetaan dari nilai rd yang diterima dari master tadi. Selanjutnya pin LED diberi logika high sehingga LED hidup dan selanjutnya diberi delay sebesar “br” ms sehingga lampu hidup selama delay yang dimasukan sebesar “br” ms setelahnya dijalankan perintah pi LED diberi logika low sehingga lampu mati dan diberi delay “br” ms. Maka lama lampu mati selama “br” ms kemudian barulah loop diulang.

·    Jadi kesimpulannya semakin besar potensio maka semakin besar delay dan kedipan LED semakin pelan. Sebaliknya jika potensio kecil maka delay dihasilkan juga kecil sehingga kedipan LED semakin cepat.


7. Link Download [Kembali]

Download Rangkaian Simulasi  disini
Download Video simulasi  disini
Download HTML  disini
Download Program Arduino  disini

Tidak ada komentar:

Posting Komentar