Laporan Akhir 2 Modul 3 (Percobaan 3)




1. Jurnal
[Kembali]

Kondisi
Lakukan komunikasi I2C sesuai pada modul

2. Alat dan Bahan [Kembali]
2.1 Arduino

Arduino merupakan sebuah perangkat elektronik yang bersifat open source dan sering digunakan untuk merancang dan membuat perangkat elektronik serta software yang mudah untuk digunakan. Arduino ini dirancang sedemikian rupa untuk mempermudah penggunaan perangkat elektronik di berbagai bidang.

Arduino ini memiliki beberapa komponen penting di dalamnya, seperti pin, mikrokontroler, dan konektor yang nanti akan dibahas lebih dalam selanjutnya. Selain itu, Arduino juga sudah menggunakan bahasa pemrograman Arduino Language yang sedikit mirip dengan bahasa pemrograman C++. 

A. Bagian-bagian arduino uno:

1. Power USB
Digunakan untuk menghubungkan PapanArduino dengan komputer lewat koneksi USB
2. Power jack
Supply atau sumber listrik untuk Arduino dengan tipe Jack. Input DC 5 - 12 V.
3. Crystal Oscillator
Kristal ini digunakan sebagai layaknya detak jantung pada Arduino.  Jumlah cetak    menunjukkan 16000 atau 16000 kHz, atau 16 MHz.
4. Reset
Digunakan untuk mengulang program Arduino dari awal atau Reset.
5. Digital Pins I / O
Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika ( 0 atau 1 ). Pin berlabel " ~ " adalah pin-pin PWM ( Pulse Width Modulation ) yang dapat digunakan untuk menghasilkan PWM.
6. Analog Pins
Papan Arduino UNO memiliki 6 pin analog A0 sampai A5. Digunakan untuk membaca sinyal atau sensor analog seperti sensor jarak, suhu dsb, dan mengubahnya menjadi nilai digital.
7. LED Power Indicator
Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik dengan baik.
Bagian-Bagian Pendukung
1. RAM
RAM (Random Access Memory) adalah tempat penyimpanan sementara pada komputer yang isinya dapat diakses dalam waktu yang tetap, tidak memperdulikan letak data tersebut dalam memori atau acak. Secara umum ada 2 jenis RAM yaitu SRAM (Static Random Acces Memory) dan DRAM (Dynamic Random Acces Memory).
2. ROM

ROM (Read-only Memory) adalah perangkat keras pada computer yang dapat menyimpan data secara permanen tanpa harus memperhatikan adanya sumber listrik. ROM terdiri dari Mask ROM, PROM, EPROM, EEPROM. 

2.2 Breadboard

Breadboard merupakan sebuah board atau papan yang berfungsi untuk merancang sebuah rangkaian elektronik sederhana. Breadboard tersebut nantinya akan dilakukan prototipe atau uji coba tanpa harus melakukan solder.

Umumnya breadboard terbuat dari bahan plastik yang juga sudah terdapat berbagai lubang. Lubang tersebut sudah diatur sebelumnya sehingga membentuk pola yang didasarkan pada pola jaringan di dalamnya. Selain itu, breadboard yang bisa ditemukan di pasaran umumnya dibagi menjadi 3 ukuran. Pertama dinamakan sebagai mini breadboard, kedua disebut medium breadboard, dan yang terakhir dinamakan sebagai large breadboard.
2.3 Jumper


Kabel jumper adalah kabel elektrik yang memiliki pin konektor di setiap ujungnya dan memungkinkanmu untuk menghubungkan dua komponen yang melibatkan Arduino tanpa memerlukan solder. Intinya kegunaan kabel jumper ini adalah sebagai konduktor listrik untuk menyambungkan rangkaian listrik. Biasanya kabel jamper digunakan pada breadboard atau alat prototyping lainnya agar lebih mudah untuk mengutak-atik rangkaian.

Jenis jenis kabel jumper yang paling umum adalah sebagai berikut:
    • Kabel Jumper Male to Male
      Kabel Jumper Male to Male

      Jenis yang pertama adalah kabel jumper male male. Kabel jumper male to male adalah adalah jenis yang sangat yang sangat cocok untuk kamu yang mau membuat rangkaian elektronik di breadboard.

    • Kabel Jumper Male to Female
      Kabel Jumper Male to Female

      Kabel jumper male female memiliki ujung konektor yang berbeda pada tiap ujungnya, yaitu male dan female.

      Biasanya kabel ini digunakan untuk menghubungkan komponen elektronika selain arduino  ke breadboard
    • Kabel Jumper Female to Female

      Kabel Jumper Female to Female
      Jenis kabel jumper yang terakhir adalah kabel female to female. Kabel ini sangat cocok untuk menghubungkan antar komponen yang memiliki  header male
    2.4 Kabel USB Arduino

    Kabel Data Mini USB ini biasa digunakan sebagai kabel untuk transfer data antar dua perangkat dan sebagai kabel untuk pemrograman Arduino yang memiliki soket Mini USB seperti Arduino uno standar.

    2.5 LED RED



    LED (Light Emitting Diode) adalah Sebuah lampu kecil yang digunakan sebagai penanda atau pointer. Light Emitting Diode adalah salah satu komponen elektronika yang terbuat dari bahan semi konduktor jenis dioda yang mempu mengeluarkan cahaya. Strukturnya juga sama dengan dioda, tetapi pada LED elektron menerjang sambungan P-N (Positif-Negatif). Untuk mendapatkan emisi cahaya pada semikonduktor, doping yang pakai adalah galium, arsenic dan phosporus. Jenis doping yang berbeda menghasilkan warna cahaya yang berbeda pula.

    2.6 Resistor 220 ohm



    Resistor merupakan komponen penting dan sering dijumpai dalam sirkuit Elektronik. Boleh dikatakan hampir setiap sirkuit Elektronik pasti ada Resistor. Tetapi banyak diantara kita yang bekerja di perusahaan perakitan Elektronik maupun yang menggunakan peralatan Elektronik tersebut tidak mengetahui cara membaca kode warna ataupun kode angka yang ada ditubuh Resistor itu sendiri.

    Tabel Kode Warna Resistor
    Perhitungan untuk Resistor dengan 4 Gelang warna :


    Cara menghitung nilai resistor 4 gelang

    Masukkan angka langsung dari kode warna Gelang ke-1 (pertama)
    Masukkan angka langsung dari kode warna Gelang ke-2
    Masukkan Jumlah nol dari kode warna Gelang ke-3 atau pangkatkan angka tersebut dengan 10 (10n)
    Merupakan Toleransi dari nilai Resistor tersebut

    Contoh :
    Gelang ke 1 : Coklat = 1
    Gelang ke 2 : Hitam = 0
    Gelang ke 3 : Hijau = 5 nol dibelakang angka gelang ke-2; atau kalikan 105
    Gelang ke 4 : Perak = Toleransi 10%
    Maka nilai Resistor tersebut adalah 10 * 105 = 1.000.000 Ohm atau 1 MOhm dengan toleransi 10%.

    Perhitungan untuk Resistor dengan 5 Gelang warna :

    Cara Menghitung Nilai Resistor 5 Gelang Warna

    Masukkan angka langsung dari kode warna Gelang ke-1 (pertama)
    Masukkan angka langsung dari kode warna Gelang ke-2
    Masukkan angka langsung dari kode warna Gelang ke-3
    Masukkan Jumlah nol dari kode warna Gelang ke-4 atau pangkatkan angka tersebut dengan 10 (10n)
    Merupakan Toleransi dari nilai Resistor tersebut

    Contoh :
    Gelang ke 1 : Coklat = 1
    Gelang ke 2 : Hitam = 0
    Gelang ke 3 : Hijau = 5
    Gelang ke 4 : Hijau = 5 nol dibelakang angka gelang ke-2; atau kalikan 105
    Gelang ke 5 : Perak = Toleransi 10%
    Maka nilai Resistor tersebut adalah 105 * 105 = 10.500.000 Ohm atau 10,5 MOhm dengan toleransi 10%.

     Contoh-contoh perhitungan lainnya :

    Merah, Merah, Merah, Emas → 22 * 10² = 2.200 Ohm atau 2,2 Kilo Ohm dengan 5% toleransi
    Kuning, Ungu, Orange, Perak → 47 * 10³ = 47.000 Ohm atau 47 Kilo Ohm dengan 10% toleransi

    Cara menghitung Toleransi :
    2.200 Ohm dengan Toleransi 5% =
    2200 – 5% = 2.090
    2200 + 5% = 2.310
    ini artinya nilai Resistor tersebut akan berkisar antara 2.090 Ohm ~ 2.310 Ohm

    2.7 Potensiometer

    Potensiometer (POT) adalah salah satu jenis Resistor yang Nilai Resistansinya dapat diatur sesuai dengan kebutuhan rangkaian elektronika ataupun kebutuhan pemakainya. Sebuah Potensiometer (POT) terdiri dari sebuah elemen resistif yang membentuk jalur (track) dengan terminal di kedua ujungnya. Sedangkan terminal lainnya (biasanya berada di tengah) adalah Penyapu (Wiper) yang dipergunakan untuk menentukan pergerakan pada jalur elemen resistif (Resistive). Pergerakan Penyapu (Wiper) pada Jalur Elemen Resistif inilah yang mengatur naik-turunnya Nilai Resistansi sebuah Potensiometer. 

    Simbol dan bentuk Potensiometer dapat dilihat pada gambar 9 berikut.

    Gambar Bentuk dan Simbol Potensiometer 


    2.8 Arduino IDE

    Arduino IDE adalah software yang digunakan untuk membuat sketch pemrogaman atau dengan kata lain arduino IDE sebagai media untuk pemrogaman pada board yang ingin diprogram. Arduino IDE ini berguna untuk mengedit, membuat, meng-upload ke board yang ditentukan, dan meng-coding program tertentu. Arduino IDE dibuat dari bahasa pemrogaman JAVA, yang dilengkapi dengan library C/C++(wiring), yang membuat operasi input/output lebih mudah.

    2.9 Laptop


    Laptop adalah perangkat keras dimana pada praktikum ini akan digunakan untuk tempat kita akan melisting program dan mengupload serta mencompile dari software arduino IDE.

    3. Rangkaian Simulasi
    [Kembali]


    4. Prinsip Kerja Rangkaian
    [Kembali]
    Pada Percobaan ini, digunakan alat dan bahan seperti 2 Arduino (Untuk Slave dan Master), Potensiometer
    LED, Resistor 220 ohm, Kabel Jumper, Breadboard, Kabel USB, Arduino IDE, dan Laptop.
    Setelah semua terangkai, kita akan selanjutnya membuat listing program untuk
    menjalankannya. Pertama pada slave kita hubungkan pin 13 dengan LED yang seri dengan resistor 220 ohm pada kaki anoda dan kaki katodanya terhubung ke ground.
    Selanjutnya beralih ke master. Pada master, kita menghubungkan pin VCC(5V) arduino ke pin VCC
    dari potensiometer dan kita menghubungkan pin GND pada potensiometer ke pin GND arduino
    .Selanjutnya, kita hubungkan pin A0 dengan pin OUT pada potensiometer. Setelah itu, kita menghubungkan
    pin SDA yakni A4 pada master ke pin SDA A4 pada slave dan juga pin SCL A5 pada master dan pin
    A5 SCL pada slave. Setelah semua terangkai, kita selanjutnya masuk ke listing program.
    //MASTER
    
    #include <Wire.h> 
    #define MASTER_ADDR 12
    
    int analogPin = 0; 
    int val = 0;
       
    void setup() {
      Wire.begin();
      Serial.begin(9600);
    }
    
    void loop() { 
    delay(50);
    val = map(analogRead(analogPin), 0, 1023, 255, 1);
    
    Wire.beginTransmission(MASTER_ADDR); 
    Wire.write(val);
    Wire.endTransmission();
    Serial.println(val);
    }
    
    
    PENJELASAN PROGRAM

    Prinsip kerja dari program master yaitu pertama-tama menginput libray yang digunakan yakni wire.h. Setelah itu, kita mendefinisikan alamat master pada pin 12 arduino master. Setelah itu, kita memmbuat variabel analog pin dan val = 0 dengan tipe data integer. Setelah itu kita membuat fungsi void setup () dimana kode didalam fungsi ini akan dieksekusi sekali. Didalam fungsi ini terdapat Wire.begin() untuk memulai wire. Selain itu, terdapatSerial.begin(9600); untuk mengatur kecepatan pengiriman data 9600 bps melalui port serial.

    Selanjutnya, kita membuat fungsi void loop() dimana kode di dalam fungsi ini akan dieksekusi
    berulang. Didalam fungsi ini terdapat delay 50 ms, terdapat variabel val untuk memetakan analog
    pin, 0-1023, 1-255. Selanjutnya, kita memulai transmisi dengan Wire.beginTransmission(MASTER_ADDR);
    . Setelah itu kita membuat Wire.write(val); Dan setelah itu kita akan mengakhiri transmisi dengan
    Wire.endTransmission(); dan kita kan print nilai varibel val pada serial monitor dengan Serial.println(val);

    #include <Wire.h> 
    #define SLAVE_ADDR 12
    
    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);
    Serial.println(br);
    digitalWrite(LED, HIGH); 
    delay(br); 
    digitalWrite(LED, LOW); 
    delay(br);
    
    }
    
    PENJELASAN PROGRAM

    Prinsip kerja dari program master yaitu pertama-tama menginput libray yang digunakan yakni wire.h. Setelah itu, kita mendefinisikan alamat slave pada pin 12 arduino. Setelah itu, kita membuat variabel br dan rd serta mendeklarasikan pin 13 digunakan untk LED. Selanjutnya fungsi void setup () dimana kode didalam fungsi ini akan dieksekusi sekali. pinMode(LED, OUTPUT); untuk mendeklarasikan LED sebagai output.
    Wire.begin(SLAVE_ADDR); memulai komuikasi I2C dengan variabel SLAVE_ADDR. Selanjutnya,
    Wire.onReceive(receiveEvent); untuk menunjukkan bahwa slave menerima data dari receiveEvent.
    Selain itu, terdapatSerial.begin(9600); untuk mengatur kecepatan pengiriman data 9600 bps
    melalui port serial. Terakhir di dalam fungsi ini terdapat Serial.println("I2C Slave demo"); untuk
    menampilkan text "I2C Slave demo" pada serial monitor.

    Selanjutnya terdapat fungsi void receiveEvent() untuk
    menunjukkan kode yang ada fidalam fungsi ini sebagai penerima:
    Didalam fungsi ini terdapat rd=Wire.read(); untuk variabel rd membaca nilai yang terbaca dari komunikasi I2C.
    Selanjutnya terdapat Serial.println(rd);} untuk memprint nilai yang terbaca pada
    variabel rd pada serial monitor. Selanjutnya kita membuat fungsi void loop()
    dimana kode dalam fungsi ini akan dieksekusi berulang.Selain itu kita beri
    delay selama 50ms setelah eksekusi. Setelah itu terdapat br = map(rd, 1, 255, 100, 2000);
    untuk menunjukkan tentang nilai rd, tentang but tegangan (1-255),dan rentang waktu (100-2000).
    Selain itu terdapat Serial.println(br); untuk memprint nilai variabel br pada serial monitor.
    Selanjutnya terdapat digitalWrite(LED, HIGH); menunjukkan LED hidup. delay(br); menunjukkan jeda waktu br ms setelah dieksekusi.
    digiralWrite(LED, LOW); menunjukkan LED mati dan terakhir delay(br);} menunjukkan jeda waktu br ms setelah dieksekusi.
    Setelah dirangkai, kita upload dengan menghubungkan menggunakan kabel USB arduino master dan slave ke laptop. Prinsip kerja rangkaian ini adalah, arduino master akan mengirimkan data dengan bantuan sinyal clock ke slave. data dikirimkan memalui pin SDA dan clock melalui pin SCL. data dari master berupa besar tegangan atau nilai potensiometer yang akan dikirimkan ke slave dan diolah oleh slave sehingga slave akan mengeluarkan output LED  hidup atau mati sesuai dengan data dari slave sehingga dapat diatur juga lamanya hidup dan mati.

    5. Video Rangkaian [Kembali]



    6. Analisa [Kembali]

    1. Analisa apa yang akan terjadi jika master mengirimkan data angka lebih dari 255 ke slave? 

    Jawab :
    Yang akan terjadi jika master mengirimkan data angka lebih dari 255 ke slave akan balik ke 1 dan tentang jadi acak. Hal ini dapat terlihat lampu LED hidup dan mati secara cepat yang menandakan 1 serta data juga mengikuti data sebelumnya. 

    2. Analisa apa yang akan terjadi jika pin SCL atau pin SDA diputus?

    Jawab :
    Yang terjadi apabila pin SDA di putus adalah datanya tidak dikirimkan sehingga mengikuti data sebelumnya. Dan apabila pin SCL di putus maka clocknya tidak dikirimkan sehingga mengikuti clock sebelumnya. Hal ini dapat terlihat ketika potensiometernya diatur, tidak berpengaruh ke LED karena data nilai potensiometernya tidak dikirimkan. Walaupun SCL dicabut, tetap tidak dikirimkan datanya. 

    7. Link Download [Kembali]

    No comments:

    Post a Comment

      BAHAN PRESENTASI KULIAH TEKNIK ELEKTRO UNAND Disusun Oleh: Muhammad Dafa NIM : 2010951044 Dosen Pembimbing: 1. Dr. Darwison, MT 2. Zaini, ...