LAPORAN PRAKTIKUM
Matakuliah Mikrokontroler
Praktikum 1 : Digital Input/Output
Praktikum 2 : Analog Input/Output
Praktikum 3 : Stetament Control
Praktikum 4 :Sensor Interfacing
Praktikum 2 : Analog Input/Output
Praktikum 3 : Stetament Control
Praktikum 4 :Sensor Interfacing
| 
Nama | 
: | 
I MADE KRISNA PUTRA  | 
| 
Nim | 
: | 
1415313062 | 
| 
Dosen Pengampu | 
: | 
I Nyoman Kusuma Wardana, M.Sc | 
Program
Studi Teknik Listrik
Jurusan Teknik Elektro
Politeknik Negeri Bali
2016
Praktikum 1
Digital Input/Output
      I. Dasar Teori
  Digital berarti sinyal yang dikirimkan / diterima
bernilai 1 atau 0, on atau off, HIGH atau LOW.  Berbeda      
dengan sinyal analog yang nilainya bersifat kontinyu, yakni nilai antara 0 dan
1 dipertimbangkan atau terdapat rentangan nilai dari 0 sampai 1. Secara umum
pin pada Arduino dapat dikonfigurasi ke dalam dua mode, yaitu mode input dan
output. Mode input berarti mengeset pin agar dapat digunakan untuk menerima
masukan sinyal dari komponen  yang
terhubung ke board arduino. Mode output berarti mengeset pin agar dapat
mengirimkan sinyal dari arduino ke komponen lain atau ke rangkaian digital.
Untuk mengeset mode pin, kita gunakan fungsi pin Mode(). Fungsi ini biasanya digunakan di dalam fungsi setup(). fungsi ini memerlukan dua
parameter, pin Mode([nomorPin]. Parameter
pertama diisi oleh nomor pin, dan parameter keduadiisi oleh konstanta INPUT atau OUTPUT, sesuai dengan mode
yang ingin kita gunakan. 
       II. Alat dan Bahan
            Alat dan bahan percobaan diperlihatkan pada Tabel 2:
Tabel 2. Alat dan Bahan Praktikum
| 
No | 
Alat dan Bahan | 
Jumlah | 
| 
1 | 
Board 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
               Dengan menggunakan kabel jumper, koneksikan Led pada mudul (rangkaian)  ke          pin-pin Arduino Uno R3  dengan konfigurasi sebagai berikut :
Gambar 1. Skematik Percobaan Blink Led
Gambar 2. 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:
Gambar 3. Skematik Percobaan PushButton ON/OFF
Gambar 4. BreadBoard Percobaan PushButton  ON/OFF
      b.      Pemrograman
Pada Arduino
         Sketch program pada arduino dapat dilihat dibawah ini:
| 
int pushButton = 2; 
int LedPin = 13; 
void setup() { 
    pinMode(pushButton,
  INPUT); 
   
  pinMode(LedPin,OUTPUT); 
} 
void loop() { 
 
  digitalRead(pushButton); 
  if (pushButton
  == HIGH) { 
   
  digitalWrite(LedPin,HIGH); 
  } 
  else 
   
  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. 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
kita menggunakan pin-pin digital dari arduino, dimana
pin-
 pin tersebut akan dipakai baik sebagai input maupun output. Seperti 
pada percobaan menggunakan push button dan resitor. Tahanan pada 
resistor yang di gunakan harus sesuai dengan yang di perlukan pada 
rangkaian program arduino. 
Praktikum 2
Analog Input/Output
  
I. Dasar Teori 
      Secara teori suatu analog output
akan mengeluarkan output tegangan bervariasi sesuai dengan nilai yang
dikehendaki, maka seharusnya pin output analog Arduino seharusnya mampu
mengeluarkan tegangan output dengan kisaran tegangan dari 0 V sampai 5V. Akan
tetapi tidak demikian adanya, karena pin-pin Arduino yang difungsikan sebagai
output sebenarnya hanya mampu sebagai digital output yaitu hanya mampu
mengeluarkan tegangan 0V atau 5V.  Lalu bagaimana Arduino menangani Analog
Output tersebut. 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.
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 1. Skematik Percobaan Input Potensiometer
Gambar 2. Breadboard Percobaan Input Potensiometer
           b.      Pemprograman Pada Arduino  
                    Sketch program pada arduino dapat dilihat dibawah ini:
| 
int
  pinPot = A2;//pin untuk menerima sinyal analog dari potensiometer 
int
  val = 0;//variabel untuk 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:
Pemrograman pada
Arduino diperlihatkan 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 3. Skematik Percobaan Input Potensiometer
Out Led
Gambar 4. Breadboard Percobaan Input Potensiometer
Out Led
                    b.      Pemprograman 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
Pada analog input output di gunakan pin A0 - A5 sebagai input output pada rangkaian arduino,tetapi pada saat praktek waktu lalu menggunakan tambahan alat berupa potensiometer dan led. potensiometer digunakan sebagai inputnya dan led dipasang sebagai outputnya agar rangkaian dapat bekerja dan potensio digunakan juga sebagai pengatur kecerahan pada led
Pada analog input output di gunakan pin A0 - A5 sebagai input output pada rangkaian arduino,tetapi pada saat praktek waktu lalu menggunakan tambahan alat berupa potensiometer dan led. potensiometer digunakan sebagai inputnya dan led dipasang sebagai outputnya agar rangkaian dapat bekerja dan potensio digunakan juga sebagai pengatur kecerahan pada led
Praktikum 3
Statement Control
I. Dasar Teori
          Pada praktikum kali ini saya mempraktekan
tentang statement control dimana
statement control ini merupakan 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  :
       1.       Kontruksi if
Pada konstruksi if sebuah konstruktur
program hanya memiliki  sebuah kondisi, artinya dimana suatu instruksi
atau beberapa instruksi akan di jalankan apabila sebuah kondisi tersebut di
penuhi, namun apabila kondisi tersebut tidak terpenuhi maka instruksi yang ada
tidak akan di jalankan.
                  
 Berikut sintaks dari konstruksi if :
| 
  if  (kondisi) 
    {   
     
  Instruksi/statement; 
     } | 
       2.      
Konstruksi if – else
Pada konstruksi if else
sedikit berbeda dengan konstruksi if karena pada konstruksi if else
. jika sebuah kondisi tidak terpenuhi maka program akan mencari kondisi lain
yang ada atau menjalankan instruksi yang berada di luar bagian dari kondisi
yang tidak terpenuhi.
Berikut sintaks dari konstruksi if-else :
| 
if  (kondisi) 
{     
    Statement/instruksi; 
      } 
else 
{  
       
  Statement/instruksi; 
     
  } | 
      3.      
Konstruksi if – else bersarang
Pada konstruksi ini terdapat lebih dari satu buah
kondisi jadi pabila sebuah kondisi tidak terpenuhi maka akan berlanjut ke
kondisi berikutnya tergantung berapa banyak kondisi yang ada.
Berikut sintaks konstruksi if –else bersarang :
| 
if  (kondisi) 
{        
    Statement/instruksi; 
      } 
else if (kondisi) 
{     
     Statement/instruksi; 
     } 
else 
     { 
       
  Statement/instruksi; 
     } | 
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
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
 Menghubungkan
Pushbutton1 ke pin 3 Arduino 
 Menghubungkan
Pushbutton2 ke pin 4 Arduino 
 Menghubungkan
Pushbutton3 ke pin 5 Arduino 
 Menghubungkan
Pushbutton4 ke pin 6 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:
| 
int tombol1=3; 
int tombol2=4; 
int tombol3=5; 
int tombol4=6; 
int led1=7; 
int led2=8; 
int led3=9; 
int led4=10; 
void setup() { 
 
  pinMode (tombol1,INPUT); 
 
  pinMode (tombol2,INPUT); 
 
  pinMode (tombol3,INPUT); 
 
  pinMode (tombol4,INPUT); 
 
  pinMode (led1,OUTPUT); 
 
  pinMode (led2,OUTPUT); 
 
  pinMode (led3,OUTPUT); 
 
  pinMode (led4,OUTPUT); 
} 
void loop() { 
 
  if (digitalRead(tombol1)==LOW) 
 
  {digitalWrite(7,HIGH); 
  
  digitalWrite(8,LOW); 
  
  digitalWrite(9,LOW); 
  
  digitalWrite(10,LOW); 
 
  } 
 
  else if (digitalRead(tombol2)==LOW) 
 
  {digitalWrite(7,HIGH); 
  
  digitalWrite(8,HIGH); 
  
  digitalWrite(9,LOW); 
  
  digitalWrite(10,LOW); 
 
  } 
  
  else if (digitalRead(tombol3)==LOW) 
 
  {digitalWrite(7,HIGH); 
  
  digitalWrite(8,HIGH); 
  
  digitalWrite(9,HIGH); 
  
  digitalWrite(10,LOW); 
 
  } 
 
  else if (digitalRead(tombol4)==LOW) 
 
  {digitalWrite(7,HIGH); 
  
  digitalWrite(8,HIGH); 
  
  digitalWrite(9,HIGH); 
  
  digitalWrite(10,HIGH); 
 
  } 
delay (30); 
      } | 
       IV. Hasil dan Pembahasan
        Pada
 praktek statement kontrol ini dapat menggunakan perintah if - else 
bersarang yang mencari kondisi yang sudah terpenuhi dan apabila tidak 
terpenuhi maka akan mencari kondisi yang lain. Pada praktek statement 
kontrol ini menggunakan empat buah pushbutton dan empat buah led, led 
dapat menyala berurutan sebanyak berapa push button yang ditekan. seperti menekan satu push button maka satu buah led akan menyala dan menekan empat buah led maka empat buah led akan menyala.
Praktikum 4
Sensor Interfacing
      I. Dasar Teori
Interface atau
dalam istilah Indonesianya Antar Muka dapat diartikan sebagai sebuah titik, di
mana dua komponen atau benda berbeda bertemu. Dalam hubungannya dengan
perangkat lunak, interface dapat diartikan sebagai sarana atau medium atau
sistem operasi yang digunakan untuk menghubungkan antara perangkat
mikroprosesor agar dapat berkomunikasi dengan pengguna (user). Sedangkan pada
konteks perangkat keras interface berarti komponen elektronika yang menghubungkan
atau mengkomunikasikan prosesor dengan komponen atau perangkat lain dalam suatu
sistem. Dalam praktikum kali ini saya akan mempraktekan tentang interfacing
arduino dengan sensor. Dan untuk menampilkan hasil pembacaan dari sensor yang
dipakai saya akan mengggunakan sebuah LCD.
Sensor adalah jenis transduser (mengubah suatu energi menjadi energi yang lain
 ). Ada banyak sensor yang ada, namun dalam praktikum kali ini saya akan
 menggunakan sensor flowmeter (sensor aliran) dan sensor suhu (DS18B20)
1. Flowmeter (sensor aliran) 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 tersebut. 
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.
         2. Sensor Suhu DS18B20 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
2. Sensor DS18B20
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).
Gambar
3. LCD (Liquid Crystal Display)
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 ( | 
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 Interfacing Sensor Dan Arduino
Gambar 2. Breadboard Percobaan Interfacing Sensor Dan Arduino
b. Pemrograman Pada Arduino
       
Pemrograman pada
Arduino diperlihatkan sebagai berikut:
| 
    // include
  the library code: 
#include <LiquidCrystal.h> 
// 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() 
    { 
      
  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; 
      // set up
  the LCD's number of columns and rows: 
  lcd.begin(16,
  2); 
  // Print a
  message to the LCD. 
 
  lcd.print("SUHU: BELUM ADA"); 
    } 
    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(); 
       } 
    } | 
   IV. Hasil dan Pembahasan
      pada praktikum kali ini saya belajar interfacing sensor, sensor - sensor yang saya gunakan flowmeter dan Sensor Suhu DS18B20 dan menggunakan LCD 16x2. Flowmeter digunakan untuk mengukur kecepatan volume fluida dan sensor DS18B20 digunakan untuk mengukur suhu terhadap kecepatan , dan apabila sudah selesai di rangkai dengan benar maka keluarannya akan di tampilkan ke LCD 16x2.  
Daftar Pustaka
HANDOUT MICROCONTROLER



















 
Tidak ada komentar:
Posting Komentar