Jumat, 24 Maret 2017

Project Belajar Arduino Part 7 : Membuat Multiple Alarm dan Dikendalikan Dengan PC Melalui Serial Port

Project kali ini membuat multiple Alarm menggunakan Arduino dan dikendalikan menggunakan aplikasi PC melalui port serial.
Aplikasi PC dibuat menggunakan Borland Delphi 10.1 Seattle dengan tambahan Komponen TMS Component Pack - TMS Software dan Comport.
Project ini bisa mengendalikan 16 alarm dan sekaligus menyalakan 16 relay yang terhubung dengan rangkaian.
Berikut aplikasi yang dijalankan di PC


Alarm/ Relay akan aktif bila berada diantara Waktu Mulai dan Selesai
Software alarm bisa diunduh di sini Control LED 

Project Belajar Arduino Part 6 : Membuat Jam Alarm Menggunakan Tiny RTC DS1307

Dalam proyek ini, kami merancang Jam dengan alarm berbasis Arduino. Real Time Clock atau RTC adalah jam menggunakan baterai yang memberikan waktu bahkan ketika tidak ada daya eksternal atau mikrokontroler diprogram.
RTC menampilkan jam dan kalender dengan semua fungsi ketepatan waktu. Baterai, yang terhubung ke RTC adalah salah satu yang terpisah dan tidak terkait atau terhubung ke catu daya utama.



Project Belajar Arduino Part 5 : Membuat Jam Menggunakan Tiny RTC DS1307

Waktu adalah urutan gerak atau peristiwa menurut persepsi yang mengamatinya, dan waktu itu relatif, karena di setiap tempat dan bagi setiap orang itu beda. Nah... dalam postingan kali ini saya ingin berbagi informasi yang bersangkutan tentang waktu, dan dapat berguna untuk yang sedang belajar tentang elektronika dan pemprograman yaitu RTC (Real Time Clock).
RTC (Real Time Clock) merupakan sebuah IC yang memiliki fungsi untuk menghitung waktu, mulai dari detik, menit, jam, tanggal, bulan, serta tahun. Ada beberapa RTC yang di jual di pasaran, seperti : DS1307, DS1302, DS12C887, DS3234.

Kamis, 16 Maret 2017

Project Belajar Arduino Part 4 : Membuat Countdown Timer dengan Arduino dan Android

Pada artikel kali ini kita akan mencoba membuat countdown timer dengan Arduino. Apa itu Countdown timer? Menurut Wikipedia Indonesia, Penghitung waktu mundur (countdown timer) adalah sejenis stopwatch yang dapat menunjukan banyaknya sisa waktu yang tersedia sampai batas waktu yang ditentukan. 


Countdown timer banyak sekali manfaatnya untuk kehidupan sehari - hari apabila kita menggunakannya dengan bijak. Contoh kecilnya adalah Timer pada Mesin cuci, Timer pada Oven, Timer pada stop kontak dan lain lain.

Dan pada tutorial kali ini, kita akan mencoba men-setting Timer countdown pada Arduino dengan menggunakan aplikasi Android dan komunikasi Wireless via Bluetooth. Dengan aplikasi ini kita dapat Set Countdown Timer maksimal 24 Jam, dan output dari countdown timer ini dapat ente sesuaikan dengan kebutuhan ente. Bila pada tutorial ini, output dari countdown timernya ane gunakan untuk mengaktifkan led dan buzzer sebagai indikator.

Jumat, 10 Maret 2017

Project Belajar Arduino Part 3 : Membuat Countdown Timer Dengan LCD dan Keypad

Langkah 1: Perangkat yang Dibutuhkan


Untuk membuat project ini, kita memerlukan beberapa perangkat diantaranya:
1. Sebuah PC yang terinstall Arduino IDE
2. Arduino atau Arduino kompatibel, paling disukai Arduino Pro Mini.
3. Sebuah LCD dengan atau tanpa backlight.
4. Trimport 50K Ohm
5. Beberapa kabel jumper.
6. USB FTDI/ USB TTL PL2303HX
7. Keypad 3x4 - 1 buah

Langkah 2: Merangkai Hardware Countdown

1. Pasangkan semua komponen seperti pada gambar berikut


Kamis, 09 Maret 2017

Project Belajar Arduino Part 2 : Stopwatch Arduino Sederhana Dengan 2 Tombol

Langkah 1: Perangkat yang Dibutuhkan

Untuk membuat project ini, kita memerlukan beberapa perangkat diantaranya:
1. Sebuah PC yang terinstall Arduino IDE
2. Arduino atau Arduino kompatibel, paling disukai Arduino Pro Mini.
3. Sebuah LCD dengan atau tanpa backlight.
4. Beberapa kabel jumper.
5. USB FTDI/ USB TTL PL2303HX

Jika Anda tidak memiliki salah satu diantaranya, maka silakan mencarinya pada toko online / toko hobi elektronik offline.

Langkah 2: Merangkai Hardware Stopwatch

Untuk merakit Stopwatch, pertama anda perlu mensolder pin header untuk LCD dan kemudian menghubungkan Arduino Pro Mini atau Anda melihat gambar di bawah ini:

Project Belajar Arduino Part 1 : Stopwatch Arduino Sederhana Tanpa Tombol





Stopwatch Arduino terbuat dari contoh library LiquidCrystal yang. Project ini menunjukkan waktu saat mulai direset. Instructable ini terinspirasi oleh instructuble diciptakan oleh Conor M - Arduino Stopwatch.  Kode ini diambil dari Electrify  dan kode ini super sederhana dan ringan.

Tutorial Belajar Arduino Part 14: Sensor Ultrasonik

Gelombang ultrasonik merupakan gelombang yang umum digunakan untuk radar untuk mendeteksi keberadaan suatu benda dengan memperkirakan jarak antara sensor dan benda tersebut. Dalam ebook ini, kita akan mempelajarinya dengan salah satu sensor ultrasonik HC-SR04 sebab sensor ini juga relatif terjangkau untuk pembelajaran. Bentuk fisik dari sensor ini tampak seperti gambar Sensor ultrasonik HC-SR04


Sekilas tentang Sensor Ultrasonik
Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu. Disebut sebagai sensor ultrasonik karena sensor ini menggunakan gelombang ultrasonik (bunyi ultrasonik).
Gelombang ultrasonik adalah gelombang bunyi yang mempunyai frekuensi sangat tinggi yaitu 20.000 Hz. Bunyi ultrasonik tidak dapat di dengar oleh telinga manusia. Bunyi ultrasonik dapat didengar oleh anjing, kucing, kelelawar, dan lumba-lumba. Bunyi ultrasonik bisa merambat melalui zat padat, cair dan gas. Reflektivitas bunyi ultrasonik di permukaan zat padat hampir sama dengan reflektivitas bunyi ultrasonik di permukaan zat cair. Akan tetapi, gelombang bunyi ultrasonik akan diserap oleh tekstil dan busa.

Tutorial Belajar Arduino Part 13: Sensor Cahaya

Salah satu jenis sensor cahaya adalah LDR (Light Dependent Resistor). Dengan sensor ini, kita bisa membuat alat yang berkaitan dengan cahaya seperti jemuran otomatis, tracking arah sumber cahaya matahari, lampu otomatis (untuk rumah, aquarium, dll), atau sebagai pengatur intensitas cahaya lampu untuk tananaman di dalam ruangan, dan banyak lagi lainnya. Di pasaran ada LDR yang berukuran 4 mm dan 11 mm. Pada Gambar di bawah ini adalah LDR dengan ukuran 11 mm.



Rabu, 08 Maret 2017

Tutorial Belajar Arduino Part 12: Termometer Digital/ LCD Character

Dalam hal ini kita akan menyiapkan LCD untuk menampilkan informasi suhu yang telah kita buat. Sebab melihat informasi suhu dengan komputer tentu kurang praktis bukan?

LCD merupakan singkatan dari Liquid Crystal Display, atau umumnya disebut dengan LCD atau display saja. Di pasaran beragam jenis LCD dan berbagai ukuran yang bisa Anda gunakan. LCD bisa untuk menampilkan huruf dan angka, bahkan ada yang bisa untuk menampilkan gambar.

Dalam ebook ini, kita akan berkenalan dengan LCD yang umum digunakan dan harganya juga relatif terjangkau. LCD ini berukuran 16x2 (2 baris 16 kolom) yang cukup untuk menampilkan informasi suhu atau informasi yang tidak terlalu panjang. LCD ini dikenal juga dengan LCD 1602 dengan beberapa varian seperti 1602A, dll.

LCD ini bisa bekerja pada 5 volt, sehingga Anda bisa menyambungkannya secara langsung ke pin VCC pada board Arduino. Perlu diperhatikan, jika Anda menggunakan LCD jenis lainnya, ada juga LCD yang bekerja pada voltase yang berbeda. Sehingga kesalahan pemasangan sumber tegangan bisa membuat LCD rusak.


Gambar LCD 1602

Tutorial Belajar Arduino Part 11: Termometer Digital/ Komunikasi Serial

Sebelum kita membuat termometer digital, kita akan belajar bagaimana menggunakan Serial Monitor sebagai alat untuk melihat apakah sensor menghasilkan data yang benar atau tidak. Maksudnya begini, ketika kita menggunakan sebuah sensor untuk mengambil data, maka sensor akan mengirimkan data untuk diproses oleh mikrokontroller. Untuk memastikan data dari sensor tersebut merupakan data yang benar, maka kita bisa melihatnya melalui Serial Monitor. Cara kerjanya begini:
1.        Mikrokontroller akan membaca data dari sensor
2.        Kemudian mikrokontroller akan membuat koneksi serial ke komputer
3.        Selanjutnya mikrokontroller akan mengirimkan data ke komputer melalui komunikasi serial tersebut
4.       Lalu kita bisa melihat data yang diterima oleh komputer menggunakan serial monitor, hyperterminal, atau aplikasi sejenis seperti CoolTerm dan PuTTY.

Serial Monitor
Serial monitor bisa kita gunakan untuk men-debug secara software. Jika tanpa serial monitor, kita tidak bisa melakukan debug untuk aplikasi yang kita buat sehingga untuk menemukan solusinya, kita harus men- debug dari sisi hardware. Misal ketika ada error, kita akan mencoba dengan LED atau menambah/ mengurangi rangkaian.

Tapi jika menggunakan serial monitor, kita akan tahu error-nya melalui data yang dikirimkan oleh Arduino. Misal ketika nyala LED terlalu lama atau terlalu pelan, kita langsung bisa mengecek nilai (angka) yang digunakan untuk delay dan semua isi variabel dalam program yang kita buat. Sehingga kita bisa menelusuri logika dan algoritma program berdasarkan data-data yang dikirimkan tadi.

Perhatikan pada board arduino, pin 0 dan 1 ada tulisan RX dan TX. Pin tersebut berfungsi untuk menerima dan mengirim data melalui komunikasi serial dari Arduino ke komputer melalui kabel USB. Untuk menggunakan komunikasi serial, kita tidak perlu menambahkan komponen tambahan pada Arduino karena pada board tersebut sudah disediakan. Kita cukup menghubungkan Arduino ke komputer, dan kita bisa langsung membuat program. Mari kita mulai dengan Sketch Komunikasi Serial.

Senin, 06 Maret 2017

Tutorial Belajar Arduino Part 10: Output Music

Buatlah Rangkaian dengan speaker 8 ohm atau 16 ohm. Speaker baru atau speaker bekas radio yang masih berfungsi bisa Anda gunakan.
1.        Sambungkan kaki positif speaker pada pin 9 board arduino
2.        Sambungkan kaki negatif pada GND pada board arduino
3.        Jika nanti suara yang dihasilkan terlalu nyaring, maka Anda bisa menambahkan resistor 100 — 1 k ohm pada kaki positif atau negatif speaker.


Musik adalah kumpulan nada, sehingga jika kita ingin membuat musik, maka kita bisa merangkai nada-nada sehingga alunannya enak didengar.
Pada Arduino kita bisa menggunakan fungsi tone() untuk membuat nada. Fungsi tone() memiliki 2 parameter inputan wajib dan 1 parameter tambahan. Cara menggunakan fungsi tone() yaitu:

Tutorial Belajar Arduino Part 9: Output Sound

Pada bagian ini kita akan bermain-main dengan suara. Sehingga kita akan membutuhkan buzer atau speaker untuk membangkitkan suara dan nada musik sederhana. Pada dasarnya, untuk membuat buzer atau speaker berbunyi maka kita haras menghidup-matikan speaker sesuai dengan frekuensi suara yang ingin kita bunyikan. Hidup-matinya speaker akan membuat spool speaker bergetar (bergerak maju-mundur) dan menghasilkan bunyi dengan nada tertentu.
Suara musik kelas A menengah sekitar 440 Hz. Masih ingat apa itu Hz? Hz merupakan kependekan dari Hertz. Hertz adalah jumlah siklus perdetik. Dengan demikian, jika kita ingin memainkan musik kelas A menengah, maka kita harus menyalakan dan mematikan speaker sebanyak masing-masing 440 kali dalam 1 detik.
Untuk menghidup-matikan speaker sebanyak masing-masing 440 kali, kita bisa memanfaatkan fungsi delay(). Sebelumnya kita telah membuat LED berkedip dengan memanfaatkan delay. Perlakuan kita terhadap LED akan kita terapkan pada speaker, tapi dengan tempo yang lebih cepat.
Cara menghitung delay yang kita butuhkan untuk mendapatkan siklus 440 Hz (nada 440Hz) yaitu dengan cara:

   

Sabtu, 04 Maret 2017

Tutorial Belajar Arduino Part 8: Input Potensiomenter

Potensiomenter
Setelah kita belajar mengatur intensitas cahaya LED dengan pushbutton, kali ini kita akan mengunakan potensiometer. Kelebihan menggunakan potensiometer yaitu kita lebih mudah sebab kita hanya butuh satu alat untuk membuat LED lebih redup atau lebih terang.
Kenapa kita harus melalui mikrokontroller? Kan bisa saja kita menghubungkan langsung ke LED untuk mengatur arus yang masuk? Betul sekali.

Rangkaian Mengatur intensitas cahaya LED dengan potensiometer

Jumat, 03 Maret 2017

Tutorial Belajar Arduino Part 7: Tombol Input

Sebelumnya kita telah belajar tentang bagaimana mengendalikan LED. Untuk mengendalikan LED kita menjadi pin pada Arduino sebagai OUTPUT. Pada bagian ini kita akan membahas tentang bagaimana menjadikan pin Arduino sebagai INPUT dan sebagai aplikasinya, kita akan menggunakan komponen pushbotton dan potensiometer sebagai input untuk mengendalikan LED. Bagian ini akan menjadi dasar agar Anda memahami bagaimana membuat Arduino bisa membaca sensor untuk mendeteksi kondisi lingkungan sekitar.

Pushbutton
Pertama kita akan bermain dengan tombol pushbutton (tactile) atau tombol push on. Ketika tombol ini ditekan, maka jalur akan tertutup (ON), ketika dilepas jalur akan kembali terbuka (OFF). Tombol banyak digunakan untuk peralatan seperti remote, keypad, keyboard, atau tombol untuk pengaturan TV, ld atau sejenisnya.

Pushbutton dan simbolnya

Rabu, 01 Maret 2017

Tutorial Belajar Arduino Part 6: Pengenalan Array

Membuat Rangkaian LED
Silakan buat rangkaian Arduino Anda seperti rangkaian di atas. Siapkan 4 buah resistor dan 4 buah LED. Siapkan kabel jumper untuk menyuplai GDN pada project board. Masing-masing kaki negatif LED dihubungkan ke GND dengan resistor. Sedangkan keempat LED tersebut dihubungkan berturut-turut dengan pin 10, 11, 12, dan 13 pada board Arduino. Resistor yang digunakan bernilai 470 ohm.

Merangkai komponen alat
Kita tinggal merangkai alat pada PCB Lubang standar DIP atau 2.54mm  


kemudian dihubungkan dengan Arduino pro mini seperti gambar di bawah


Jika sudah dirangkai, silakan upload Sketch berikut:

// Animasi LED
// Inisialisasi Pin LED
const int pinLED1 = 10;
const int pinLED2 = 11;
const int pinLED3 = 12;
const int pinLED4 = 13;
void setup() {
  // pin LED sebagai output
  pinMode(pinLED1,OUTPUT);
  pinMode(pinLED2,OUTPUT);
  pinMode(pinLED3,OUTPUT);
  pinMode(pinLED4,OUTPUT);
}
void loop() {
// perulangan sebanyak 5 kali
// dari i=0 hinga i=4 atau (i < 5)
for(int i=0; i<5; i++){
  if(i==1){
    // jika i=1, hidupkan led 1, led yang lain mati
    digitalWrite(pinLED1,HIGH);
    digitalWrite(pinLED2,LOW);
    digitalWrite(pinLED3,LOW);
    digitalWrite(pinLED4,LOW);
  } else if(i==2){
  // jika i=2, hidupkan led 1 & 2, led 3 & 4 mati
    digitalWrite(pinLED1,HIGH);
    digitalWrite(pinLED2,HIGH);
    digitalWrite(pinLED3,LOW);
    digitalWrite(pinLED4,LOW);
  } else if(i==3){
   // jika i=3, hidupkan led 1, 2, & 3, led 4 mati
    digitalWrite(pinLED1,HIGH);
    digitalWrite(pinLED2,HIGH);
    digitalWrite(pinLED3,HIGH);
    digitalWrite(pinLED4,LOW);
  } else if(i==4){
  // jika i=4, hidupkan semua led
    digitalWrite(pinLED1,HIGH);
    digitalWrite(pinLED2,HIGH);
    digitalWrite(pinLED3,HIGH);
    digitalWrite(pinLED4,HIGH);
  } else{
  // jika tidak, matikan semua led
    digitalWrite(pinLED1,LOW);
    digitalWrite(pinLED2,LOW);
    digitalWrite(pinLED3,LOW);
    digitalWrite(pinLED4,LOW);
  }
  // delai selama 5 detik
  delay(5000);
  }
}

Program di atas akan membuat LED menyala bergantian sebanyak 5 animasi (perulangan sebanyak 5 kali). Pertama, semua LED akan mati selama 5 detik. Kedua, LED 1 akan menyala. Ketiga, LED 1 dan 2 akan menyala. Keempat, LED 1, 2, dan 3 akan menyala. Kelima, semua LED akan menyala.
Animasi tersebut ditentukan berdasarkan nilai i, nilai i diperiksa dengan perintah IF. Jika nilai i=0, maka semua LED mati, jika i=1 maka satu LED nyala, dan seterusnya.
Selain menggunakan IF, ada cara lain yang lebih simpel untuk membuat animasi LED seperti program pada Sketch berikut

// Sketch Animasi LED Alternatif
// Inisialisasi Pin LED
const int pinLED1 = 10;
const int pinLED2 = 11;
const int pinLED3 = 12;
const int pinLED4 = 13;
void setup() {
// pin LED sebagai output
  pinMode(pinLED1,OUTPUT);
  pinMode(pinLED2,OUTPUT);
  pinMode(pinLED3,OUTPUT);
  pinMode(pinLED4,OUTPUT);
}
void loop() {
  digitalWrite(pinLED1,LOW);
  digitalWrite(pinLED2,LOW);
  digitalWrite(pinLED3,LOW);
  digitalWrite(pinLED4,LOW);
  delay(1000);
  digitalWrite(pinLED1,HIGH);
  delay(1000);
  digitalWrite(pinLED2,HIGH);
  delay(1000);
  digitalWrite(pinLED3,HIGH);
  delay(1000);
  digitalWrite(pinLED4,HIGH);
  delay(1000);
}

Dengan memanfaatkan delay, program pada Sketch diatas lebih simple daripada Sketch sebelumnya. Kira-kira, apakah ada cara yang lebih simpel lagi? Ada! Kita bisa menggunakan Array. Apa itu Array?
Pengenalan Array
Array merupakan variabel yang bisa menampung banyak data, masing-masing data bisa diambil dengan alamat indeks (posisi) data dalam Array tersebut. Alamat indeks pada array standarnya adalah angka integer yang diawali dari angka 0. Jadi, jika kita punya data 5 dalam variabel Array, maka data pertama pada alamat indeks ke-0, data ke-2 pada alamat indeks ke-1, dan data ke-5 pada alamat indeks ke-4.
Untuk lebih memahami tentang Array, program pada Sketch berikut merupakan versi lebih simpel daripada Sketch sebelumnya dengan memanfaatkan perulangan FOR dan Array.

// Sketch Animasi LEDdengan Array
// Inisialisasi Jumlah LED
const int numLED = 4;
// LED 1,2,3,&4 jadi 1 varibel
// dengaan alamat index 0,1,2,3
const int pinLED[numLED] = {10,11,12,13};
void setup() {
  // Inisialisasi semua pin LED sebagai OUTPUT
  for(int i=0; i<4; i++){
  pinMode(pinLED[i],OUTPUT);
  }
}
void loop() {
  // Matikan semua LED
  for(int i=0; i<4; i++){
  digitalWrite(pinLED[i],LOW);
  }
  delay(1000);
  // Hidupkan semua LED bertahap dg jeda 1 detik
  for(int i=0; i<4; i++){
  digitalWrite(pinLED[i],HIGH);
  delay(1000);
  }
}

 Jika dibandingkan dengan Sketch sebelumnya  yang tanpa baris keterangan komentar, maka Sketch diatas jauh lebih pendek dan lebih simpel.
Pada Sketch diatas, keempat LED dimuat dalam satu variabel yaitu variabel Array pinLED. Masing-masing LED bisa diakses berdasarkan alamat indeks. Perhatikan pada baris 6.
6. const int pinLED[numLED] = {10,11,12,13};
Secara otomatis, alamat indeks untuk masing-masing LED tergantung pada urutan pin tersebut. Pin 10 ada pada alamat indeks ke- 0, pin 11 ada pada indeks ke 1, pin 12 ada di indeks ke 2, dan pin 13 ada pada indeks ke 3. Sehingga untuk mengakses pin 10, kita bisa menambahkan kurung siku dan alamat indeks ke-0, seperti berikut:
Pin10 = pinLED[0]
Karena indeks tertinggi adalah angka 3, maka di setiap perulangan LED tidak boleh lebih dari 3 atau < 4, perhatikan perintah FOR berikut:
for(int i=0; i<4; i++){
Yap, semoga penjelasan Array di atas mudah dipahami. Jika ada yang membingungkan, silakan tanya-tanya di website, dengan senang hati penulis akan menjawab. Baik, selanjutnya kita akan lebih mengembangkan Sketch sedikit lebih kompleks dan animasinya lebih menarik.

//Animasi LED Bonus 1
// Inisialisasi Jumlah LED
const int numLED = 4;
// LED 1,2,3,&4 jadi 1 varibel
// dengaan alamat index 0,1,2,3
const int pinLED[numLED] = {10,11,12,13};
void setup() {
  // Inisialisasi semua pin LED sebagai OUTPUT
  for(int i=0; i<4; i++){
  pinMode(pinLED[i],OUTPUT);
  }
}
void loop() {
  // Hidupkan semua LED bertahap dg jeda 1 detik
  for(int i=0; i<4; i++){
    digitalWrite(pinLED[i],HIGH);
    delay(500);
  }
  // Matikan semua LED bertahap dg jeda 1 detik
  for(int i=0; i<4; i++){
    digitalWrite(pinLED[i],LOW);
    delay(500);
  }
}
 
// Animasi LED Bonus 2
// Inisialisasi Jumlah LED
const int numLED = 4;
// LED 1,2,3,&4 jadi 1 varibel
// dengaan alamat index 0,1,2,3
const int pinLED[numLED] = {10,11,12,13};
void setup() {
  // Inisialisasi semua pin LED sebagai OUTPUT
  for(int i=0; i<4; i++){
    pinMode(pinLED[i],OUTPUT);
  }
}
 
void loop() {
  // hidupkan led indeks 0 hingga 2 satu-persatu
  for(int i=0; i<3; i++){
    digitalWrite(pinLED[i],HIGH);
    delay(200);
    digitalWrite(pinLED[i],LOW);
  }
  // hidupkan led indeks 3 hingga 1 satu-persatu
  for(int i=3; i>0; i--){
    digitalWrite(pinLED[i],HIGH);
    delay(200);
    digitalWrite(pinLED[i],LOW);
  }
}