Jumat, 23 Mei 2014

LAPORAN SIMDIG INSTALASI ARDUINO SENSOR SUHU LM35


LAPORAN TUGAS INSTALASI ARDUINO
http://tkj.smkn1kediri.sch.id/wp-content/uploads/2012/03/SMK_LOGO.png
 



















NAMA                 : MOCHAMMAD IQBAL KURNIAWAN
KELAS                : X-TAV 2
NO.ABSEN         : 03
LAPORAN SIMULASI DIGITAL INSTALASI ARDUINO
1.      TEORI SINGKAT TENTANG ARDUINO, CARA KERJA ARDUINO SENSOR SUHU DENGAN IC LM35
2.      GAMBAR INSTALASI
3.      PROGRAM C++
4.      KENDALA YANG DIHADAPI
5.      KESIMPULAN


1.        TEORI SINGKAT TENTANG ARDUINO, CARA KERJA ARDUINO SENSOR SUHU DENGAN IC LM35

*                 TEORI SINGKAT TENTANG ARDUINO
Arduino merupakan sebuah platform  yang dikembangkan dengan tujuan untuk memudahkan pengguna mikrokontroler dan rangkaian elektronika pada berbagai disiplin ilmu. Dengan adanya arduino, diharapkan hal teknis tidak lagi menjadi penghalang bagi para individu kreatif untuk mengembangkan kreasinya di bidang mikrokontroler.
GAMBAR LOGO ARDUINO
Meskipun Arduino ditujukan untuk memudahkan pengguna mikrokontroler dengan bekal kemampuan teknis yang minimal, hal tersebut bukan berarti Arduino tidak cocok bagi para praktisi elektronika, khususnya pada bidang mikrokontroler. Dalam kasustertentu Arduino akan sangat membantu, karena dengan penggunaan mikrokontroler yang semakin mudah, maka konsentrasi pengerjaan dapat dialihkan pada perancangan sistem mikrokontroler yang lebih kompleks.

Beberapa fitur yang ditawarkan oleh Arduino adalah:
• Multiplatform environment, Arduino IDE dapat berjalan pada berbagai macam sistem operasi (Windows, Linux, Macintosh).
• Software Arduino IDE yang mudah digunakan.
• Open source baik hardware maupun software sehingga pengguna Arduino dapat membuat ataupun memodifikasi platform Arduino secara mandiri.
Investasi untuk platform Arduino relatif murah apabila dibandingkan dengan kehandalan dan dukungan yang didapatkan.
Sumber informasi yang luas, karena banyak forum dan artikel yang membahas tentang penggunaan Arduino.
Arduino dikembangkan dalam lingkungan pendidikan sehingga Arduino cocok digunakan sebagai langkah awal bagi pemula yang ingin memasuki dunia elektronika.

6.jpg

Berikut adalah deskripsi umum dari sebagian pin pada board Arduino:
• Reset (active low) – pin untuk mengulang eksekusi program/sketch Arduino dari awal.
• 3V3 – pin untuk jalur tegangan 3.3 VDC (output dan input).
• 5V – pin untuk jalur tegangan 5 VDC (output dan input).
• GND – pin yang terhubung dengan jalur ground.
• Vin – pin yang terhubung dengan jalur catu daya.
• Analog In (A0, A1, A2, …) – pin input untuk tegangan analog. Pin-pin ini juga dapat difungsikan sebagai pin I/O digital.
• SDA/SCL – pin data dan clock yang digunakan untuk komunikasi serial TWI.
• RX/TX – pin receiver dan transmitter untuk komunikasi serial UART.
• Digital (0, 1, 2, …) – pin I/O dengan sinyal high/low.
• PWM – pin digital yang memiliki fitur output PWM (sebagai output analog).
• AREF – pin input tegangan referensi eksternal untuk acuan pembacaan tegangan analog.

Deskripsi fungsi pin di atas dapat berbeda untuk beberapa board Arduino. Informasi
lebih pasti dapat ditemukan pada masing-masing panduan board Arduino yang
digunakan.


Struktur
Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada.
a.      void setup( ) {   }
    • Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.
b.      void loop( ) {   }
a.      Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan.
Syntax
Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan.
  • //(komentar satu baris)
    • Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program.
  • /*   */(komentar banyak baris)
    • Jika anda punya banyak catatan, maka hal itu dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program.
  • {   }(kurung kurawal)
    • Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).
  • ;(titk koma)
    • Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan).
Variabel
Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya.
1.       int (integer)
    • Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.
  1. long (long)
    • Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan 2,147,483,647.
  2. boolean (boolean)
    • Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit  dari RAM.
  3. float (float)
    • Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38.
  4. char (character)
    • Menyimpan 1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65). Hanya memakai 1 byte (8 bit) dari RAM.
Operator Matematika
Operator yang digunakan untuk memanipulasi angka (bekerja seperti matematika yang sederhana).
  1. =
    • Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20).
  2. %
    • Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).
  3. +
    • Penjumlahan
  4. -
    • Pengurangan
  5. *
    • Perkalian
  6. /
    • Pembagian
Operator Pembanding
Digunakan untuk membandingkan nilai logika.
  1. ==
    • Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE (benar))
  2. !=
    • Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalah FALSE (salah))
  3. <
    • Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar))
  4. >
    • Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah))
Struktur Pengaturan
Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan (banyak lagi yang lain dan bisa dicari di internet).
1. if..else, dengan format seperti berikut ini:
if (kondisi) { }
else if (kondisi) { }
else { }
Dengan struktur seperti diatas program akan menjalankan kode yang ada di dalam kurung kurawal jika kondisinya TRUE, dan jika tidak (FALSE) maka akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode pada else yang akan dijalankan.
2. for, dengan format seperti berikut ini:
for (int i = 0; i < #pengulangan; i++) { }
Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i–.
Digital
1. pinMode(pin, mode)
Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa digunakan adalah INPUT atau OUTPUT.
2. digitalWrite(pin, value)
Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground).
3. digitalRead(pin)
Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground).
Analog
Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di dalam alam analog (menggunakan trik). Berikut ini cara untuk menghadapi hal yang bukan digital.
1. analogWrite(pin, value)
Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on)atau mati (off) dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog. Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 5V).
2. analogRead(pin)
Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk 5 volts).

*            CARA KERJA ARDUINO SENSOR SUHU DENGAN IC LM35
Tentang IC LM335
IC LM335 adalah salah satu sensor untuk mengukur suhu. IC LM335 digunakan untuk mengubah besaran suhu menjadi besaran listrik. IC sensor LM335 ini mempunyai bentuk fisik seperti transistor mempunyai tiga buah kaki, diantaranya anoda, katoda, dan adjust (kontrol). Isinya berupa zener yang peka(sensitive) pada temperature. IC LM335 merupakan tranduser yang dikemas dalam bentuk rangkaian terintegrasi yang tegangan keluarannya berbanding linier terhadap perubahan temperatur , jadi apabila suhu lingkungan rendah maka tegangan yang keluar dari IC tersebut adalah rendah. Demikian juga sebaliknya apabila suhu yang disekitar IC tinggi, maka tegangan yang dihasilkan dari keluaran IC tersebut adalah besar. Dengan kata lain perubahan tegangan yang dihasilkan tranduser IC LM335 sesuai dengan perubahan temperaturnya.
Karena sensor ini dapat mensuplai, maka sensor bekerja sebagai penyetabil tegangan yang besarnya sesuai dengan temperature terukur. IC sensor ini mengubah temperature menjadi tegangan listrik sesuai dengan kenaikan 10mv / derajat celcius. Untuk mengkalibrasikan sensor ini maka tahanan variable harus diatur agar tegangan keluar sebesar 2980mV sehingga setara dengan 25 derajat celcius. Besaran analog yang dihasilkan oleh sensor suhu ini mempunyai resistansi 10mV untuk setiap kenaikan 1 derajat celcius.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivmOBwb34G_wCzsa0fP9qrqP-Jg9LHdP0bh-_lNg7I1kAeu-mAQ3-HyfROhCqMWK1IQEGrHO3i0QE15KPxWHxwx2Tp6F8610DGtxpjz5xTYEpkou73L9ysyNLq8bqEt0BiwPne5ZMSCy4m/s1600/1.png
Gambar 2.4 LM335

Keuntungan dari IC LM335 adalah mempunyai sensor temperatur yang linier kalibrasinya langsung dalam Celcius, sehingga tidak diperlukan tegangan konstan yang besar dari keluaran skala Celcius Sensor ini bekerja untuk mengirimkan sebuah sinyal tegangan yang sesuai dengan keadaan suhu yang dipantau dan diterima oleh pemproses.
Selain LM335 ada juga LM135 dan 235, perbedaannya terletak pada batas ukur suhunya. Apabila LM335 bekerja pada batas ukur -40 derajat celcius sampai 100 derajat celcius. Sedangkan pada LM135 bekerja pada batas ukur -55 derajat celcius sampai 150 derajat celcius, adan pada LM235 bekerja pada batas ukur -40 derajat celcius 125 derajat celcius.

Spesifikasi sensor LM335 ini adalah :
• Mudah dikalibrasi
• Presisi
• Impedansi rendah (kurang dari 1 ohm impedansi dinamis)
• Tegangan pada 25 derajat celcius adalah 2980mV
• Kenaikan suhu per derajatnya menambah tegangan 10mV dan sebaliknya
• Daerah ukur -40 derajat celcius sampai dengan 100 derajat celcius
• Arus bias 0,4mA sampai dengan 5mA


Cara kerja rangkain:














2.      GAMBAR INSTALASI
LM-35-Fritzing.jpgRangk-LM35DZ.jpg
3.      PROGRAM C++

a.      Program ke-1

#include<LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int adc0,cel = 0;

void setup()
{
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("Tek. Audio Video");
lcd.setCursor(0,1);
lcd.print("SMKN 1 Kediri");
delay(5000);
lcd.clear();
lcd.print("Suhu =     C");
lcd.setCursor(14,0);
lcd.print(char(0xdf));
lcd.setCursor(5,1);
lcd.print("=   F");
lcd.setCursor(14,1);
lcd.print(char(0xdf));
}

void loop()
{
int adc0 = analogRead(0);
float cel=(adc0*5)/10;
lcd.setCursor(7,0);
lcd.print(cel);
lcd.setCursor(7,1);
float fah=((cel*9)/5+32);
lcd.print(fah);
delay(1000);
}


b.      Program ke-2

#include<LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int adc0,cel = 0;

void setup()
{
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("Tek. Audio Video");
lcd.setCursor(0,1);
lcd.print("SMKN 1 Kediri");
delay(5000);
lcd.clear();
lcd.print("Suhu =     C");
lcd.setCursor(14,0);
lcd.print(char(0xdf));
lcd.setCursor(5,1);
lcd.print("=   F");
lcd.setCursor(14,1);
lcd.print(char(0xdf));
}

void loop()
{
int adc0 = analogRead(0);
float cel=(adc0*5)/10;
lcd.setCursor(7,0);
lcd.print(cel);
lcd.setCursor(7,1);
float fah=((cel*9)/5+32);
lcd.print(fah);
delay(1000);
if(cel>=33)
{
  digitalWrite(13,HIGH);
  lcd.noDisplay();
  delay(500);
  lcd.display();
}
else
{
  digitalWrite(13,LOW);
  lcd.display();
}
delay(2000);
}


c.      Program ke-3

#include<LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int adc0,cel = 0;

void setup()
{
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("Tek. Audio Video");
lcd.setCursor(0,1);
lcd.print("SMKN 1 Kediri");
delay(5000);
lcd.clear();
lcd.print("Suhu =     C");
lcd.setCursor(14,0);
lcd.print(char(0xdf));
lcd.setCursor(5,1);
lcd.print("=   F");
lcd.setCursor(14,1);
lcd.print(char(0xdf));
}

void loop()
{
int adc0 = analogRead(0);
float cel=(adc0*5)/10;
lcd.setCursor(7,0);
lcd.print(cel);
lcd.setCursor(7,1);
float fah=((cel*9)/5+32);
lcd.print(fah);
delay(1000);
if(cel>=33 && cel<35)
{
  digitalWrite(13,HIGH);
}
else if(cel>=35)
{
  digitalWrite(13,HIGH);
  delay(1000);
  digitalWrite(13,LOW);
}
else
{
  digitalWrite(13,LOW);
}
delay(2000);
}


d.      Program ke-4

 #include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int adc0,cel = 0;

void setup()
{
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.print("Tek. Audio Video");
  lcd.setCursor(0,1);
  lcd.print("SMKN 1 Kediri");
  delay(5000);
  lcd.clear();
  lcd.print("Suhu =         C");
  lcd.setCursor(14,0);
 
  lcd.print(char(0xdf));
  lcd.setCursor(5,1);
 
  lcd.print("=         F");
  lcd.setCursor(14,1);
 
  lcd.print(char(0xdf));
}
  void loop()
{
  int adc0 = analogRead(0);
  float cel=(adc0*5)/10;
 
  lcd.setCursor(7, 0);
  lcd.print(cel);
   lcd.setCursor(7, 1);
   float fah=((cel*9)/5+32);
  
   lcd.print(fah);
   delay(3000);
   if(cel>=35 && cel<40)
    {
     digitalWrite(13,LOW);
     lcd.noDisplay();
     delay(1000);
     lcd.display();
    }
  else if(cel>=40 && cel<45)
   {
     digitalWrite(13,HIGH);
   }
  else if(cel>=45 && cel<50)
   {
     digitalWrite(13,HIGH);
     delay(300);
     digitalWrite(13,LOW);
   }
   else if(cel>=50)
   {
     digitalWrite(13,HIGH);
     lcd.noDisplay();
     delay(300);
     digitalWrite(13,LOW);
     lcd.display();
   }
   else
   {
     digitalWrite(13,LOW);
     lcd.display();
   }
  delay(300);
 }


4.      Kendala yang dihadapi saat praktik

·        Kurang teliti saat memasukkan program kedalam arduino
·        Terbaliknya rangkaian yang telah dicontohkan sebelumnya.
·        Untuk program yang ke-4 mengalami trobel yaitu saat suhu mencapai batas maksimal yang telah ditentukan, dan saat suhu turun kembali normal LCD dan LED menyala tidak sesuai dengan apa yang kita harapkan.
·        Kurang mengerti bahasa pemrograman dalam arduino
·        Susahnya meminjam arduino karena terbatasnya arduino yang di sediakan sekolah.
·        Susahnya mencari pinjaman laptop.
·        LCD yang dapat digunakan sangat terbatas dan yang lainnya mengalami kerusakan.


5.      Kesimpulan


Tidak ada komentar:

Posting Komentar