Senin, 24 Maret 2014

Pemodelan Secure Door Access Control System dengan Arduino

Akhirnya tugas mata kuliah Interkasi Manusia Komputer untuk minggu ini selesai juga, jadinya saya membuat pemodelan secure door access control system dengan Arduino. Saya menggabungkan fungsi dari Arduino,  keypad, 7-segment, dan speaker dan RGB LED. 

Langsung saja, postingan saya kali ini akan membahas tentang bagaimana cara membuat pemodelan secure door access control system, sebelum saya melanjutkan, saya anggap pembaca sudah mengerti bagaimana cara mengoperasikan Arduino dengan keypad, 7-segment, dan speaker. Tutorial untuk RGB LED dapat dilihat di adafruit.com

Agar lebih mudah membayangkan hasil akhirnya seperti apa, silahkan lihat video yang sudah saya buat dibawah ini.



Jadi skema rangkaian yang akan saya buat dapat dilihat pada gambar 1.
Gambar 1 - skema rangkaian pemodelan secure door access control system dengan Arduino

Gambar 2 - rangkaian yang sudah saya buat

Pada dasarnya, saya hanya menggabungkan kode-kode program yang ada pada tutorial Arduino dengan keypad, 7-segment, dan speaker dan RGB LED. Ditambah sedikit algoritma untuk menentukan state yang saya inginkan. State diagramnya dapat dilihat pada gambar 3.
Gambar 3 - state diagram secure door access control system yang akan saya buat

Saya membuat dengan ketentuan sebagai berikut:
  1. state "no pin entered", yang terjadi:
    • LED berwarna biru
    • 7-segment menunjukkan angka 0 
  2. state "pin entered", yang terjadi:
    • LED kedap kedip berwarna merah
    • 7-segment menunjukkan angka yang dimasukkan dan angka 0 untuk angka yang belum dimasukkan
  3. state "unlocked, yang terjadi:
    • LED berwarna hijau selama 3 detik
    • terdengar "beep" ketika pindah ke state "no pin entered"
  4. state "alarm", yang terjadi: 
    • LED kedap kedip berwarna putih, kuning, dan biru
    • bunyi alarm
    • tidak dapat melakukan apa-apa 
  5. state "incorrect pin", yang terjadi:
    • LED berwarna merah selama 2 detik
    • terdengar suara "beep" selama 2 detik
  6. ketika keypad ditekan akan terdengar bunyi "beep"
  7. '*' sebagai backspace
  8. '#' sebagai enter
  9. PIN yang saya simpan adalah "7601", kenapa 7601? karena setiap hari saya kuliah di ruangan 7601 :)
nah hasil jatuh bangun ngoding dan ngetes selama beberapa jam di hari sabtu dan minggu kemarin bisa dilihat dibawah ini.

Tidak terlalu banyak permasalahan yang dihadapi, palingan ada algoritma yang kurang mangkus atau perlu disempurnakan, saya tidak membuat dokumentasinya, karena memang secara fisik sulit dibedakan dan membutuhkan waktu yang sangat banyak untuk merekam video. 

Pada dasarnya, permasalahan yang banyak muncul adalah dari programnya, karena program untuk mengatur rangkaiannya sudah dikerjakan dan dicoba terlebih dahulu sebelum muncul ide untuk membuat secure door access control system.
Gambar 4 - state "no pin entered" (kiri atas), state "pin entered" (kanan atas), state "unlocked" (kiri bawah),  state "incorrect pin"(kanan bawah)


 
 Gambar 5 - state "alarm"

Pada percobaan saya ini, saya hanya menggunakan 15 pin pada board Arduino termasuk 6 pin analog yang saya fungsikan sebagai pin digital. Perinciannya adalah sebagai berikut:

  1. keypad menggunakan 8 pin
  2. 7-segment menggunakan 3 pin
  3. RGB LED menggunakan 3 pin
  4. speaker menggunakan 1 pin
Sebenarnya penggunaan pin ini masih bisa di minimalisir dengan membuat rangkaian yang dapat menghubungkan keypad dengan hanya 1 buah pin analog saja, namun saya tidak sempat untuk melakukan percobaan karena keterbatasan waktu.

Oke sekian saja postingan saya kali ini, selamat mencoba dan semoga bermanfaat!

Sabtu, 22 Maret 2014

Arduino dan Speaker

Langsung saja, setelah bermain dengan shift register pada postingan sebelumnya dan tangan saya yang gatal melihat ada speaker kecil yang nganggur, saya memutuskan untuk mencoba menghubungkan speaker tersebut dengan Arduino.
Gambar 1 - speaker kecil 0.5W 8Ohm

Setelah googling, saya mendapatkan tutorial dari arduino.cc, nah saya langsung coba menghubungkan seperti yang ada pada link tersebut. Awalnya saya menyolder dahulu untuk menyambungkan speaker dengan kabel.
Gambar 2 - Speaker sudah disolder dan terhubung dengan kabel

Skema rangkaian yang akan saya buat menurut tutorial dari arduino.cc seperti pada gambar 3.
Gambar 3 - skema rangkaian yang akan saya buat

Setelah itu saya membuat rangkaian dan hasilnya dapat dilihat pada gambar 4.
Gambar 4 - Rangkaian yang sudah saya buat

Kode yang saya gunakan berasal dari arduino.cc

Ah saya sedikit kecewa karena suaranya kecil sekali hingga hampir tidak kedengaran, oleh karena itu kali ini saya tidak membuat videonya.

Saya rasa untuk membuat speaker ini menghasilkan suara yang lebih keras, saya harus menambahkan tegangan yang masuk ke dalam speaker tersebut, tapi saya tidak mau gegabah karena saya pernah baca bahwa ada arus maksimal yang dapat ditarik dari pin IO Arduino, oleh karena itu saya googling lagi dan melihat salah satu diskusi di forum dengan alamat forum.arduino.cc. Ternyata pin 5V pada Arduino tidak terhubung ke ATMega, sehingga tidak terlalu bermasalah ketika menarik arus yang cukup banyak, asalkan tidak melebihi batas arus dari sumber power Arduino, dalam hal ini USB port pada komputer saya. Oke, cukup menarik, jadi skema rangkaian yang akan saya buat dapat dilihat pada gambar 5.
Gambar 5 - skema rangkaian yang akan saya buat

Oh iya, sebelum membuat rangkaian, daftar alat dan komponen yang saya gunakan untuk membuat rangkaian ini adalah
  1. Arduino Uno R3 x1
  2. Kabel USB untuk power Arduino x1
  3. Breadboard x1
  4. Speaker kecil 0.8 ohm 0.5W x1
  5. Transistor npn x1
  6. Resistor 1k ohm x1
  7. Resistor 220 ohm x1
  8. Kabel (untuk jumper) secukupnya
Karena alat dan komponen sudah lengkap, saya langsung membuat rangkaian.
Gambar 6 - rangkaian yang sudah saya buat

Lalu saya menghubungkan Arduino dan menjalankan program yang sama. ternyata speakernya menghasilkan suara yang jauh lebih besar dari sebelumnya. Hasilnya dapat dilihat pada video berikut.

Akhirnya setelah secara random membeli speaker dan berhasil mencobanya, saya rasa postingan kali ini cukup sampai disini. Selamat mencoba dan semoga bermanfaat!

Jumat, 21 Maret 2014

Multiplexing 4 digit 7-Segment dengan Shift Registers dan 7-Segment Decoder

Oke, sekarang saya ingin membuat tugas mata kuliah Interaksi Manusia Komputer. Saya ingin menggabungkan Arduino, Keypad dan 4 buah 7-segment. Tapi setelah saya hitung-hitung, pin yang terdapat pada Arduino Uno hanya ada 14 pin digital dan 6 pin analog, sedangkan saya membutuhkan 20 pin; 8 pin untuk keypad dan 12 pin untuk 7-segment. Wah saya pikir, masa semua pin Arduino saya dipakai, jadi nanti kalo kurang gimana... Oleh karena itu saya mencoba mencari cara agar saya tidak menggunakan pin terlalu banyak.

Nah saya menemukan satu solusi yang belum pernah saya coba, yaitu menggunakan multiplexer untuk mengendalikan 7-segment. Saya langsung googling dan mencoba untuk membuat daftar apa saja yang dibutuhkan, nah saya menemukan beberapa kemungkinan komponen yang dibutuhkan untuk melakukan multiplexing, sebagai berikut.

NB : daftar yang saya buat hanya komponen yang saya tidak miliki, sisanya sama dengan postingan Arduino dan 7-segment.

Kemungkinan-1:
  1. 74HC595 x1
  2.  CD4511
Kermungkinan-2:
  1. TPIC6x596 x4 
Kemungkinan-3:
  1. HCC/ HCF 4026B/4033B x4
Kemungkinan-4:
  1. SN74LS47N x1
  2. 74HC238 x1
Setelah membuat daftar, saya langsung menuju Anam, toko elektronik yang sering saya kunjungi untuk membeli komponen buat ngoprek. Nah, saya langsung tanya ke penjualnya dan ternyata mereka mempunyai 74HC595 dan CD4511 (kemungkinan-1), saya langsung membeli kedua komponen tersebut. Tiba-tiba datang inspirasi entah darimana, saya ingin mencoba menggunakan speaker kecil, langsung saja saya juga membeli speaker kecil. Komponen yang baru saya beli dapat dilihat pada gambar 1.
Gambar 1 - belanjaan saya dari toko Anam

Ketika sampai di kosan, saya langsung buka website tempat tadi saya melihat kemungkinan-1. Nah dari website itu saya mendapatkan gambar diagram seperti pada gambar 2.
Gambar 2 - diagram untuk rangkaian dengan menggunakan komponen pada kemungkinan-1 (sumber)

Tanpa menunggu lama, saya langsung membuat rangkaian  seperti pada skema tersebut. Dalam membuat rangkaian, saya juga melihat datasheet 74HC595 dan CD4511. Ternyata 74HC595 itu adalah 8-bit shift registers dan CD4511 itu adalah BCD-to-7 segment Decoder.

Alat dan komponen yang saya gunakan adalah:
  1. Arduino Uno R3 x1
  2. kabel USB untuk power Arduino
  3. Breadboard x2
  4. 74HC595 x1
  5. CD4511 x1
  6. Common anode 7-segment x4
  7. Transistor npn x11
  8. Resistor 1k ohm x11
  9. kabel (untuk jumper) secukupnya

Rangkaian yang saya buat dapat dilihat pada gambar 3.
Gambar 3 - rangkaian yang sudah saya buat

Oke, rangkaian sudah ada, kemudian saya coba melihat kode program nya


Wah kok aneh, ekstensinya .pde, kalo tidak salah ini kan ekstensi untuk processing. Namun setelah saya lihat-lihat, sepertinya ini kode Arduino, saya langsung copas dan unggah ke Arduino, kemudian saya jalankan, dan hasilnya seperti pada video berikut.


Karena saya penasaran apasih gunanya 74HC595 dan CD411 tadi, maka saya googling dan menemukan jawabannya. 74HC595 atau 8-bit shift register berfungsi untuk menerima 8-bit input serial dan kemudian mengkonversikannya menjadi output parallel, sedangkan CD4511 adalah BCD-to-7 segment decoder yang berfungsi untuk mengubah kode biner (binary coded decimal) menjadi data tampilan untuk menampilkan 7-segment.

Jadi bisa disimpulkan, data yang keluar dari pin digital Arduino, masuk ke 74HC595, kemudian oleh 74HC595 di proses digit mana dan segment mana yang ingin dinyalakan pada 7-segment, perintah untuk menyalakan 7-segment dikirim dari 74HC595 ke CD4511 yang berfungsi sebagai decoder dan mengatur nyala/ matinya segment pada 7-segment.

Setelah memahami apa yang terjadi pada rangkaiannya, saya ingin coba memahami apa yang terjadi pada kode programnya. Setelah saya baca-baca saya tidak mengerti kode programnya, ada fungsi yang saya tidak tahu artinya, yaitu fungsi shiftOut(), saya langsung membaca dokumentasi arduino dan memahami bahwa shiftOut() berfungsi untuk mengirimkan data 1 byte(8bit) secara sekuensial (dikirimnya 1bit 1bit) dengan urutan MSB atau LSB terlebih dahulu. Syntaxnya secara lengkap adalah shiftOut(dataPin, clockPin, bitOrder, value).

Oke, saya rasa saya sudah cukup mengerti, sekarang saya mau mencoba menampilkan angka 1234 di rangkaian saya.
Gambar 5 - angka 1234 pada rangkaian 7-segment 

Kode program yang saya gunakan adalah

Saya mengganti short dengan int_8t karena short di Arduino berukuran 16 bit, sedangkan yang sebenarnya dibutuhkan hanya 8bit. Terdapat fungsi shift left (<<) yang berfungsi untuk menggeser sebanyak 4 digit ke kiri. Penambahan integer dengan nilai 1/ 2/ 4/ 8 untuk mengatur digit mana yang akan dinyalakan.

Contoh: Saya ingin menyalakan 1 buah 7-segment di paling kanan dengan angka 3, maka data yang akan saya kirimkan adalah (8<<4) + 1. Angka 8 integer = 00001000, setelah dilakukan operasi shift left menjadi 1000000, kemudian ditambah (00000001) maka menjadi 10000001. Data ini yang dikirimkan secara sekuensial dengan MSB(Most Significant Bit) atau bit paling kiri terlebih dahulu. Dapat dilihat bahwa 4 bit paling kiri akan diteruskan ke CD4511 dan 4 bit paling kanan menentukan digit mana yang akan dinyalan oleh 7HC595.

Akhirnya saya bisa menyalakan 4 digit 7-segment hanya dengan menggunakan 3 buah pin Arduino. Saya rasa postingan saya kali ini cukup sampai disini, pada postingan selanjutnya saya akan mencoba speaker kecil yang baru saya beli. Selamat mencoba!

Kamis, 20 Maret 2014

Arduino, Keypad, dan Processing

Yak, setelah kemarin bermain dengan keypad, hari ini saya mencoba untuk menghubungkan keypad tersebut ke program yang berjalan ke komputer. Idenya sih dengan menggunkan komunikasi serial pada Arduino, kemudian data dari serial tersebut diolah oleh suatu program. 

Awalnya saya ingin membuat program tersebut dengan bahasa pemrograman Java seperti pada contoh di arduino.cc. Akan tetapi, sayang sekali karena saya malas untuk menginstall file .dll yang diperlukan, selain itu juga kebetulan saya tidak dapat mengakses rxtx.qbang.org untuk mengunduh file .dll yang diperlukan agar dapat menghubungkan java dengan serial.

Singkat kata, saya googling-googling lagi, saya menemukan suatu bahasa pemrograman yang ternyata cukup banyak digunakan oleh orang-orang yang bermain dengan Arduino, bahasa pemrograman tersebut adalah processing. Nah ternyata processing ini dibuat dengan basis Java, namun ada suatu kalimat di websitenya yang membuat saya tertarik untuk mencoba, yaitu
Processing seeks to ruin the careers of talented designers by tempting them away from their usual tools and into the world of programming and computation. Similarly, the project is designed to turn engineers and computer scientists to less gainful employment as artists and designers.
Wah ada bahasa pemrograman yang sepertinya user friendly dan sangat powerful untuk membuat program dengan interface nih. Tanpa basa basi, saya langsung googling lagi mencari tutorial untuk menggunakan processing. Ditemukanlah di tautan berikut playground.arduino.cc. Saya pun langsung mengikuti instruksi di website tersebut.

Intinya, yang saya lakukan berdasarkan website tersebut adalah:
  1. unduh program processing tentunya...
  2. unduh library untuk menghubungkan arduino dan processing
  3. upload program firmata yang terdapat di file->examples pada IDE Arduino ke board Arduino Uno
  4. jalankan program contoh di processing
Nah saya sudah membuat rangkaian seperti pada gambar 1 (hanya memasang LED di pin 13) :D

Gambar 1 - rangkaian yang saya buat untuk mencoba processing

Saya menjalankan program pada processing dengan kode seperti dibawah ini

Hasilnya seperti pada video dibawah ini.
Oke, jadi sekarang saya sudah cukup mengerti processing(sok ngerti, padahal cuman copas). Sekarang saya mau menghubungkan Arduino, keypad, dan program yang akan saya buat dengan processing.
Eh tapi ternyata, setelah saya pikir-pikir ada yang aneh dengan percobaan yang baru saya lakukan. Arduinonya di install program tertentu(firmata) dan menggunakan processing untuk mengoperasikannya, disini saya melihat bahwa semua perintah ditentukan oleh program dari processing, sedangkan Arduino nya sendiri hanya berfungsi untuk menjankan perintah itu. Karena ini hanya bergantung pada satu program saja, maka saya coba cara lain untuk menghubungkan Arduino dan program yang dibuat dengan processing.
Setelah saya googling, saya mendapatkan link yang cukup menarik yaitu dari learn.sparkfun.com/ yang menjelaskan cara untuk menyambungkan Arduino dengan program processing, cara yang dilakukan beda dan sesuai dengan yang saya inginkan.
Berbekal dengan pengetahuan yang baru saya dapatkan dan juga dokumentasi dari www.processing.org saya akan coba membuat GUI untuk program yang akan menampilkan tombol yang saya tekan di keypad.
Setelah saya lihat dokumentasi nya processing, saya menyimpulkan akan ada beberapa fungsi yang saya gunakan, yaitu setup(), draw(), noLoop(), serialEvent(), redraw(), createFont() dan textFont(). Fungsi-fungsi ini yang menjadi perhatian utama saya, kemudian saya mencoba membuat kode program di Processing, awalnya saya tidak menggunakan redraw(), draw(), dan font, saya mencoba menampilkan tombol yang saya tekan di console IDE processing.
Kode untuk processing yang saya gunakan adalah

sedangkan kode untuk board Arduinonya tidak jauh berbeda dengan postingan saya sebelumnya, kode nya adalah

Hasil yang saya dapatkan dapat dilihat pada video berikut
Karena saya kurang puas dengan hanya melakukan print karakter ke console, dan rasa ingin untuk membuktikan quote yang ada di website http://processing.org; bahwa processing merupakan bahasa pemrograman yang dapat digunakan dengan mudah untuk membuat GUI, maka saya melakukan editing pada kode program sebelumnya, dengan menambahkan fungsi draw(), redraw(), noLoop(), serta fungsi-fungsi untuk membuat font.

Kode akhirnya adalah sebagai berikut

Hasil yang saya dapatkan dapat dilihat di video berikut 
Sebelum ngoprek, saya membaca dan memahami dokumentasi dari bahasa pemrograman processing yang terdapat di www.processing.org, sehingga percobaan pertama saya dengan menggunakan bahasa processing langsung berjalan dengan mulus.
Postingan ini merupakan pertama kalinya saya mencoba bahasa processing dan perlu diakui, bahasa ini lebih mudah untuk membuat GUI daripada bahasa lain yang pernah saya gunakan (Java, C, C++, python), namun hal ini hanya kesan pertama saja, masih bisa berubah dikemudian hari... Sekian saja postingan saya kali ini, tunggu postingan berikutnya dengan oprekan yang lebih menarik!

Arduino dan Keypad 4x4

Jadi ceritanya setelah kuliah Interkasi Manusia Komputer hari ini (19 Maret 2014), blog yang dibuat harus menceritakan perjalanan ngoprek pake Arduino. Nah kali ini saya akan mencoba menggunakan keypad untuk Arduino. Sepulang kuliah saya mampir ke Toko Anam (toko alat elektronik) untuk membeli keypad. Ternyata ada 2 jenis keypad, satu yang berukuran 3x3 satu lagi berukuran 4x4, dan ternyata harganya pun sama. Jadi karena tidak mau rugi, saya memilih untuk membeli keypad 4x4. Gambar keypad 4x4 yang saya beli dapat dilihat pada gambar 1.

Gambar 1 - keypad 4x4 yang baru saya beli

Nah setelah diamati lebih lanjut, ternyata keypad 4x4 ini ujungnya seperti pada gambar 2. Jadi saya memutuskan untuk membeli male pin header juga (gambar 3).

Gambar 2 - kabel yang menghubungkan keypad 4x4


Gambar 3 - pin header untuk menyambungkan keypad 4x4 ke breadboard

Nah setelah itu saya langsung mencari tahu bagaimana cara kerja keypad 4x4 ini, saya mendapatkan pdf yang cukup menarik dari http://www.parallax.com, saya perlihatkan bagian pentingnya di gambar 4.

Gambar 4 - cara kerja keypad 4x4 (sumber http://www.parallax.com)

Karena saya sudah cukup penasaran, saya langsung membuka buku Arduino Cookbook, dan mencari cara menjalankan keypad 4x4. Wah ternyata di buku  Arduino Cookbook, keypad yang digunakan adalah yang berukuran 4x3, insting saya langsung bekerja, saya tetap menyambungkan dengan cara yang mirip seperti ada di buku. Lalu saya membuat rangkaian seperti yang ada pada di buku dengan sedikit modifikasi, skema saya perlihatkan pada gambar 5.

Gambar 5 - skema rangkaian yang akan dibuat

Oh iya, jadi sebelum membuat rangkaian, saya akan membuat list alat dan bahan yang perlu disiapkan, yaitu:
  1. Arduino Uno R3 x1
  2. kabel usb untuk power Arduino x1
  3. breadboard x1
  4. keypad 4x4 x1
  5. male pin header  x8
  6. kabel (untuk jumper) secukupnya
Nah, langsung saja membuat rangkaiannya menjadi seperti pada gambar 6.

Gambar 6 - rangkaian yang sudah saya buat

Setelah membuat rangkaian tersebut, karena kode program yang ada di buku Arduino Cookbook hanya untuk keypad 4x3, maka saya melakukan modifikasi pada kode program, bagian yang saya modifikasi diperlihatkan pada gambar 7.

Gambar 7 - bagian dari kode program yang saya modifikasi

Kode program yang saya gunakan secara keseluruhan dapat dilihat dibawah ini

Kali ini saya beruntung karena kode program yang saya buat langsung berjalan dengan baik dan benar, dapat dilihat pada video dibawah ini.
Ketika saya memperhatikan lagi kode program dengan seksama, saya melihat ada baris kode program yang agak aneh, yaitu kode program
char key = 0;
dan
if( key != 0) { //jika key tidak 0,
                //maka ada tombol yang ditekan
Pada mulanya saya berpikiran bahwa dengan kode program ini maka jika tombol 0 ditekan tidak aka terjadi apa-apa. Namun ternyata saya salah, karena char key = 0; mengassign key dengan integer 0, sedangkan bila tombol ditekan maka akan ditampilkan '0' sebagai char. Demikian percobaan saya kali ini dengan menggunakan keypad 4x4, setelah postingan ini, saya akan mencoba membuat sesuatu yang lebih "wah" dengan menggunakan keypad 4x4 ini. Jadi, selamat mencoba dan tunggu postingan berikutnya ya!

Minggu, 16 Maret 2014

Arduino dan 7-Segment

Setelah dapat menggunakan Arduino dan sensor LM35, saatnya kita bermain dengan display. Saya memilih untuk menggunakan LED 7-segment. Saya memilih menggunakan 7-segment karena 7-segment biasa digunakan ketika pertama kali belajar rangkaian elektronik. Langsung saja ya.

Penjelasan 7-segment
7-segment adalah display yang terdiri dari 7 LED untuk menampilkan angka maupun huruf. Biasanya 7-segment juga dilengkapi dengan sebuah LED titik di kanan bawah, sehingga dapat digunakan untuk menampilkan bilangan desimal. 
Gambar 1 - 7-segment

7-segment yang banyak ditemui dipasaran ada 2 jenis yaitu common cathode 7-segment dan common anode 7-segment. Perbedaannya adalah pada common cathode, semua katoda 7 LED yang terdapat pada 7-segment tersambung menjadi satu, sedangan pada common anode, tersambung pada anoda nya.
Gambar 2 - common cathode 7-segment dan common anode 7-segment

 Gambar 3 - rangkaian dalam LED 7-segment

Setelah mengetahui tentang 7-segment, sekarang saatnya melakukan percobaan.

Percobaan #1
Menampilkan Angka pada 1 Buah 7-segment dengan Menggunakan Arduino

Pada percobaan ini akan dihubugkan 1 buah 7-segment common anode dengan arduino. Bagian 7-segment yang dihubungkan semua LED nya kecuali titik yang terletak di kanan bawah. Setelah 7-segment terhubung dengan Arduino, akan dibuat program untuk menghitung mundur dari 9 ke 0 kemudian akan kedap kedip di angka 0, lalu kembali ke 9, hitung mundur ke 0, dan seterusnya

Alat dan komponen yang dibutuhkan:
  1. board Arduino x1
  2. kabel USB untuk power Arduino x1
  3. common anode 7-segment x1
  4. breadboard x1
  5. resistor 1k ohm x 7
  6. kabel (untuk jumper) secukupnya
Skema rangkaian dapat dilihat pada gambar 4.
Gambar 4 - skema rangkaian percobaan 1

Hasil akhir rangkaian yang saya buat dapat dilihat pada gambar 5.
Gambar 5 - Rangkaian yang sudah saya buat untuk percobaan 1

Setelah membuat rangkaian, selanjutnya saya menggunggah kode program ke dalam Arduino, kode program yang saya gunakan sebagai berikut

Setelah program dijalankan akan didapatkan hasil seperti pada gambar 6.

Gambar 6 - Arduino sudah dimasukkan kode program diatas dan dijalankan

Percobaan #2
Menampilkan Suhu yang dibaca dengan LM35 pada 4 Buah 7-segment dengan Menggunakan Arduino
Pada percobaan 2 akan digunakan 4 buah 7-segment untuk menampilkan hasil pengukuran dari LM35, dengan menggabungkan kode dari percobaan membuat rangkaian dengan LM35 sebelumnya dengan percobaan #1. Alat dan komponen yang dibutuhkan:
  1. board Arduino x1
  2. kabel USB untuk power Arduino x1
  3. common anode 7-segment x4
  4. breadboard x2
  5. resistor 1k ohm x 11
  6. transistor NPN x4
  7. LM35 x1
  8. kabel (untuk jumper) secukupnya
skema rangkaian dapat dilihat pada gambar 7.
 Gambar 7 - skema rangkaian percobaan 2

Hasil akhir rangkaian yang saya buat dapat dilihat pada gambar 8.
 Gambar 8 - Rangkaian yang sudah saya buat untuk percobaan 2

Setelah membuat rangkaian, selanjutnya saya menggunggah kode program ke dalam Arduino, kode program yang saya gunakan sebagai berikut

Setelah program dijalankan akan didapatkan hasil seperti pada gambar 9.
Gambar 9 - Arduino sudah dimasukkan kode program diatas dan dijalankan
Demikian postingan kali ini, semoga bermanfaat dan selamat mencoba!

Sabtu, 15 Maret 2014

Kalibrasi Sensor Suhu LM35 pada Arduino

Setelah dapat mengukur suhu menggunakan sensor LM35, yang menjadi fokus pada postingan kali ini adalah bagaimana cara untuk mengkalibrasi/ menyesuaikan hasil pengukuran sensor suhu LM35 dengan suhu sebenarnya.

Kalibrasi pada sensor suhu LM35 dilakukan dengan cara menyesuaikan  kode program yang digunakan pada Arduino. Yang menjadi perhatian adalah kode program pada baris berikut

float millivolts = (value / 1024.0) * 5000;//konversi perhitungan dari  
                                            //input analog ke digital 

float celsius = millivolts / 10; //output sensor sebesar 10mV per derajat
                                 //celsius
 
Kode program ini melakukan konversi dari data yang dibaca oleh sensor suhu LM35 menjadi digital. Kemudian data tersebut dibagi 10 agar menjadi celsius. Pada bagian ini perlu dikalibrasi sehingga data yang dihasilkan sesuai dengan suhu sebenarnya. 

Kalibrasi dilakukan dengan mencocokan suhu yang diukur oleh LM35 dengan thermometer ruangan. Namun saya tidak mempunyai thermometer ruangan sehingga tidak dapat melakukan kalibrasi.

Ada cari lain yaitu dengan memegang sensor suhu LM35, namun saya tidak menyarankan menggunakan cara ini, karena suhu tubuh manusia bervariasi antara 36.12–37.5 °C tergantung dari diukur dibagian mana, umur orang tersebut, kebiasaan/ apa yang sering dilakukan, habis ngapain, waktu pengukuran, dsb.

Jadi postingan ini ingin memberitahu bahwa hasil pengukuran sensor suhu LM35 masih perlu dikalibrasi agar sesuai dengan kondisi nyata. Demikian postingan kali ini. Semoga bermanfaat!