Category Archives: Arduino

UTS: Membuat Termometer + LCD dengan Arduino

Salaam, kembali lagi bersama tugas kuliah Human-Machine Interaction & Interface! Kali ini tugasnya agak berbeda, karena dinilai untuk UTS (Ujian Tengah Semester). Asik juga ya ujiannya ngeblog, tidak ujian tulis seperti kebanyakan ujian di jurusan lain.

Tugas (ujian) kali ini melanjutkan tugas yang lalu (membuat termometer). Namun ternyata nilai suhu yang ditangkap oleh sensor LM350 tidak sesuai dengan aslinya (lebih tinggi/lebih rendah) sehingga harus dilakukan kalibrasi.

Alat & Bahan

Alat dan bahan masih sama seperti posting sebelumnya, yang spesial kali ini adalah penambahan alat baru: LCD (dan kabelnya makin banyak).

arduino

Source Code

Screen Shot 2014-03-18 at 17.45.59

Kode program kali ini mengubah sedikit kode program sebelumnya (termometer). Kode yang diubah adalah bagaimana si Arduino memberikan output suhu (sebelumnya melalui serial monitor) ke layar LCD.

#include  // mengimpor library untuk output LCD

const int numRows = 2; // jumlah baris LCD (16x2)
const int numCols = 16; // jumlah kolom LCD (16x2)
const int inPin = 0; // input pin analog

// inisialisasi pin LCD yang dipasang ke Arduino
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
lcd.begin(numCols, numRows); // inisialisasi LCD
lcd.print("suhu sekarang : "); // output tulisan ke LCD
}
void loop()
{
int value = analogRead(inPin); // membaca input dari sensor suhu
float millivolts = (value / 1024.0) * 5000; // input sensor dalam satuan mV
float celsius = (millivolts / 10) - 0.18; // konversi mV ke C + kalibrasi (10mV/Celcius)
lcd.print(celsius); // tambahkan nilai Celcius ke LCD
lcd.print("C "); // tambahkan "C" ke LCD
lcd.print( (celsius * 9)/ 5 + 32 ); // tambahkan hasil konversi celcius ke fahrenheit
lcd.print("F "); // tambahkan "F" ke LCD
delay(1000); // tunggu 1 detik
// set kursor LCD ke (0,1) agar teks "suhu sekarang: " tidak tertimpa
lcd.setCursor(0, 1);
}

Kalibrasi

Awalnya kami cukup bingung bagaimana cara mengkalibrasi sensor ini karena tidak ada yang memiliki termometer. Akhirnya sambil hujan-hujanan kami berjalan ke LFD (lab fisika dasar). Di sana ada termometer ruangan.

Setelah sampai sana, kami bingung lagi karena termometer ruangannya jadul (kuno), sehingga akurasinya patut dipertanyakan 🙂 Tapi ya sudahlah kami percaya saja.

Perbedaan termometer Arduino kami dengan termometer ruangan itu 0.18˚C. Arduino lebih tinggi 0.18˚C. Karena itu kami mengurangi nilai celcius suhu dari sensor dengan 0.18˚C.

LED Sleep Indicator dengan Arduino. MacBook style.

Pernahkah kita melihat betapa indahnya lampu indikator ‘sleep’ pada Apple MacBook?  Kalau belum, coba lihat video singkat ini. Kali ini kita akan membuatnya dengan Arduino.

Apa yang membedakannya dengan kebanyakan laptop lain? Banyaknya lampu indikator  pada laptop mengganggu konsentrasi pengguna dan – tentu saja – mengurangi estetika desain laptop itu sendiri. Karena itu Apple memakai hanya satu lampu indikator, itupun tidak terlihat saat tidak dipakai. Cerdas kan?

Yang lebih asik lagi saat melihat lampu itu nyala, yaitu ketika MacBook sedang pada kondisi sleep. Jika lampu pada kebanyakan laptop ‘hanya’ berkedip saja, MacBook memiliki sentuhan artistik dengan membuatnya fade in dan fade out.

Nah karena topik kali ini bukan tentang MacBook – tetapi Arduino – mari kita lihat bagaimana membuat efek seperti ini dengan Arduino.


Alat yang dibutuhkan

  1. Board Arduino Uno,
  2. LED,
  3. Resistor,
  4. Kabel / Jumper,
  5. Breadboard,
  6. Kabel USB,
  7. Komputer yang sudah diinstal aplikasi Arduino IDE.

Step 1 : Menyusun Rangkaian

Pertama, kita susun komponen-komponen seperti ilustrasi di bawah ini.

arduino-sketch-2

Setelah itu, hubungkan kabel USB dari Arduino ke komputer yang sudah terinstal Arduino IDE (kalau belum, instal dulu ya). Kabel USB ini berperan sebagai medium pemrograman dari komputer ke board. Kabel USB ini juga menyediakan listrik yang diambil dari laptop untuk kebutuhan dayanya.

Step 2 : Memprogram Arduino

Buka software Arduino IDE pada komputer, software ini kita gunakan untuk memprogram Arduino. Jangan takut ya dengan kata ‘memprogram’, karena Arduino ini dibuat untuk desainer sehingga segalanya dibuat mudah 🙂

Screen Shot 2014-02-11 at 1.09.33 AM

Kemudian, buat kode seperti di bawah ini (kode berasal dari buku Getting Started with Arduino 2nd Edition, O’Reilly, Chapter 4. Kode ini dapat didownload di situs resminya).

const int LED = 9;
int i = 0;

void setup() {
  pinMode(LED, OUTPUT);
}

void loop(){
  for (i = 0; i < 255; i++) {     analogWrite(LED, i);     delay(10);   }   for (i = 255; i > 0; i--) {
    analogWrite(LED, i);
    delay(10);
  }
}

Klik tombol Screen Shot 2014-02-11 at 1.11.59 AM untuk cek error pada kode, setelah berhasil klik tombol Screen Shot 2014-02-11 at 1.12.08 AM untuk memasang program yang kita buat ke Arduino yang terpasang pada kabel.

Step 3 : Hasil

Lampu LED akan mati-nyala dengan efek  fade, sehingga akan timbul transisi antara mati-nyala-mati dengan perlahan.

sleeping-led-2


Begitulah ceritanya bagaimana membuat lampu LED berkedip dengan gaya, fade in dan fade out seperti di MacBook. Ngomong-ngomong ini adalah tugas kuliah Human Computer Interaction & Interface di jurusan Sistem dan Teknologi Informasi ITB. Doakan yah semoga dapat nilai bagus, terima kasih 🙂

** Update **

Menambah Push Button Pada Rangkaian

Seperti yang tercantum pada Example 05 di buku Getting Started with Arduino, kita bias menambahkan push button untuk menyalakan lampu LED.

Alat tambahan

  1. Push Button
  2. Resistor Tambahan

Kode Program

Lakukan langkah-langkah yang sama seperti pada Step 2 di atas namun dengan menggunakan kode di bawah ini.

</pre>
<div title="Page 71">
<pre>const int LED = 9;
const int BUTTON = 7;
int val = 0;
int old_val = 0;
int state = 0;
int brightness = 128;
unsigned long startTime = 0;

void setup() {
    pinMode(LED, OUTPUT);
    pinMode(BUTTON, INPUT);
}

void loop() {

    val = digitalRead(BUTTON);
    if ((val == HIGH) && (old_val == LOW)) {
        state = 1 - state;
        startTime = millis();
        delay(10);
    }

    if ((val == HIGH) && (old_val == HIGH)) {
        if (state == 1 && (millis() - startTime) > 500) {
<span style="line-height: 1.5;">           brightness++;
</span><span style="line-height: 1.5;">           delay(10);
</span>           if (brightness > 255) {
<span style="line-height: 1.5;">               brightness = 0;
</span><span style="line-height: 1.5;">           }
</span>        }
    }

    old_val = val;

    if (state == 1) {
        analogWrite(LED, brightness);
    } else {
        analogWrite(LED, 0);
    }

}</pre>
</div>
<pre>

Saklar Lampu LED dengan Arduino

Tugas dengan Arduino kali ini adalah membuat semacam saklar untuk menyalakan dan mematikan lampu LED.

Berikut adalah alat-alat yang dibutuhkan:

  1. Board Arduino UNO (1 pc)
  2. Kabel USB (untuk mengupload program ke Arduino dan memberi power untuk Arduino)
  3. Lampu LED kecil (1 pc, optional karena pada board Arduino UNO sudah terdapat LED)
  4. Kabel jumper
  5. Breadboard (1 pc)

Langkah-langkahnya:

  1. Persiapan rangkaian: pasang komponen-komponen seperti gambar berikut
  2. Jalankan software IDE Arduino pada komputer, ketik kode dalam bahasa C seperti berikut ini:

    const int buttonPin = 7; // nomor pin push button dipasang
    const int ledPin = 13; // nomor pin LED dipasang
    int active = 0; // state lampu
    void setup() {
    // set pin sebagai input dan output
    pinMode(ledPin, OUTPUT);
    pinMode(buttonPin, INPUT);
    }void loop(){

    // baca input dari pushbutton
    buttonState = digitalRead(buttonPin);

    if(buttonState == LOW) {

    // jika lampu tidak menyala
    if(active==0) {
    digitalWrite(ledPin,HIGH); // nyalakan lampu
    active = 1;
    } else {
    // jika lampu menyala
    digitalWrite(ledPin,LOW); // matikan lampu
    active = 0;
    }

    }

    // buat delay sebagai toleransi lama tombol ditekan
    delay(200);

    }

  3. Klik tombol compile, kemudian setelah compile berhasil klik tombol upload.
  4. Hanya ada 3 langkah. Silakan coba tekan push button pada Arduino.

Hasilnya:

1653796_10201583885496087_476658482_n 1506737_10201583886056101_618276170_n