Jumat, 15 Juli 2016

[MIKROKONTROLLER] LAPORAN PRAKTIKUM



LAPORAN PRAKTIKUM
Matakuliah Mikrokontroler











Nama
:
I GUSTI LANANG NGURAH ASTIKA
Nim
:
1415313058
Dosen Pengampu
:
I Nyoman Kusuma Wardana, M.Sc





Program Studi Teknik Listrik
Jurusan Teknik Elektro
Politeknik Negeri Bali
2016


                                    
[PRAKTIKUM 1]     
Digital I/O

I.     Dasar Teori
Digital Input / Output (Digital I/O) adalah komponen yang paling mendasar dari sebuah MCU (Main Control Unit) yang menghubungkan mikrokontroler dengan dunia luar. Antarmuka dengan dunia luar tersebut dikenal dengan istilah PORT. Port adalah titik di mana data internal dari chip MCU keluar atau data eksternal berjalan masuk. Port terdiri dari beberapa PIN, Port pada mikrokontroler biasanya diberi nama PortA, PORTB, PORTC, PORTD. Contoh konfigurasi pin dari MCU Atmega 328P ditunjukkan pada gambar berikut :



            


Pin Mikrokonroller Atmega328

        ATMega 328 memiliki 3 buah PORT utama yaitu PORT B, PORT C, dan PORT D dngan total pin input/output sebanyak 23 pin. PORT tersebut dapat difungsikan sebagai input/output digital atau difungsikan sebagai periperal lainnya.
1.    PORT B
Port B merupakan jalur data 8 bit yang dapat difungsikan sebagai input/output. Selain itu Port B juga dapat memiliki fungsi alternatif seperti dibawah ini.
         a.       ICP1 (PB0), berfungsi sebagai Timer Counter 1 input capture pin.
         b.      OC1A (PB1), OC1B (PB2), dan OC2 (PB3)dapat difungsikan sebagai keluaran PMW (Pulse Width Modulation).
         c.       MOSI (PB3), MISO (PB4), SCK (PB5), SS (PB2) merupakan jalur komunikasi SPI.
         d.      Selain itu pin ini juga berfungsi sebagai jalur pemrograman serial (ISP).
         e.       TOSC1 (PB6) dan TOSC2 (PB7) dapat difungsikan sebagai sumber clock external untuk timer.
f.       XTAL1 (PB6) dan XTAL2 (PB7) merupakan sumber clock utama mikrokontroller.

2.    Port C
Port C merupakan jalur data 7 bit yang dapat difungsikan sebagai input/output digital. Fungsi alternatif PORT C antara lain sebagai berikut.
a.       ADC6 channel (PC0,PC1, PC2, PC3, PC4, PC5) dengan resolusi sebesar 10 bit. ADC dapat kita gunakan untuk mengubah input yang berupa tegangan analog menjadi data digital.
b.      I2C (SDA dan SDL) merupakan salah satu fitur yang terdapat pada PORT C. I2C digunakan untuk komunikasi dengan sensor atau device lain yang memiliki komunikasi data type I2C seperti sensor kompas, accelerometer nunchuck.

      3.      Port D
Port D merupakan jalur data 8 bit yang masing-masing pin-nya juga dapat difungsikan sebagai input/output.  Sama seperti Port B dan Poer C. Port D juga memiliki fungsi alternatif dibawah ini.
a.       USART (TXD dan RXD) merupakan jalur data komunikasi serial dengal level sinyal TTL. Pin TXD berfungsi untuk mengirimkan data serial, sedangkan RXD kebalikannya yaitu sebagai pin yang befungsi untuk menerima data serial.
b.      Interrupt (INT0 dan INT1) merupakan pin dengan fungsi khusus sebagai interupsi hardware. Interupsi biasanya digunakan sebagai selaan dari program, misalkan pada saat program berjalan kemudian terjadi interupsi hardware/software maka program utama akan berhenti dan akan menjalankan program interupsi.
c.       XCK dapat difungsikan sebagai sumber clock external untuk USART, namun kita juga dapat memanfaatkan clock dari CPU, sehingga tidak  perlu membutuhkan external clock.
d.      T0 dan T1 berfungsi sebagai masukan counter external untuk timer 1 dan timer 0.
e.       AIN0 dan AIN1 keduanya merupakan masukan input untuk analog comporator.

       


I.                        Alat dan Bahan
Alat dan bahan percobaan diperlihatkan pada Tabel 2:

Tabel 2. Alat dan Bahan Praktikum

No
Alat dan Bahan
Jumlah
1
Arduino Uno R3
1
2
Modul /Rangkaian percobaan
1
3
Kabel USB
1
4
Kabel jumper
Secukupnya







III. Langkah Percobaan
III.1 Percobaan Blink LED
            a.      Koneksi Hardware
Dengan menggunakan kabel jumper, koneksikan Led pada mudul (rangkaian)  ke  pin-pin Arduino Uno R3 dengan konfigurasi sebagai berikut:
  •      Menghubungkan salah satu kaki resistor dengan pin 13 dari Arduino
  •     Menghubungkan kaki resistor yang lagi satu dengan kaki anoda dari led
  •     Menghubungkan kaki katoda led dengan ground pada arduino
Gambar 2. Skematik Percobaan Blink Led
Gambar 3. Breadboard Percobaan Blink Led

  

            b.      Pemrograman Pada Arduino
            Sketch program pada arduino dapat dilihat dibawah ini:

int Led1 = 13;
void setup() {
pinMode(Led1, OUTPUT);  // konfigurasi atau mensetting     pin 13 sebagai output

}

void loop() {
  digitalWrite(Led1, HIGH);   // Untuk menghidupkan LED 
  delay(1000);              // waktu tunda
  digitalWrite(Led1, LOW);    // untuk mematikan LED
  delay(1000);              // tunda waktu
}



 III.2 Percobaan PushButton ON/OFF
       a.      Koneksi Hardware
Dengan menggunakan kabel jumper, koneksikan Led dan Pushbutton pada mudul(rangkaian)  ke  pin-pin Arduino Uno R3  dengan konfigurasi sebagai berikut:
  •  Menghubungkan kaki Anoda Led1 ke pin 13 Arduino
  •   Menghubungkan Pushbutton1 ke pin 2 Arduino


Gambar 4. Skematik Percobaan Pushbutton ON/OFF


 Gambar 5. Breadboard Percobaan Pushbutton ON/OFF

           b.      Pemrograman Pada Arduino
           Sketch program pada arduino dapat dilihat dibawah ini:
const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == LOW) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
  }
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
} 


III.3 Percobaan Kombinasi Multi Pushbutton Dan Multi Led
      a.      Koneksi Hardware
Dengan menggunakan kabel jumper, koneksikan Led dan Pushbutton pada mudul(rangkaian)  ke  pin-pin Arduino Uno R3  dengan konfigurasi sebagai berikut:
  •  Menghubungkan kaki Anoda Led1 ke pin 13 Arduino
  •  Menghubungkan kaki Anoda Led2 ke pin 12 Arduino
  •  Menghubungkan kaki Anoda Led3 ke pin 11 Arduino
  • Menghubungkan kaki Anoda Led4 ke pin 10 Arduino
  •  Menghubungkan Pushbutton1 ke pin 2 Arduino
  •  Menghubungkan Pushbutton2 ke pin 3 Arduino


 Gambar 6. Skematik Percobaan Kombinasi Multi Pushbutton Dan Multi Led


 Gambar 7. Breadboard Percobaan Kombinasi Multi Pushbutton Dan Multi Led

           b.      Pemrograman Pada Arduino
Sketch program pada arduino dapat dilihat dibawah ini:
const int buttonPin1 = 2;
const int buttonPin2 = 3;    
const int ledPin1 =  13;
const int ledPin2 =  12;
const int ledPin3 =  11;
const int ledPin4 =  10;

void setup() {

  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(buttonPin1, INPUT);
  pinMode(buttonPin2, INPUT);
}

void loop() {
 
    digitalRead(buttonPin1);
    digitalRead(buttonPin2);
    if (buttonPin1 == HIGH) {
    // jalan kanan
    digitalWrite(ledPin1,HIGH);
    digitalWrite(ledPin2,LOW);
    digitalWrite(ledPin3,LOW);
    digitalWrite(ledPin4,LOW);
     delay (1000);
    digitalWrite(ledPin1,LOW);
    digitalWrite(ledPin2,HIGH);
    digitalWrite(ledPin3,LOW);
    digitalWrite(ledPin4,LOW);
     delay (1000);
    digitalWrite(ledPin1,LOW);
    digitalWrite(ledPin2,LOW);
    digitalWrite(ledPin3,HIGH);
    digitalWrite(ledPin4,LOW);
     delay (1000);
    digitalWrite(ledPin1,LOW);
    digitalWrite(ledPin2,LOW);
    digitalWrite(ledPin3,LOW);
    digitalWrite(ledPin4,HIGH);
     delay (1000);
    }
   
  else {
    digitalWrite(ledPin1,LOW);
    digitalWrite(ledPin2,LOW);
    digitalWrite(ledPin3,LOW);
    digitalWrite(ledPin4,LOW);
      delay (1000);
 
  }
}




IV. Hasil dan Pembahasan
Pada percobaan ini kami menggunakan Arduino dengan mikroprosesor ATMega 328P, dimana pin- pin yang kami gunakan adalah pin digital, pin-pin tersebut akan dipakai baik sebagai input maupun output. Seperti dalam percobaan yang kami lakukan Pushbutton dipakai sebagai input dan Led dipakai sebagai output. Ketika kami membuat pin digital arduino sebagai input, maka pada program di arduino.ide kami menuliskan “ pinMode(buttonPin, INPUT); , kemudian jika kita ingin membuat pin arduino sebagai output maka untuk pin mode kita dapat tuliskan “pinMode(ledPin, OUTPUT); “. Dan untuk membaca hasil inputan dari pushbuttonnya dapat digunakan “digitalRead(buttonPin); “ .













[PRAKTIKUM 2]
Analog I/O


I.                   Dasar Teori

ANALOG PIN
Pin analog pada Arduino (dan mikrokontroller lain pada umumnya) dapat digunakan untuk input dan output digital. Hanya saja pin analog memiliki fitur untuk dapat mengubah sinyal analog yang masuk menjadi nilai digital yang mudah diukur. Pin digital hanya dapat mengenali sinyal 0 volt sebagai nilai LOW dan 5 volt sebagai nilai HIGH. Sedangkan Pin analog dapat mengenali sinyal pada rentang nilai voltase tersebut. Hal ini sangat berguna ketika kita hendak mengukur sesuatu dari sensor dan menggunakan nilai masukan tersebut untuk keperluan lain.

 Gambar pin-pin Analog input

Arduino menggunakan cara Pulsa Wide Modulasi (PWM) atau modulasi lebar pulsa untuk menghasilkan analog output yang dikehendaki. Metode PWM ini menggunakan pendekatan perubahan lebar pulsa untuk menghasilkan nilai tegangan analog yang diinginkan. Pin yang difungsikan sebagai PWM analog output akan mengeluarkan sinyal pulsa digital dengan frekwensi 490 Hz dimana nilai tegangan analog diperoleh dengan merubah Duty Cycle atau perbandingan lamanya pulsa HIGH terhadap periode (T) dari sinyal digital tersebut. Jika pulsa HIGH muncul selama setengah dari periode sinyal maka akan menghasilkan duty cycle 5o% yang berarti sinyal analog yang dihasilkan sebesar setengah dari tegangan analog maksimal yaitu 1/2 dari 5 V atau sama dengan 2,5 V begitu juga halnya jika pulsa HIGH hanya seperempat bagian dari periode sinyal maka tegangan analog identik yang dihasilkan adalah 1/4 dari 5V = 1,25 V dan seterusnya.

 Gambar skema dari PMW

POTENSIOMETER
Potensiometer adalah kenop yang menghasilkan resistansi/hambatan variabel. Potensiometer memiliki 3 kaki (ada yang memiliki lebih dari 3 kaki, tapi biasanya kelipatan 3 dan pada dasarnya ada 3 jenis kaki), yakni dua kaki terluar yang masing-masing dihubungkan dengan 5V dan GND, dan kaki tengah yang menghasilkan keluaran nilai analog. Pada rangkaian di atas, kaki tengah potensiometer dihubungkan ke pin A5. Pin A5 akan menerima sinyal voltase dengan besaran sesuai dengan putaran kenop potensiometer. Semakin dekat putaran ke arah 5V, maka nilai resistansi akan semakin kecil sehingga nilai voltase yang keluar akan semakin besar mendekati 5V. Begitu pula sebaliknya. Sinyal tersebut akan dikonversi ke nilai angka dan ditampilkan pada jendela Serial Monitor.
 Gambar Potensiometer




II.       Alat dan Bahan
        Alat dan bahan percobaan diperlihatkan pada Tabel 2:

Tabel 2. Alat dan Bahan Praktikum

No
Alat dan Bahan
Jumlah
1
Arduino Uno R3
1
2
Modul /Rangkaian percobaan
1
3
Kabel USB
1
4
Kabel jumper
Secukupnya


III.     Langkah Percobaan
      III.1 Percobaan Input Potensiometer
            a.      Koneksi Hardware
Dengan menggunakan kabel jumper, koneksikan Potensiometer yang ada pada mudul(rangkaian)  ke  pin-pin Arduino Uno R3  dengan konfigurasi sebagai berikut:

  • Menghubungkan kaki 1 potensiometer dihubungkan ke sumber tegangan (VCC)
  • Menghubungkan kaki 2 potensiometer dihubungkan ke pin A1 dari arduino uno
  • Menghubungkan kaki 3 potensiometer dihubungkan ke groun (GND)


Gambar 2. Skematik Percobaan Input Potensiometer

 Gambar 3. Breadboard Percobaan Input Potensiometer

           b.      Pemrograman Pada Arduino
           Sketch program pada arduino dapat dilihat dibawah ini:

int pinPot = A2;//pin untuk menerima sinyal analog dari potensiometer
int val = 0;//variabel unttuk menyimpan nilai konversi analog ke digital
void setup() {
  Serial.begin(9600);//setup koneksi serial
}

void loop() {
 val = analogRead(pinPot); //baca nilai analog dari potensiometer
 Serial.println(val); //kirim nilai val ke koneksi serial
 delay(100);//jeda waktu
}

III.2 Percobaan Input Potensiometer Output Led
      a.      Koneksi Hardware
Dengan menggunakan kabel jumper, koneksikan Potensiometer dan Led yang ada pada mudul(rangkaian)  ke  pin-pin Arduino Uno R3  dengan konfigurasi sebagai berikut:
  • Menghubungkan kaki 1 potensiometer dihubungkan ke sumber tegangan (VCC)
  •  Menghubungkan kaki 2 potensiometer dihubungkan ke pin A1 dari arduino uno
  • Menghubungkan kaki 3 potensiometer dihubungkan ke groun (GND)
  • Menghubungkan Led ke pin 13 dari arduino


 Gambar 2. Skematik Percobaan Input Potensiometer Out Led

 Gambar 3. Breadboard Percobaan Input Potensiometer Out Led

            b.      Pemrograman Pada Arduino
            Sketch program pada arduino dapat dilihat dibawah ini:
int led = 13;//memilih pin digital untuk lampu led
int pinPot = A2;//pin untuk menerima sinal analog
int potVal = 0;//variabel untuk menyimpan nilai konversi analog ke digital
void setup() {
  pinMode(led,OUTPUT);
  }

void loop() {
  potVal=analogRead(pinPot);//baca nilai analog dari potensiometer
  potVal=map(potVal,0,1023,0,255);//ubah nilai (0-1023) menjadi (0-255)
  analogWrite(led,potVal);//ubah nilai vR untuk mengatur kecerahan led
 
}


IV. Hasil dan Pembahasan
Untuk percobaan Analog I/O ini, dari sekian pin-pin analog arduino yang ada pin A0 sampai dengan pin A5, dimana hanya pin A2 yang dipakai sebagai analog input. Seperti percobaan diatas Potensiometer dipakai sebagai input dan Led dipakai sebagai output. Dan jika kita ingin membuat pin analog arduino sebagai input, maka pada program di arduino.ide kita dapat menulis “ int pinPot = A2; “ , dan untuk membaca hasil inputan dari potensiometer dapat digunakan “ val = analogRead(pinPot); “ dan “int Val;” dipakai untuk menyimpan nilai konversi analog ke digital. Kemudian untuk mengubah nilai dari (0-1023) menjadi (0-255) dengan menuliskan “ potVal=map(potVal,0,1023,0,255); ”. Sedangkan jika kita ingin mengatur nyala Led dengan potensiometer maka pada program arduino dapat ditulis sebagai berikut “ analogWrite(led,potVal); “ .




[PRAKTIKUM 3]
Statement Control


I. Dasar Teori
          Statement control  adalah sebuah statement yang terdiri dari kondisi-kondisi yang dimana jika kondisi tersebut terpenuhi program akan melakukan suatu instruksi tertentu. Jadi dapat di katakan statement control merupakan penunjuk arah bagi urutan suatu program.
     Dalam bahasa C++ ada beberapa jenis statement control sebagai berikut  :
if
If  Operator  if  mengetest sebuah kondisi seperti nilai analog sudah berada di bawah nilai yang kita kehendaki atau belum, apabila terpenuhi maka akan mengeksekusi baris program yang ada dalam brackets kalau tidak terpenuhi maka akan mengabaikan baris program yang ada dalam brackets.


If ( someVariable ?? value )
  {
     //DoSomething;
  }

 





 if… else
Operator if…else mengtest sebuah kondisi apabila tidak sesuai dengan kondisi yang pertama maka akan mengeksekusi baris program yang ada di else.

 
If ( inputPin == HIGH )
    {
       //Laksanakan rencana A;
    }
  Else
    {
       //Laksanakan rencana B;
    }










for
Operator for digunakan dalam blok pengulangan tertutup. 


For ( initialization; condition; expression )
    {
       //doSomethig;
    }


while
Operator while akan terus mengulang baris perintah yang ada dalam bracket sampai ekspresi sebagai kondisi pengulangan benilai salah


While ( someVariable ?? value )
    {
       //doSomething;
    }

 






do… while
Sama halnya dengan while() hanya saja pada operator Do…while tidak melakukan pengecekan pada awal tapi di akhir, sehingga otomatis akan melakukan satu kali baris perintah walaupun pada awalnya sudah terpenuhi.
 
Do
    {
       //doSomething;
    }
  While ( someVariable ?? value );





II. Alat dan Bahan
Alat dan bahan percobaan diperlihatkan pada Tabel 2:

Tabel 2. Alat dan Bahan Praktikum

No
Alat dan Bahan
Jumlah
1
Arduino Uno R3
1
2
Modul /Rangkaian percobaan
1
3
Kabel USB
1
4
Kabel jumper
Secukupnya


III. Langkah Percobaan
     III.1 Percobaan For Control (Kombinasi nyala Led berdasarkan button yang ditekan)
      a.      Koneksi Hardware
Dengan menggunakan kabel jumper, koneksikan Led dan Pushbutton pada mudul(rangkaian)  ke  pin-pin Arduino Uno R3  dengan konfigurasi sebagai berikut:
  • Menghubungkan Pushbutton1 ke pin 3 Arduino
  •  Menghubungkan Pushbutton2 ke pin 4 Arduino
  •  Menghubungkan Pushbutton3 ke pin 5 Arduino
  •  Menghubungkan Pushbutton4 ke pin 6 Arduino
  •  Menghubungkan kaki Anoda Led1 ke pin 7 Arduino
  •  Menghubungkan kaki Anoda Led2 ke pin 8 Arduino
  •  Menghubungkan kaki Anoda Led3 ke pin 9 Arduino
  •  Menghubungkan kaki Anoda Led4 ke pin 10 Arduino



 Gambar 1. Skematik Percobaan For Controll


 Gambar 2. Breadboard Percobaan For Controll



            b.      Pemrograman Pada Arduino
            Sketch program pada arduino dapat dilihat dibawah ini:

const int button1= 3;     // the number of the pushbutton pin
const int button2= 4;     // the number of the pushbutton pin
const int button3= 5;     // the number of the pushbutton pin
const int button4= 6;     // the number of the pushbutton pin
const int led1=  7;      // the number of the LED pin
const int led2=  8;      // the number of the LED pin
const int led3=  9;      // the number of the LED pin
const int led4=  10;      // the number of the LED pin


void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  pinMode(button3, INPUT);
  pinMode(button4, INPUT);
}


void loop() {
if(digitalRead(button1)==LOW){
  digitalWrite(led1,HIGH);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
 }
  else if (digitalRead(button2)==LOW){
  digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  }
  else if (digitalRead(button3)==LOW){
  digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led4,LOW);
  }
   else if (digitalRead(button4)==LOW){
  digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led4,HIGH);
   }
  delay(2);
}


IV. Hasil dan Pembahasan
Pada percobaan praktikum kali ini kami menggunakan fungsi if-else dimana program akan berjalan ketika kondisinya terpenuhi, dan ketika kondisi pertama tidak terpenuhi maka program akan mencari kondisi yang lain, kemudian jika kondisinya terpenuhi program akan terus berjalan. Dalam hal ini program akan memeriksa kondisi dari pushbutton yang ditekan dan nyala Led sebagai pertandanya. Ketika pushbutton 1 ditekan maka hanya satu Led yang akan menyala, kemudian ketika pushbutton 2 ditekan maka dua Led yang akan menyala, terus ketika pushbutton 3 ditekan maka tiga Led yang akan menyala, dan yang  terakhir ketika pushbutton 4 ditekan maka empat Led akan menyala. Hasil dari praktikum yang kami lakukan bisa dilihat pada gambar 3 di bawah ini.

 
 Gambar 3. Hasil praktikum






[PRAKTIKUM 4]
Sensor Interfacing


I.                  Dasar Teori
Dalam penggunaan umum, sebuah  Interfacing atau interface (antarmuka, penghubung adalah sebuah titik, wilayah, atau permukaan di mana dua zat atau benda berbeda bertemu; dia juga digunakan secara metafora untuk perbatasan antara benda. Kata interface kadangkala (biasanya dalam bidang teknik) disingkat menjadi "i/f".
Bentuk kerja dari interface berarti menghubungkan dua atau lebih benda pada suatu titik atau batasan yang terbagi, atau untuk menyiapkan kedua benda untuk tujuan tersebut.
Kata interface juga memiliki arti khusus:

  • Dalam elektronik dan teknik kompu, sebuah antarmuka dapat berarti:
    • Batasan fisik dari dua subsistem atau alat.
    • Sebuah bagian atau sirkuit di beberapa subsistemyang mengirim atau menerima sinyal ke atau dari subsistem lainnya: antar muka jaringan, antarmuka video, kartu network.
    • Sebuah standar yang menjelaskan sebuah himpunan karakteristik yang berfungsi, karakteristik interkoneksi fisik umum, dan karakteristik signal untuk pertukaran data atau signal; antarmuka USB, antarmuka ACSI
  • Dalam telekomunikasi, sebuah titik interkoneksi antara pengguna peralatan terminal dan fasilitas komunikasi komersial.
  • Dalam teknik perangkat lunak, ia adalah sebuah spesifikasi dari properti sebuah komponen software yang komponen lainnya dapat bergantung kepadanya: lihat antar muka (ilmu komputer).
  • Dalam kimia adalah permukaan antara dua fase yang berbeda dalah campuran "heterogeneous".
  • Dalam geologi, ia mungkin juga sebuah permukaan atau lapisan "anomalous" antara dua "epoch" geologikal yang berbeda atau jenis batuan
  • Antar muka adalah fungsi dan atribut sensor dari suatu sistem (aplikasi, perangkat lunak, kendaraan, dll) yang berhubungan dengan pengoperasiannya oleh pengguna.




Gambar 1. Sensor Flowmeter

Keterangan:
Pada gambar sensor flowmeter diatas untuk babel berwarna merah untuk VCC, kemudian kabel yang berwarna hitam untuk grunding (GND), dan kabel berwarna kuning untuk data.
Flowmeter merupakan alat yang berfungsi untuk mengukur kecepatan aliran dan volume fluida liquid maupun gas. Kerja dari flowmeter ini yaitu fluida berupa gas menggerakkan kincir yang dihubungkan dengan motor sehingga saat kincir berputar maka motor juga ikut berputar dan dapat menghasilkan ggl induksi. Pengkondisi sinyal membuat sinyal tegangan ggl induksi dari motor dapat terbaca oleh arduino, lalu LCD dapat manampilkan hasil pengukuran dari flow meter



Gambar 2. Sensor DS18B20

DS1820 adalah sensor suhu yang dikeluarkan oleh Dallas Semiconductor. Untuk membacanya menggunakan protokol 1 wire communication. Dimana hanya ada tiga kabel yang terdiri dari +5V, GND dan DQ (Data Input/Output). Keunggulan dari DS1820 adalah, output berupa data digital dengan nilai ketelitian 0,5 derajat Celcius sehingga mempermudah pembacaan oleh mikrokontroller.
           

                                 Gambar 3. LCD (Liquid Crystal Display)

Dan komponen yang dipakai untuk menampilkan hasil pembacaan sensor yaitu LCD. LCD atau Liquid Crystal Display adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama. Dan pada percobaan kali ini saya menggunakan LCD 16x2 yang artinya LCD tersebut terdiri dari 16 kolom dan 2 baris karakter (tulisan).

II. Alat dan Bahan
Alat dan bahan percobaan diperlihatkan pada Tabel 2:

Tabel 2. Alat dan Bahan Praktikum

No
Alat dan Bahan
Jumlah
1
Arduino Uno R3
1
2
Modul /Rangkaian percobaan
1
3
Kabel USB
1
4
Sensor Suhu (DS1820)
1
5
Sensor Aliran (Flow Meter)
1
6
Kabel jumper
Secukupnya


III. Langkah Percobaan
      III.1 Percobaan Interfacing Arduino Dan Sensor
      a.      Koneksi Hardware
Dengan menggunakan kabel , koneksikan Sensor Flowmeter dan Sensor Suhu (DS18B20) pada pin-pin Arduino Uno R3  dengan konfigurasi sebagai berikut:

  • Menghubungkan kabel merah dari sensor Flowmeter ke sumber tegangan (VCC).
  •  Menghubungkan kabel hitam dari sensor Flowmeter ke ground (GND).
  •  Menghubungkan kabel kuning dari sensor Flowmeter ke pin 2 Arduino.
  •  Menghubungkan kabel merah dari sensor DS18B28 ke sumber tegangan (VCC).
  •   Menghubungkan kabel hitam dari sensor DS18B28 ke sumber ground (GND).
  •  Menghubungkan kabel kuning dari sensor DS18B28 ke pin 7 Arduino.
  •  Menghubungkan pin RS LCD ke pin 12 Arduino.
  •  Menghubungkan pin E LCD ke pin 11 Arduino.
  • Menghubungkan pin D4 LCD ke pin 5 Arduino.
  • Menghubungkan pin D5 LCD ke pin 4 Arduino.
  • Menghubungkan pin D6 LCD ke pin 3 Arduino.
  • Menghubungkan pin D7 LCD ke pin 6 Arduino.
  • Menghubungkan pin RW LCD ke Ground (GND) Arduino.
  • Menghubungkan pin VSS LCD ke Ground (GND) Arduino.
  • Menghubungkan pin VCC LCD ke sumber tegangan (VCC) Arduino.



Gambar 2. Skematik Percobaan Seven Segment


Gambar 3. Breadboard Percobaan Seven Segment

  1. Pemrograman Pada Arduino
  Pemrograman pada Arduino diperlihatkan sebagai berikut:

    // Include the libraries we need
#include <OneWire.h>
#include <DallasTemperature.h>
// include the library code:
#include <LiquidCrystal.h>

// Data wire is plugged into port 7 on the Arduino
#define ONE_WIRE_BUS 7

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);



// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 6);
    volatile int flow_frequency; // Measures flow sensor pulses
    unsigned int l_hour; // Calculated litres/hour
    unsigned char flowsensor = 2; // Sensor Input
    unsigned long currentTime;
    unsigned long cloopTime;
    void flow () // Interrupt function
    {
       flow_frequency++;
    }
    void setup()
    {
      // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  //lcd.print("SUHU:");

  // Start up the library
  sensors.begin();
    
       pinMode(flowsensor, INPUT);
       digitalWrite(flowsensor, HIGH); // Optional Internal Pull-Up
       Serial.begin(9600);
       attachInterrupt(0, flow, RISING); // Setup Interrupt
       sei(); // Enable interrupts
       currentTime = millis();
       cloopTime = currentTime;
    }
   
    void loop ()
    {
       currentTime = millis();
       // Every second, calculate and print litres/hour
       if(currentTime >= (cloopTime + 1000))
       {
          cloopTime = currentTime; // Updates cloopTime
          // Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min.
          l_hour = (flow_frequency * 60 / 7.5); // (Pulse frequency x 60 min) / 7.5Q = flowrate in L/hour
          flow_frequency =0; // Reset Counter
          lcd.setCursor(0, 1);
          lcd.print("           ");
          lcd.setCursor(0, 1);
          lcd.print("Flow: ");
          lcd.print(l_hour); // Print litres/hour
          lcd.setCursor(12, 1);
          lcd.print("L/H");
          //lcd.clear();
 
       }
       sensors.requestTemperatures();
       lcd.setCursor(0,0);
       lcd.print("SUHU: ");
       lcd.print(sensors.getTempCByIndex(0));
       lcd.print(" C");
       delay(500);
      
    }


IV. Hasil dan Pembahasan
Pada praktikum ini saya belajar tentang interfacing sensor dengan arduino,dimana pada praktikum ini sensor akan terhubung dengan arduino sehingga sensor dapat mengirim data hasil pengukuran suhu dan aliran kemudian data tersebut diterima oleh arduino untuk seterusnya ditampilkan pada LCD. Agar hasil pembacaan sensor dapat ditampilkan  pada LCD maka kita perlu menuliskan apa saja yang kita ingikan untuk muncul contoh ‘’ lcd.print("SUHU:"); ‘’  perintah tersebut digunakan untuk memunculkan saja dan letaknya masih belum beraturan, maka untuk mengatur tata letaknya kita harus memasukan perintah berikut “lcd.setCursor(0,0); ” maksud dari lcd.setCursor (0,0); ini adalah kita akan menulis di LCD pada number colom ke 0, number baris ke 0. Hasil dari praktikum yang kami lakukan bisa dilihat pada gambar 4 di bawah ini.





Gambar 4. hasil praktikum
  








Daftar Pustaka








1 komentar:

  1. The Best Casino Sites - JT Hub
    JTG 청주 출장마사지 is an online gambling website that has become part of 군산 출장샵 JTG's online gaming software portfolio, and 제주도 출장안마 has 영주 출장마사지 become the newest casino online to join the 경주 출장마사지

    BalasHapus