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
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.
{
//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.
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
- 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
The Best Casino Sites - JT Hub
BalasHapusJTG 청주 출장마사지 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 경주 출장마사지