Sabtu, 16 Juli 2016

[MIKROKONTROLLER] TUTORIAL Membuat Lift sekala kecil



PENGANTAR

Tujuan dari proyek ini adalah untuk merancang sebuah lift simulator efisien yang dapat menerima masukan dari pengguna dan mekanis beroperasi (pada skala kecil) sistem 4 lantai dan 3 elevator menggunakan katrol dan motor stepper. Pengguna memasukkan input dengan menggunakan tombol tekan fisik atau komputer. masukan ini kemudian diproses oleh MCU dan perintah diberikan ke lift. Kami berusaha untuk menyusun suatu algoritma yang optimal dapat menangani sejumlah lantai. Proyek ini tampak seperti tantangan yang menyenangkan dan sesuatu yang memiliki aplikasi praktis. Kami berdua telah frustrasi di kali oleh inefisiensi dari beberapa elevator di sini di Cornell, dan kami ingin melihat apakah kita bisa melakukan pekerjaan yang lebih baik.


Diskripsi Kerja
Tombol dalam - Sebuah tombol di bagian dalam mobil lift. Seorang penumpang akan menekan tombol ini setelah mendapatkan di lift.
Tombol luar - Tombol luar mobil lift. Ada paling banyak dua tombol luar di setiap lantai (atas dan bawah). Dalam sebuah bangunan nyata mungkin ada lebih untuk kenyamanan, tetapi fungsi yang sama dapat dicapai dengan hanya dua.
Permintaan - Permintaan untuk baik turun di lantai (yang diberikan ke lift tertentu jika tombol dalam telah mendorong) atau permintaan untuk dijemput di lantai akan naik atau turun. Sebuah tombol push luar hanya akan menetapkan permintaan pick-up ke lift tunggal.


Desain tingkat tinggi
Inti dari proyek ini adalah desain tingkat tinggi. Karena itu adalah tujuan kami untuk mensimulasikan sistem lift yang efisien, merancang logika menghasilkan hasil yang diinginkan terbukti menjadi tantangan. Kami memutuskan cara terbaik untuk mengendalikan tiga lift yang terpisah adalah untuk memiliki masing-masing lift menanggapi secara optimal untuk setiap himpunan permintaan (untuk mengambil atau menurunkan penumpang). Kami kemudian bisa menulis sebuah algoritma yang akan memprediksi lift bisa menanggapi tercepat untuk permintaan penumpang dan menetapkan permintaan ke lift itu. Sementara sistem lift fisik kita hanya terdiri dari 4 lantai, desain dapat ditingkatkan ke sejumlah lantai.

Perilaku Elevator individu
Dasar untuk perilaku lift ini adalah algoritma lift, di mana lift menangani semua permintaan dalam satu arah sebelum berbalik. kode kita memastikan bahwa lift tunggal akan mengikuti perilaku ini. Logika yang mengontrol lift tunggal ditunjukkan di bawah. Ingat bahwa dalam kasus tombol luar, permintaan belum tentu sama dengan menekan tombol (lihat definisi istilah). Penanganan tombol ini tercakup dalam bagian berikutnya.



Mendelegasikan Permintaan
Untuk mengendalikan sistem ini tiga elevator efisien, kita harus datang dengan cara untuk tepat menetapkan permintaan untuk setiap lift. Menetapkan permintaan dari tombol dorongan dalam adalah sepele, seperti lift harus menanggapi tombol di dalam sendiri. Untuk masing-masing tombol luar mendorong, hanya satu Lift menerima permintaan tersebut. Algoritma kami untuk menetapkan permintaan nikmat lift dengan permintaan lainnya paling sedikit dalam rangka untuk membagi lalu lintas secara merata di antara lift dan meminimalkan waktu yang dihabiskan menunggu untuk turun. Dalam kasus di mana dua atau lebih elevator memiliki jumlah yang sama permintaan lain, kita menghitung jarak terburuk yang masing-masing harus melakukan perjalanan untuk menjawab permintaan. Tiga skenario dijelaskan di bawah ini.



Kasus 1: Dalam hal ini, lift bepergian ke lantai bahwa permintaan adalah pada arah yang sama bahwa permintaan di The terburuk jarak (jumlah maksimum lantai) antara lift dan permintaan hanya.:
| Permintaan Lantai - Lantai saat ini |
Mana requestFloor adalah lantai bahwa permintaan tersebut dan currentFloor adalah lantai yang Lift saat ini.
Kasus 2: Dalam hal ini, lift bepergian dalam arah yang berlawanan bahwa permintaan di The terburuk jarak antara lift adalah jarak dari lift untuk mengakhiri poros arah saat perjalanan ditambah jarak dari. akhir poros kembali ke lantai permintaan. Jadi, jika lift bepergian ke atas, jaraknya:
(Lantai-1- Lantai sekarang) + (lantai-1-permintaan Lantai)
Jika lift bepergian ke bawah, jaraknya:
Lantai saat ini + Permintaan lantai
Di mana lantai adalah jumlah lantai dalam sistem lift.
 Kasus 3: Dalam hal ini, lift bepergian jauh dari lantai dalam arah yang sama bahwa permintaan di The terburuk jarak.:
2 * (lantai - 1) - | permintaan Lantai - Lantai saat ini |.
 
Mode alternatif Operasi
Kami termasuk beberapa modus lain dari operasi selain dari mode normal yang dijelaskan di atas. Berikut ini adalah deskripsi singkat dari setiap mode.
Trivial Mode - Mengirim lift 1 untuk melakukan segala sesuatu, mengabaikan lift lainnya.
Simple Mode - Semua lift kejar tombol luar tekan dan menanggapi menekan tombol di dalam mereka sendiri. Ini sama dengan memiliki 3 lift yang terpisah dalam mode sepele.
Sabbath Mode - Elevator mengabaikan tombol apapun mendorong. Mereka bergerak ke atas dan ke bawah berhenti di semua lantai di sepanjang jalan. Lift yang terhuyung-huyung untuk meminimalkan kasus terburuk waktu tunggu.

 Desain hardware
Kami membangun 3-poros, 4-cerita Model lift terdiri dari K'NEX dan pena kayu. Kami menambahkan motor dan katrol untuk menaikkan dan menurunkan lift. Lift dikendalikan menggunakan delapan belas pushbuttons, dua belas yang merupakan tombol lift internal. Enam tombol luar lainnya memanggil lift untuk lantai tertentu.
Desain mekanik
shaft lift ini dibangun dari potongan K'NEX plastik. Kami memilih bahan ini karena menawarkan fleksibilitas dalam desain, kemudahan konstruksi, dan tersedia secara gratis. Kami menambahkan pena panduan kayu untuk menyelaraskan mobil lift dalam poros. Lift yang diangkat dan diturunkan dengan benang menggunakan sistem katrol. Ujung benang yang melekat pada katrol pada masing-masing motor. Motor dipaku ke dua potong paralel kayu.


Desain listrik
Kami menggunakan tiga stepper motor PF35T-48L4; satu untuk setiap lift. Motor yang logis dikendalikan oleh MCU tetapi didukung menggunakan lab 12V power supply standar. Karena mikrokontroler tidak dapat sumber arus yang cukup untuk menjalankan motor, kami menambahkan tiga array ULN2003AN Darlington, juga melekat pada power supply. Berikut adalah sirkuit yang digunakan untuk menghubungkan port MCU untuk motor stepper menggunakan array Darlington.


Motor stepper menggunakan konfigurasi 4-negara. Tergantung pada urutan transisi antara negara-negara, motor baik putar searah jarum jam atau berlawanan. Setiap negara terdiri dari tugas pin dua-panas. Program kami terus melacak negara ini pada berganti-ganti antara mereka. Hal ini dijelaskan lebih lanjut di bagian perangkat lunak.
Delapan belas pushbuttons kami, enam berada di STK500 itu. Ini 6 tombol yang terhubung ke pin 2 sampai 7 pada port D dari MCU. Karena kita juga perlu pin D.0 dan D.1 untuk koneksi serial RS 232, kita perlu membuat adaptor yang memungkinkan kedua pushbuttons STK500 dan RS 232 jumper untuk dihubungkan ke port D. Sebuah gambar adaptor ini ditunjukkan di bawah.


Kedua belas tombol lain yang dipasang di papan tulis dan terhubung ke VCC melalui resistor pull-up 1 kW di satu ujung dan ke tanah di ujung. Ketika tombol ditekan ke bawah port pin didorong rendah dan MCU mendeteksi sebuah tombol; selain itu tetap tinggi. Skema untuk satu set empat tombol ditampilkan di bawah.


Kesulitan hardware

Saya berlari ke dua masalah di hardware. Isu pertama saya datang di adalah bahwa power supply kita menggunakan tidak bisa sumber daya yang cukup untuk semua 3 motor stepper. saat ini dibatasi pada 500 mA, sedangkan masing-masing motor stepper menggunakan 350 mA. Untuk memperbaiki masalah ini, saya hanya beralih ke catu daya yang lebih besar yang dapat sumber lebih saat ini.
Masalah kedua saya adalah bahwa motor stepper sangat panas setelah dihidupkan untuk sementara waktu. Saya tidak menemukan solusi untuk masalah ini, meskipun itu bukan masalah besar. Setelah beberapa pertemuan tidak nyaman dengan motor, saya memutuskan untuk kuku mereka untuk papan kayu dan bukan menahan mereka.

Desain software
Ada dua bagian untuk perangkat lunak saya: kode C, yang mengontrol sistem lift, proses input dari user, dan mengirimkan data ke MATLAB, dan kode MATLAB, yang menyediakan umpan balik visual serta antarmuka pengguna sekunder.
Kode C
Sebagian besar kode C saya mengimplementasikan logika yang dijelaskan pada bagian desain tingkat tinggi. Untuk mengontrol setiap lift, kita menggunakan tiga struct (disimpan di heap) jenis Elevator dengan berbagai bidang seperti arah arus, lantai saat, dan setiap permintaan (dalam dan luar) ditugaskan ke lift. Hal ini memungkinkan kita untuk melacak keadaan saat lift dan menentukan perilaku yang tepat dengan menggunakan serangkaian jika laporan dalam fungsi Onestep. Saya juga menggunakan bidang ini untuk menghitung jarak ketika menetapkan permintaan dari tombol luar dalam fungsi addRequests.
Ketika dalam operasi normal, setiap melewati polling loop utama pushbuttons, mengirimkan negara tombol melalui koneksi serial ke MATLAB (jika tombol berubah), delegasi luar permintaan tombol, dan memanggil fungsi Onestep. Selain itu, ada interupsi TIMER0 yang kebakaran setiap milidetik. interupsi ini memeriksa port serial data output ke MATLAB. Hal ini juga bergerak setiap lift bermotor satu langkah (dengan Toggling pin pada port A, B, dan C) setiap 50 milidetik jika lift seharusnya bergerak. Jarak antara lantai adalah 38 langkah bermotor, sehingga dengan melacak berapa banyak langkah telah diambil program tahu di mana Lift.
Mengacu pada lampiran untuk kode C yang lengkap.

Kode MATLAB
Program MATLAB saya (elevator.m) membangun sebuah GUI yang berkomunikasi dengan program C menggunakan koneksi serial. Kami menarik beberapa komponen lift di MS Cat (tombol, pintu, dll) Program ini menempatkan gambar-gambar ini di lokasi yang tepat untuk menampilkan keadaan saat ini sistem lift sebagai pengguna akan melihatnya. Hal ini dilakukan dengan parsing string dikirim dari kode C.
Program MATLAB juga memungkinkan pengguna untuk mensimulasikan menekan tombol menggunakan komputer daripada hardware sebenarnya. Untuk melakukan hal ini, mode input pertama harus ditetapkan ke komputer dalam kode C. Menggunakan opsi ini, pengguna dapat mensimulasikan sistem lift dengan lebih (atau kurang) dari 4 lantai.
Selain itu, program saya terus statistik pada waktu tunggu rata-rata untuk penumpang untuk mendapatkan lift dan off lift. Hal ini dicapai dengan waktu berapa lama sebuah tombol tetap pada sekali ditekan.



Mengacu pada lampiran untuk kode MATLAB.

Kesulitan software
Algoritma asli kami tidak tepat memisahkan operasi lift tunggal dari mendistribusikan permintaan antara beberapa lift. Hal ini membuat sangat sulit untuk menulis kode yang benar. Setelah menambahkan beberapa lusin hacks untuk menangani kasus sudut, kami menyadari bahwa program kami tidak scalable untuk beberapa lift. Kita dipaksa untuk menulis ulang kode dengan cara yang lebih modular.
Scaling kode MATLAB jumlah sewenang-wenang lantai diperlukan banyak trial and error untuk mendapatkan penempatan gambar yang benar. Juga, penempatan gambar menggunakan sistem koordinat yang berbeda dari pushbuttons MATLAB, hal-hal rumit lebih lanjut. Untuk mengambil data dari port serial kami awalnya digunakan fgets, yang merupakan fungsi blocking. Hal ini membuat komputer lambat sampai kami menemukan bidang bytesavailable dari MATLAB objek serial, memungkinkan kita untuk polling untuk data sebelum memanggil fgets.

hasil
 
Kinerja dan Akurasi
Cara terbaik bagi kita untuk mengukur hasil desain kami adalah untuk menempatkan sistem Lift di segala situasi yang mungkin dan pastikan merespon dengan cara yang tepat. Untuk setiap kasus uji, lift kami menunjukkan perilaku logis. Menggunakan MATLAB GUI kami membuat pengujian lebih mudah. Selain itu, kami dapat mengukur kinerja menggunakan statistik yang disimpan oleh kode MATLAB. Semua statistik ini wajar dan sesuai harapan kita, sehingga kita dapat cukup yakin bahwa mereka benar.
Salah satu hasil yang menarik adalah bahwa modus Sabat sesekali melebihi modus normal operasi untuk sejumlah kecil lantai. Namun, peningkatan jumlah lantai di simulasi kami membuat waktu tunggu untuk mode Sabbath jauh lebih buruk.
 
Pertimbangan keamanan
simulator lift kami sangat aman. Tidak ada ujung yang tajam terpapar atau tegangan tinggi yang bisa melukai pengguna. Ada dua paku yang menonjol di antara potongan-potongan kayu yang digunakan untuk me-mount motor. Juga, motor berjalan sangat panas untuk disentuh.
 
Kegunaan
desain kami adalah user-friendly. Antarmuka hanya terdiri dari 18 pushbuttons fisik (atau MATLAB pushbuttons). Menggunakan lift hanya membutuhkan menekan tombol yang sesuai, seperti lift yang sebenarnya.

 Kesimpulan
harapan
Kami memenuhi atau melampaui sebagian besar harapan yang kita miliki di awal. Kami menemukan diri terus menambahkan fitur baru untuk proyek tersebut. Hasilnya adalah sistem lift yang sangat efisien. Salah satu daerah di mana kita mungkin telah jatuh sedikit pendek adalah menghindari kegagalan kritis. Sebagai contoh, kita tidak memiliki beberapa string yang mendukung mobil lift atau sistem cadangan daya kasus hilang. Ini adalah sesuatu yang kita bisa ditingkatkan pada. Juga, kami memiliki ide untuk menulis naskah Matlab yang bisa mengirim serangkaian perintah ke lift tanpa input pengguna. Ini akan berguna untuk membandingkan algoritma di pola penggunaan yang berbeda. Akhirnya, selalu ada ruang untuk memperbaiki algoritma lift.
Pertimbangan Kekayaan Intelektual
Semua hardware dan software desain kita sendiri. Kami tidak meminjam kode apapun atau sampel hardware.
 
standar
Karena sistem lift kami hanya dimaksudkan sebagai model untuk perilaku lift optimal dan tidak dimaksudkan untuk digunakan sebenarnya, kita tidak bisa menemukan standar apapun yang berlaku untuk proyek kami. Ada beberapa standar keselamatan yang akan dilanggar jika lift kami dimaksudkan untuk digunakan penumpang, seperti kurangnya sistem cadangan jika terjadi kegagalan daya.
 
Pertimbangan etis
Kami mematuhi semua item yang tercantum dalam Kode Etik IEEE selama proses desain proyek kami. Beberapa item ini, seperti menolak suap dan tindakan berbahaya, yang tidak secara khusus relevan dengan proyek ini, tapi agak pedoman bahwa kita selalu mematuhi.
Kami membuat semua keputusan kita dengan kesejahteraan masyarakat dan lingkungan dalam pikiran. Seperti disebutkan sebelumnya, desain kami sangat aman dan tidak membahayakan lingkungan dengan cara apapun. Selain itu, simulator lift kami adalah mudah digunakan dan itu aplikasi dipahami dengan baik.
Seluruh desain dan proses pengujian, kami terbuka untuk saran dari rekan-rekan kami dan instruktur. Juga, kita mendengarkan ide satu sama lain dan membuat kompromi setiap kali ada perbedaan pendapat. Kami membantu kelompok lain dengan masalah mereka sedang bila memungkinkan.
simulator Lift kami tidak melakukan diskriminasi berdasarkan ras, agama, jenis kelamin, usia, atau asal kebangsaan. Bahkan, kami menerapkan modus Sabat untuk memungkinkan orang-orang Yahudi yang taat untuk naik lift di Shabbat sementara menahan diri dari menggunakan perangkat listrik. Namun, tombol yang mengontrol elevator kami tidak ditandai dengan huruf braille, sehingga akan sulit bagi orang buta untuk beroperasi. Dalam versi nyata lift ini, bagaimanapun, itu akan mudah untuk menambahkan Braille.

  
Budget
Item
Cost
3 PF35T-48L4 stepper motors
$3.00
2 white boards
$12.00
1 STK500 w/ Atmel Mega32
$15.00
3 ULN2003AN Darlington arrays
$1.92
1 2-pin flat jumper cable
$1.00
1 12 Volt Power Supply
$5.00
12 Pushbuttons
Free (in lab)
K’NEX
Free (already owned)
2 Wooden Boards
$3.00
3 Wooden Dowels
$1.50
Twine
Free (Scavenged)
Nails
Free (Scavenged)
Total
$42.42

Daftar Pustaka
 https://courses.cit.cornell.edu/ee476/FinalProjects/s2007/aoc6_dah64/aoc6_dah64/index.html

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