April 27, 2012

Mengendalikan motor DC dengan arduino

Pada percobaan kali ini yang perlu di persiapkan adalah

sambungkan port input pada driver motor dc ke port digital (pin 3, pin 4, pin 5 dan pin 6). cobalah buat program seperti dibawah ini


#define ka1 3 //pin 3
#define ka2 4 //pin 4
#define ki1 5 //pin 5
#define ki2 6 //pin 6
void setup() {
  // set the digital pin as output:
pinMode(ka1, OUTPUT);
pinMode(ka2, OUTPUT);
pinMode(ki1, OUTPUT);
pinMode(ki2, OUTPUT);

  digitalWrite(ka2, HIGH);
  digitalWrite(ka1, HIGH);
  digitalWrite(ki2, HIGH);
  digitalWrite(ki1, HIGH);

}
void loop()
{
  digitalWrite(ka1, HIGH);
  digitalWrite(ka2, LOW);
  digitalWrite(ki1, HIGH);
  digitalWrite(ki2, LOW);
  delay(1000);
  digitalWrite(ka1, LOW);
  digitalWrite(ka2, HIGH);
  digitalWrite(ki1, LOW);
  digitalWrite(ki2, HIGH);
  delay(1000);
}

relay akan aktif jika di beri kondisi 0 (low)



selamat mencoba

Instalasi Arduino

Tutor  ini tidak akan mengajarkan elektronika dari dasar. Tutor ini lebih di arahkan untuk kebutuhan pelajaran di masa yang akan datang. Pembelajaran ini akan memverifikasi Arduino bekerja sebagaimana dimaksud dan tujuan tutor ini supaya anda siap menjadi orang kreatif dan inovatif demi Indonesia yang cerdas pada tahun yang akan datang

April 26, 2012

Macam Tipe Arduino



Various Arduino Boards Saat ini ada bermacam-macam bentuk papan Arduino yang disesuaikan dengan peruntukannya seperti diperlihatkan berikut ini:

ARDUINO USB
Arduino Uno
Menggunakan USB sebagai antar muka pemrograman atau komunikasi komputer. Contoh:
  • Arduino Uno
  • Arduino Duemilanove
  • Arduino Diecimila
  • Arduino NG Rev. C
  • Arduino NG (Nuova Generazione)
  • Arduino Extreme dan Arduino Extreme v2
  • Arduino USB dan Arduino USB v2.0

Skema Arduino

Komponen utama di dalam papan Arduino adalah sebuahmicrocontroller 8 bit dengan merk ATmegayang dibuat oleh perusahaan Atmel Corporation. Berbagai papan Arduino menggunakan tipe ATmega yang berbeda-beda tergantung dari spesifikasinya, sebagai contoh Arduino Uno menggunakan ATmega328 sedangkan ArduinoMega 2560 yang lebih canggih menggunakan ATmega2560.
Untuk memberikan gambaran mengenai apa saja yang terdapat di dalam sebuah microcontroller, pada gambar berikut ini diperlihatkan contoh diagram blok sederhana dari microcontroller ATmega328 (dipakai pada Arduino Uno).
ATmega328 Simple Block Diagram
Blok-blok di atas dijelaskan sebagai berikut:
  • Universal Asynchronous Receiver/Transmitter (UART) adalah antar muka yang digunakan untuk komunikasi serial seperti pada RS-232, RS-422 dan RS-485.
  • 2KB RAM pada memory kerja bersifat volatile (hilang saat daya dimatikan), digunakan oleh variable-variabel di dalam program.
  • 32KB RAM flash memory bersifat non-volatile, digunakan untuk menyimpan program yang dimuat dari komputer. Selain program, flash memory juga menyimpan bootloader.
    Bootloader adalah program inisiasi yang ukurannya kecil, dijalankan oleh CPU saat daya dihidupkan. Setelah bootloader selesai dijalankan, berikutnya program di dalam RAM akan dieksekusi. 
  • 1KB EEPROM bersifat non-volatile, digunakan untuk menyimpan data yang tidak boleh hilang saat daya dimatikan. Tidak digunakan pada papan Arduino (red: namun bisa diakses/diprogram oleh pemakai dan digunakan sesuai kebutuhan).
  • Central Processing Unit (CPU), bagian dari microcontroller untuk menjalankan setiap instruksi dari program.
  • Port input/output, pin-pin untuk menerima data (input) digital atau analog, dan mengeluarkan data (output) digital atau analog. 
Setelah mengenal bagian-bagian utama dari microcontroller ATmega sebagai komponen utama, selanjutnya kita akan mengenal bagian-bagian dari papan Arduino itu sendiri.
Dengan mengambil contoh sebuah papan Arduino tipe USB, bagian-bagiannya dapat dijelaskan sebagai berikut:
Arduino Board Parts
14 pin input/output digital (0-13)Berfungsi sebagai input atau output, dapat diatur oleh program.
Khusus untuk 6 buah pin 3, 5, 6, 9, 10 dan 11, dapat juga berfungsi sebagai pin analog output dimana tegangan output-nya dapat diatur. Nilai sebuah pin output analog dapat diprogram antara 0 – 255, dimana hal itu mewakili nilai tegangan 0 – 5V.
USB, berfungsi untuk:
  • Memuat program dari komputer ke dalam papan
  • Komunikasi serial antara papan dan komputer
  • Memberi daya listrik kepada papan
Sambungan SV1Sambungan atau jumper untuk memilih sumber daya papan, apakah dari sumber eksternal atau menggunakan USB. Sambungan ini tidak diperlukan lagi pada papan Arduino versi terakhir karena pemilihan sumber daya eksternal atau USB dilakukan secara otomatis.
Q1 – Kristal (quartz crystal oscillator)Jika microcontroller dianggap sebagai sebuah otak, maka kristal adalah jantung-nya karena komponen ini menghasilkan detak-detak yang dikirim kepada microcontroller agar melakukan sebuah operasi untuk setiap detak-nya. Kristal ini dipilih yang berdetak 16 juta kali per detik (16MHz).
Tombol Reset S1Untuk me-reset papan sehingga program akan mulai lagi dari awal. Perhatikan bahwa tombol reset ini bukan untuk menghapus program atau mengosongkan microcontroller.
In-Circuit Serial Programming (ICSP)Port ICSP memungkinkan pengguna untuk memprogram microcontroller secara langsung, tanpa melalui bootloader. Umumnya pengguna Arduino tidak melakukan ini sehingga ICSP tidak terlalu dipakai walaupun disediakan.
IC 1 – Microcontroller AtmegaKomponen utama dari papan Arduino, di dalamnya terdapat CPU, ROM dan RAM.
X1 – sumber daya eksternalJika hendak disuplai dengan sumber daya eksternal, papan Arduino dapat diberikan tegangan DC antara 9-12V.
6 pin input analog (0-5)Pin ini sangat berguna untuk membaca tegangan yang dihasilkan oleh sensor analog, seperti sensor suhu. Program dapat membaca nilai sebuah pin input antara 0 – 1023, dimana hal itu mewakili nilai tegangan 0 – 5V
CATATAN: Untuk selanjutnya pembahasan pada seri artikel ini akan digunakan papan Arduino yang berbasiskan USB dan papan yang akan dijadikan contoh adalah Arduino Uno.
Tanpa melakukan konfigurasi apapun, begitu sebuah papan Arduino dikeluarkan dari kotak pembungkusnya ia dapat langsung disambungkan ke sebuah komputer melalui kabel USB. Selain berfungsi sebagai penghubung untuk pertukaran data, kabel USB ini juga akan mengalirkan arus DC 5 Volt kepada papan Arduino sehingga praktis tidak diperlukan sumber daya dari luar. Saat mendapat suplai daya, lampu LED indikator daya pada papan Arduino akan menyala menandakan bahwa ia siap bekerja.
Arduino LED Indicator
Pada papan Arduino Uno terdapat sebuah LED kecil yang terhubung ke pin digital no 13. LED ini dapat digunakan sebagai output saat seorang pengguna membuat sebuah program dan ia membutuhkan sebuah penanda dari jalannya program tersebut. Ini adalah cara yang praktis saat pengguna melakukan uji coba. Umumnya microcontroller pada papan Arduino telah memuat sebuah program kecil yang akan menyalakan LED tersebut berkedip-kedip dalam jeda satu detik. Jadi sangat mudah untuk menguji apakah sebuah papanArduino baru dalam kondisi baik atau tidak, cukup sambungkan papan itu dengan sebuah komputer dan perhatikan apakah LED indikator daya menyala konstan dan LED dengan pin-13 itu menyala berkedip-kedip.

CATATANSetelah mengeluarkan papan Arduino dari kotaknya, harap berhati-hati dengan listrik statis dan hubungan singkat karena bagian bawah papan Arduino tidak ditutup dengan lapisan pelindung. Dianjurkan untuk tidak menyentuh bagian bawah atau kaki-kaki komponennya dengan tangan untuk menghindari bahaya listrik statis dari tubuh Anda. Hati-hati juga meletakkan papan Arduino pada meja. Pastikan tidak ada logam atau cairan yang bisa mengakibatkan hubungan pendek yangbisa merusak komponen. Usahakan meletakkan papan Arduino pada alas berbahan plastik yang aman.

Software Arduino

Sehubungan dengan pembahasan untuk saat ini software Arduino yang akan digunakan adalah driver dan IDE, walaupun masih ada beberapa software lain yang sangat berguna selama pengembangan Arduino.
IDE Arduino adalah software yang sangat canggih ditulis dengan menggunakan Java. IDE Arduino terdiri dari:
  • Editor program, sebuah window yang memungkinkan pengguna menulis dan mengedit program dalam bahasa Processing (red: yang benar adalah dalam bahasa C/C++ yang disederhanakan, yang merupakan turunan dari proyek open source Wiring. Salah satu miskonsepsi paling umum tentang bahasa yang digunakan di Arduino adalah bahwa bahasa ini merupakan “bahasa” Processing. Baca perbandingannya di sini: http://arduino.cc/en/Reference/Comparison?from=Main.ComparisonProcessing)
  • Compiler, sebuah modul yang mengubah kode program (bahasa Processing C/C++) menjadi kode biner. Bagaimanapun sebuah microcontroller tidak akan bisa memahami bahasa Processing (red: tingkat tinggi seperti C/C++). Yang bisa dipahami oleh microcontroller adalah kode biner. Itulah sebabnya compiler diperlukan dalam hal ini.
  • Uploader, sebuah modul yang memuat kode biner dari komputer ke dalam memory di dalam papan Arduino.
CATATAN: Sebuah kode program Arduino umumnya disebut dengan istilah sketch (red: dalam bahasa Indonesia: sketsa). Kata “sketch” digunakan secara bergantian dengan “kode program” dimana keduanya memiliki arti yang sama.

Berikut ini adalah contoh tampilan IDE Arduino dengan sebuah sketch yang sedang diedit:
Arduino 1.0.5 IDE
Pembahasan berikutnya akan dijelaskan langkah-langkah untuk menginstal IDE Arduino:
  • Mendapatkan software Arduino
  • Menginstall driver Arduino
  • Menguji koneksi komputer dan papan Arduino

MENDAPATKAN & MENGINSTALL SOFTWARE ARDUINO
File instalasi software Arduino dapat diperoleh pada alamat situs web di bawah ini yang tersedia untuk sistem operasi Windows, Mac dan Linux: http://arduino.cc/en/Main/Software
File instalasi ini berbentuk kompresi. Untuk menjalankan software-software Arduino maka file tersebut harus diekstrak ke dalam sebuah direktori. Beberapa software Arduino ditulis menggunakan bahasa pemrograman Java termasuk IDE-nya, sehingga ia tidak perlu diinstal seperti software pada umumnya tapi dapat langsung dijalankan selama komputer Anda telah terinstall Java runtime. IDE ini bisa langsung digunakan untuk membuat program namun untuk saat ini belum bisa dipakai untuk berkomunikasi dengan papan Arduino karena driver harus diinstal terlebih dahulu.

MENGINSTALL DRIVER USB PADA WINDOWS XP
Pada topik ini akan dijelaskan langkah-langkah instalasi driver USB pada Windows XP (red: Pada Windows versi baru, sistem operasi akan mengenali, mengunduh dan menginstall driver secara otomatis, cukup sambungkan Arduino dengan komputer lewat kabel USB)
  1. Sambungkan papan Arduino dengan sebuah komputer melalui kabel USB.
  2. Dengan segera komputer akan mendeteksi kehadiran sebuah perangkat baru yang belum ia kenal dan Windows akan menampilkan sebuah window wizard seperti berikut ini.FoundNewHardwareWizard_NotThisTimeJawab dengan “No, not this time” dan tekan Next.
  3. Wizard akan mencari software driver untuk perangkattersebut. Silakan menjawab dengan “Install from a list or specific location (Advance)”. Lanjutkan dengan Next.
  4. Tentukan lokasi dimana software Arduino ditempatkan pada komputer. Silakan sesuaikan lokasinya sesuai dengan hasil ekstrak software Arduino pada komputer Anda. Di dalam lokasi tersebut terdapat sebuah direktori bernama drivers, arahkan wizard untuk mencari driver di dalam direktori tersebut. Klik Next untuk melanjutkan. Jika muncul sebuah window peringatan bahwa “Arduino UNO has not passed Windows Logo testing… dst.“, jawab dengan “Continue Anyway”.
  5. Jika driver Arduino selesai diinstal pada komputer maka pada akhir proses akan tampil sebuah pesan berhasil seperti berikut ini. Tekan Finish untuk menutup wizard. Driver telah berhasil diinstall.
    Arduino Installed in Windows XP
MENGUJI KONEKSI KOMPUTER DAN PAPAN ARDUINO
Sekalipun sebuah papan Arduino dapat bekerja denganmendapat asupan daya dari sebuah komputer, namun hal itu tidak berarti ia dapat berkomunikasi dengan komputer tersebut. Untuk memastikan Arduino telah terpasang dengan benar dandapat berkomuniasi dengan interaktif maka ia perlu diuji.
  1. Jalankan IDE Arduino dengan menjalankan sebuah file bernama arduino.exe pada lokasi software Arduino.
    Executing Arduino.exe
    Walaupun tampak seperti program Windows pada umumnya, namun sebetulnya program ini adalah sebuah program Java. Jika Anda menemukan sebuah pesan kesalahan kemungkinan besar pada komputer belum terinstal Java Runtime Environment (JRE)atau Java Development Kit (JDK). Untuk mendapatkan salah satu software tersebut, silakan men-download-nya dari situs web http://www.oracle.com.
  2. Jalankan menu Tools →  Board, kemudian pilih tipe papan yang sesuai
    ArduinoSelectBoard
  3. Jalankan menu File →  Examples →  0 1. Basic →  Blink. Ini adalah program sederhana yang fungsinya adalah membuat lampu LED menyala berkedip-kedip seperti yang telah dijelaskan sebelumnya.
    /* 
    Blink 
    Turns on an LED on for one second, then off for one second, 
    repeatedly. 
    This example code is in the public domain. 
    */ 
    void setup() { 
    // initialize the digital pin as an output. 
    // Pin 13 has an LED connected on most Arduino boards: 
    pinMode(13, OUTPUT); 
    } 
    void loop() { 
    digitalWrite(13, HIGH); // set the LED on 
    delay(1000); // wait for a second
    digitalWrite(13, LOW); // set the LED off 
    delay(1000); // wait for a second
    }
    Tidak perlu kuatir jika Anda kurang memahami cara kerja sketch di atas karena kita akan belajar bahasa pemrograman ini pada pembahasan tersebut nanti. Untuk saat ini cukup perhatikan baris-baris yang ditandai. Bagian itu adalah perintah untuk menunda aliran program selama satu detik (1000 milidetik). Jadi bila lampu LED diperintahkan menyala pada baris sebelumnya, maka dengan perintah delay() lampu itu akan bertahan menyala selama satu detik sebelum ia diperintahkan untuk padam pada baris berikutnya.
    Silakan mengubah kedua angka 1000 itu menjadi 200 agar interval nyala-padam menjadi lebih pendek.
  4. Pada toolbar klik tombol Upload untuk memuat sketch tersebut ke dalam papan Arduino.Arduino Upload ButtonJika sketch berhasil dimuat akan ditandai dengan pesan berhasil seperti di bawah ini. ArduinoSuccessUploading
    Namun jika sketch gagal dimuat (seperti pada kebanyakan kasus umumnya) maka akan muncul pesan kesalahan seperti berikut: avrdude: stk500_getsync(): not in sync: resp=0x30
    Solusinya cukup mudah, yaitu cukup mengganti pilihan serial port melalui menu Tools →  Serial Port. Jika Anda tidak yakin pada port nomor berapa papan Arduino itu terhubung, coba pilih sebuah nomor port lalu jalankan upload seperti langkah sebelumnya. Jika pesan kesalahan masih muncul, ganti nomor port-nya dan lakukan berulang-ulang sampai upload berhasil.
    Saat sketch yang sudah dimodifikasi tersebut berhasil dimuat ke dalam papan Arduino maka tampak lampu LED menyala dan padam dengan frekuensi yang lebih cepat. Silakan lakukan eksperimen sendiri misalnya menambah delay dan lihat apa yang terjadi.

Artikel ini menutup pembahasan tentang pengenalan Arduino. Walaupun cukup pendek namun saya berharap artikel ini memberi pengertian yang jelas kepada para pembaca, membuka wawasan dan visi mengenai potensi besar dari platform ini serta membangkitkan rasa antusias untuk memulai perjalanan panjang dan berpetualang bersama Arduino.

Audio Tone dengan Arduino

Dalam artikel ini kita akan bermain dengan suara bersama Arduino mulai dari menggunakan fungsi tone() untuk membangkitkan nada hingga proyek kompleks yang sanggup membuat Arduino memainkan musik polyphonic dan mengucapkan kalimat yang diberikan dari masukan berupa teks. Untuk itu artikel ini akan dibagi menjadi beberapa bagian bersambung.
Mari kita mulai dari yang paling sederhana… membangkitkan nada dengan frekuensi tertentu.
Sebelum memulai dengan kode program, mari kita buat perangkat kerasnya terlebih dahulu. Yang perlu kita persiapkan:
  • Arduino Uno
  • Speaker 8 ohm
  • Resistor 100 ohm
  • Papan Rancang  Purnarupa (Prototype Design Board), atau dikenal dengan istilah Breadboard

April 25, 2012

Tutorial Termometer Arduino + LCD

Dalam proyek ini kita akan membuat sensor suhu atau termometer berbasis Arduino dengan tampilan LCD

Overview hasil proyek terangkum dalam video berikut. Kalau kamu penasaran dan ingin membuatnya sendiri, lanjut scroll ke bawah. Tersedia tutorial yang lengkap dan jelas.

Alat dan Bahan

Arduino Uno R3 - 1 buah

Potensiometer - 1 buah
Sensor suhu LM35 - 1 buah
LCD ukuran 2x16 - 1 buah
Breadboard - 1 buah
Header pin - 16 buah
(meskipun biasanya sekali beli kamu akan mendapat sebanyak gambar di atas)
Solder - 1 buah
Tentu saja dimana ada solder disana ada timah. Jangan lupa sediakan.
Kabel USB - 1 buah
Untuk menyambungkan Arduino ke komputer. Pastikan juga di komputer telah terinstal Arduino IDE.
Kalau belum punya unduh disini
Kabel jumper atau kabel tembaga biasa secukupnya.

Cara Kerja

Sekarang kita mulai bekerja. Ikuti tahapan-tahapan berikut.
1. Kita harus meletakkan komponen pada breadboard. Namun LCD tidak bisa diletakkan begitu saja agar bisa tersambung dengan rangkaian breadboard. Solusinya adalah dengan memasang pin header dan pada LCD dan menyolder.
Jadi, pasang pin header pada seluruh lubang yang terdapat pada lubang di PCB nya LCD. Setelah itu solder semua pin header.



2. Pasangkan semua komponen dan kabel ke rangkaian breadboard. Gunakan gambar berikut untuk acuan.
Tips! Gunakan kabel yang berlainan warna untuk hubungan yang berdekatan. Itu akan mempermudah kamu mengenali sambungan dan lebih cepat menangani kesalahan yang mungkin terjadi.
Jangan khawatir bila nantinya salah pada saat wiring. Perhatikan rangkaian baik-baik dan pastikan semuanya tersambung.
Skema rangkaian proyek. Buka gambar ini di tab baru untuk memastikan pin yang harus disambungkan (pakai zoom in)
3. Jika rangkaian sudah benar dan Arduino terhubung dengan sumber daya, LCD akan menyala. Atur kontras pada LCD dengan memutar potensiometer.
4. Hubungkan Arduino ke komputer. Masukkan kode program untuk mendeteksi suhu dan menampilkan ke LCD (source code ada di bagian bawah).  Setelah itu lakukan verify dan upload ke Arduino.

Source Code


#include // library untuk LCD
//konstanta jumlah kolom dan baris LCD const int numRows = 2; const int numCols = 16;
// Inisialisasi library dengan pin LiquidCrystal lcd(12, 11, 5, 4, 3, 2); const int inPin = 0;
void setup() { lcd.begin(numCols, numRows); lcd.print("Temp. Celcius"); // Print pada LCD } void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); int value = analogRead(inPin); float millivolts = (value / 1024.0) * 5000; float celsius = millivolts / 10; // sensor output is 10mV per degree Celsius float calibrated = celsius + 0.1718633; // Rumus kalibrasi (menggunakan regresi linear) lcd.print(calibrated); //lcd.print(celsius); //lcd.print(" degrees Celsius, "); delay(1000); // delay satu detik }
 
5. Sekarang amati display pada LCD. Jika benar akan muncul tulisan sebagai berikut.
Perhatikan tulisan pada LCD
"Temp. Celcius" dan 28,49. 
6. Selamat! Kamu telah berhasil membuat termometer digital LCD berbasis Arduino. 

Konfigurasi Pin LCD 16x2

LCD merupakan alat untuk menampilkan karakter data dari sebuah alat masukan seperti Mikrokontroler. LCD untuk peralatan mikrontroler ada beberapa tipe, yaitu 8x2, 16x2, 20x2, 20x4, 40×4.
Yang akan di bahas kali ini adalah yang tipe 16x2, artinya LCD terdiri  dari 2 baris dan 16 karakter.

Berikut keterangan Pin-pin LCDnya

No.Pin
Nama
Keterangan
1
GND
Ground
2
VCC
+5V
3
VEE
Contras
4
RS
Register Select
5
RW
Read/write
6
E
Enable
7-14
D0-D7
Data bit 0-7
15
A
Anoda (back light)
16
K
Katoda (back light)

Untuk gambar skematiknya bisa lihat ini
Skematik LCD 16x2

Sensor Suhu LM35

Sensor Suhu LM35 adalah salah satu jenis sensor yang merubah besaran suhu ke besaran listrik dalam bentuk tegangan. LM35 memiliki 3 buah pin kaki, pin1 untuk INPUT tegangan positif (+), pin2 OUTPUT, pin3 INPUT tegangan negatif/GND (-).

Sensor Suhu LM35
Dapat beroperasi pada tegangan 4 volt sampai 30 volt. Setiap suhu 1 derajat Celcius akan menunjukan tegangan 10 mV.
Persamaan:
Vout = 10 mV/1ºC
Artinya, jika terbaca tegangan Vout = 500 mV, maka temperaturnya = 500mV/10mV= 50ºC.

Berikut ini adalah karakteristik dari sensor LM35:

  1. Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius.
  2. Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC.
  3. Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.
  4. Bekerja pada tegangan 4 sampai 30 volt.
  5. Memiliki arus rendah yaitu kurang dari 60 µA.
  6. Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara diam.
  7. Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.
  8. Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.
Gambar rangkaian sensor LM35
Gambar rangkaian sensor LM35

Thermometer Digital dengan Arduino

Thermometer adalah sebuah alat yang digunakan untuk mengukur suhu. Pernah terbayang gak membuat thermometer digital sendiri? Dengan perkembangan teknologi yang kian canggih, semua itu tidak ada yang tidak mungkin.
Apa lagi dengan maraknya komunitas arduino, kita semakin mudah dalam bergelut di dunia elektronika khususnya mikrokontroler arduino. Ya, arduino adalah terobosan baru dari mikrokontroler sebelumnya.
Project kali ini adalah membuat sendiri thermometer digital dengan arduino. Yang harus di pelajari di tutorial ini adalah Sensor Suhu LM35 dan Konfigurasi Pin LCD 16x2. Kamu harus mempunyai board arduino dan LCD 16x2.

Kamu bisa merangkainya di breadboard, seperti gambar ini:

Skematik Thermometer Digital dengan Arduino

Untuk programnya ini:

#include //Librari LCD

LiquidCrystal lcd(2,3,4,5,6,7); //Konfigurasi pin arduino ke LCD
int adc0, temp; //adc0 adalah pin analog0
void setup(){
  lcd.begin(16,2); //Inisialisasi ukuran LCD yang diguanakan adalah type 16x2
  lcd.print("Suhu Ruangan");
  lcd.setCursor(0,1); //Mengatur kolom 1 baris 2
  lcd.print("Temp:"); //Menampilkan nilai dari temperatur
}
void loop (){
  adc0 = analogRead(0);
  temp = (adc0*5)/10; //Di konversi ke celcius
  lcd.setCursor(5, 1);
  lcd.print(temp);
  lcd.print(" Celcius");
  delay(500); //Merefresh pembacaan dari sensor
}

Cara kerja:

Pada LCD akan menampilkan tulisan "Suhu Ruangan" dan baris ke-2 menampilkan "Temp:30 Celcius" sesuai suhu yang diukur.
Program membaca analog input yang terhubung pin A0 karena sensor suhu terhubung pada pin analog A0.
adc0=analogRead(0);

Karena adc0 masih berupa data digital maka perlu di ubah ke tegangan yaitu mengkalikannya dengan 5V, karena tegangan yang digunakan untuk sensor LM35 sebesar 5V.
Temp=(adc0*5)/10;
Selanjutnya di tampilkan di lcd beris ke-2 kolom ke-6. Dan diberi delay 500 miliSecond untuk merefresh pembacaan dari sensor.

Thermometer Dual Sensor dengan Arduino UNO


Dahulu, untuk memrogram sebuah PIC (programmable integrated circuit) dibutuhkan pengetahuan elektronika dan bahasa pemrograman yang cukup tinggi. Namun, hal tersebut sedikit berubah dengan kehadiran Arduino. Arduino sendiri merupakan salah satu solusi untuk memrogram mikro-kontroler dengan menggunakan bahasa pemrograman C.
 
Dengan menggunakan bahasa pemrograman yang lebih simpel, Anda yang memiliki ketertarikan terhadap pemrograman mikro-kontroler dapat memelajarinya dengan cepat. Satu hal yang menjadi nilai tambah adalah banyaknya informasi, baik mengenai produk maupun contoh-contoh proyek yang menggunakan Arduino, bertebaran di Internet.
 
Dalam kesempatan kali ini, CHIP mengajak pembaca untuk membuat sendiri sebuah thermometer yang memiliki dua sensor suhu. Pembuatan thermometer ini relatif mudah jika Anda memiliki bahan-bahan yang diperlukan, serta sedikit pengetahuan untuk menyolder. Untuk urusan program yang harus digunakan, CHIP juga telah menyiapkannya, sehingga Anda cukup menyalinnya saja.
 
Thermometer ini nantinya dapat diaplikasikan sebagai salah satu pemanis casing PC, serta sebagai indikator suhu di dua komponen pilihan Anda. Dalam contoh yang CHIP hadirkan untuk Anda, thermometer tidak diperuntukkan untuk penghias casing PC karena desain yang cukup memakan tempat. 
 
Contoh di atas bertujuan agar Anda mengerti cara kerja dari rangkaian tersebut. Oleh karena itu, CHIP sangat menganjurkan Anda untuk memodifikasi desain perangkat ini agar sesuai de­ngan kebutuhan Anda.
 
Bahan-bahan yang dibutuhkan
Pembuatan thermometer dua sensor ini membutuhkan bahan-bahan, seperti Arduino Uno (http://arduino.cc/en/Main/Software), dua buah LM35 untuk mengukur suhu, PCB matriks, resistor 220 Ohm (x1), trimpot 10K Ohm (x1), kabel secukupnya, sebuah LCD 1602 (16 karakter x 2 baris dengan warna sesuai selera), serta sebuah male header (16 pin) sebanyakan dua buah.
Dalam pembuatan thermometer ini, Anda membutuhkan sebuah solder, timah solder, wire stripper, breadboard, dan kabel jumper-nya. Beberapa alat, seperti wire stripper, breadboard, dan kabel jumper-nya, bersifat tidak wajib. Namun, untuk memudahkan pengujian thermometer, Anda dapat mengikutsertakan beberapa alat tersebut dalam daftar.
 
Beginilah Caranya
bahan-bahan
  1. BAHAN-BAHAN 
Hal pertama yang harus Anda lakukan adalah menyiapkan bahan-bahan, seperti Arduino Uno, PCB matriks, LCD 1602, sebuah resistor 220 Ohm, dua buah LM35, sebuah trimpot 10K Ohm, dua buah male header 16 pin, dan kabel secukupnya. Panjang kabel yang dibutuhkan tergantung dengan desain serta jarak sensor dan Arduino Anda. CHIP merekomendasikan panjang kabel sensor tidak lebih ­dari 50 cm.
 
peralatan pendukung
 
  1. PERALATAN PENDUKUNG 
Beberapa peralatan pendukung, seperti solder, dan timah, merupakan peralatan yang wajib. Selain peralatan yang telah CHIP sebutkan sebelumnya, Anda juga dapat menambahkan sebuah mini grinder yang sangat membantu untuk melubangi front panel casing yang terbuat dari plastik agar dapat menempatkan LCD 1602.
 
 
  1. PERAKITAN 
Agar beberapa bahan tersebut dapat berfungsi sebagai thermometer, Anda perlu menghubungkan tiap-tiap komponen tersebut sesuai panduan di gambar di atas. Proses pertama yang dapat dilakukan adalah menyolder header 16pin ke LCD 1602 agar memudahkan Anda untuk menghubungkannya dengan kabel.
Selanjutnya, untuk mempermudah pemasangan kabel ke Arduino, Anda dapat menggunakan header 16 pin yang dibagi menjadi empat bagian. Penggunaan header dengan satuan 4 pin dimaksudkan agar koneksi menjadi lebih kencang dan tidak mudah kendur. Penggunaan PCB matriks untuk proyek ini tergantung dari kebutuhan Anda. PCB matriks tidak mutlak dibutuhkan jika Anda ingin menggunakan thermometer ini untuk mengukur suhu salah satu komponen PC. Namun, jika Anda ingin menggunakan thermometer untuk mengukur suhu benda-benda selain PC, maka penggunaan PCB wajib agar komponen tidak berceceran dan membuat ringkas komponen agar tidak berceceran.
Ketika seluruh komponen telah terpasang, Anda wajib untuk mengecek kembali sambungan-sambungan. Hal ini dimaksudkan agar tidak terjadi hal-hal yang tidak diinginkan yang dapat merusak komponen atau Arduino UNO yang Anda gunakan. Jika Anda sudah merasa yakin dengan komponen yang disambung, proses selanjutnya adalah mengisi program thermometer ke chip Atmega 328 yang digunakan di Arduino UNO.
 
#include
 
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
const int inPin = 0;
const int potPin = 1;
 
byte degree[8] = {
  0b01110,
  0b01010,
  0b01110,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000
};
void setup()
{
lcd.createChar(1, degree);
lcd.begin(16, 2);
}
void loop()
{
int value = analogRead(inPin);
int hasil = analogRead(potPin);
lcd.setCursor(0, 1);
float millivolts = (value / 1024.0) * 5000;
float millivolt = (hasil / 1024.0) * 5000;
float celsius = millivolts / 10;
float celcius = millivolt / 10;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Suhu 1   ");
lcd.print(celcius);
lcd.write(1);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Suhu 2   ");
lcd.print(celsius);
lcd.write(1);
lcd.print("C");
delay(500);
}
 
  1. PENGUJIAN 
Proses terakhir adalah menguji rangkaian beserta program yang telah dikerjakan sebelumnya. Dalam pengujian kali ini, CHIP menggunakan sumber daya USB untuk menghidupkan rangkaian. Sebuah obat nyamuk bakar dipilih sebagai objek untuk mengevaluasi kerja salah satu sensor LM35 yang digunakan. Apabila layar LCD menampilkan tulisan yang tidak jelas, maka Anda cukup mengatur trimpot hingga tulisan di layar terlihat jelas.

sumber : chip.co.id

Digital Thermometer dengan Arduino

Kali ini ini kita akan membuat alat pengukur temperatur atau suhu lingkungan. Kita buat secara mudah dengan Arduino ditambah sensor suhu.
LM35 adalah sensor suhu yang biasa dipakai, selain harganya murah juga mudah diperoleh di toko elektronik. Rangkaiannya juga simpel, seperti terlihat pada gambarberikut :
Sensor suhu LM35 mempunyai keluaran berupa tegangan dengan linearitas 10 mV/Celcius, artinya perubahan temperatur per 1 Celcius akan menyebabkan perubahan tegangan keluaran sebesar 10 mV. So tugas Arduino jadi gampang, cukup baca ADC trus hasilnya dikonversi menjadi tegangan (mV) trus tinggal dibagi 10 mV, ketemu deh nilai temperaturnya. Nih programnya :
#include
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int adc0,temp = 0; // variabel untuk menyimpan hasil A0
void setup()
{   
  lcd.begin(16, 2);
  lcd.print(“Temperature=   C”);
  lcd.setCursor(14,0);
  lcd.print(char(0xdf));
}
void loop()
{
  adc0 = analogRead(0);    // read the input pin
  temp=(adc0*5)/10;
  lcd.setCursor(12, 0);
  lcd.print(temp);  
  delay(1000);  
}

Jalannya program :
Pada LCD akan tampil tulisan “Temperature=29 C” dengan nilai temperatur tergantung suhu yang diukur. Cobalah berikan perubahan temperatur pada sensor, misalnya didekati dengan solder panas, amati temperatur yang terukur.
Postingan selanjutnya Insya Allah kita coba mengirim data temperaturnya ke komputer dan ditampilkan di monitor.

LED Berkedip Dengan Arduino

Membuat LED Berkedip Dengan Arduino - Bisa dibilang ini adalah percobaan paling sederhana dengan Arduino, percobaan ini biasanya dilakukan oleh orang yang baru pertama kali menggunakan Arduino, termasuk saya. Idenya sederhana, ada sebuah lampu LED yang akan kita buat berkedip dengan jeda waktu yang kita tentukan. Bahan-bahan yang dibutuhkan adalah sebagai berikut :
  • 1 buah papan Arduino (Saya menggunakan Uno R3)
  • 1 buah Breadboard atau Prototyping Board
  • 1 buah lampu LED warna apa saja
  • 1 buah resistor
  • 2 buah kabel jumper
Yang pertama anda harus lakukan adalah membuat rangkaiannya terlebih dahulu, kira-kira rangkaiannya adalah seperti dibawah ini
Klik untuk memperbesar gambar
Setelah rangkaian siap, langkah selanjutnya membuat baris kode yang nantinya akan kita upload ke Arduino. Untuk membuat baris kode, gunakan software IDE Arduino yang bisa anda unduh secara gratis di arduino.cc/en/Main/Software. Baris kodenya :
 
Klik Copy Code untuk menyalin kode dibawah ini ke clipboard anda.

  1. /* 
  2.  
  3.   Project Arduino Sederhana : Mengedipkan (blinking) lampu LED 
  4.    
  5.  */  
  6.   
  7. int led = 13; // Menunjukkan bahwa lampu LED terhubung dengan pin 13  
  8.   
  9. void setup() {                  
  10.     
  11.   pinMode(led, OUTPUT); // Mengatur lampu LED sebagai output  
  12. }  
  13.   
  14. void loop() { // Buat looping, sehingga lampu akan berkedip terus menerus  
  15.   digitalWrite(led, HIGH); // Perintah untuk menghidupkan LED dengan memberikan tegangan listrik  
  16.   delay(250); // Jeda waktu untuk lanjut ke perintah selanjutnya (dalam satuan milisecond)  
  17.   digitalWrite(led, LOW); // Perintah untuk menghidupkan LED dengan mematikan tegangan listrik  
  18.   delay(250);  // Jeda waktu untuk lanjut ke perintah selanjutnya (dalam satuan milisecond)  
  19. }  

 
Salin baris kode tersebut ke IDE Arduino anda, lalu klik tombol Upload, tunggu sampai proses upload selesai, jika rangkaian yang anda buat benar, maka LED akan berkedip dengan jeda 250 milisecond atau seperempat detik.

Termometer Digital Dengan Arduino

Membuat Termometer Digital Dengan Arduino - Setelah sebelumnya berkutat dengan LED dan PIR Sensor, kali ini saya akan melakukan percobaan Arduino dengan sensor temperatur. Sensor temperatur yang saya gunakan adalah DS18B20 waterproof, sehingga bisa juga digunakan untuk mengukur temperatur didalam air. Percobaan yang akan saya lakukan kali ini sederhana, yaitu mengukur temperatur atau suhu  ruangan dengan sensor DS18B20 dan menampilkan hasilnya di serial monitor pada aplikasi IDE Arduino. Berikut ini adalah bahan-bahan yang saya gunakan :
  • 1 buah Arduino (Saya menggunakan Uno R3),
  • 1 buah Breadboard,
  • 1 buah sensor suhu DS18B20 (Saya pakai yang waterproof)
  • 1 buah resistor 4,7 K ohm
  • Beberapa kabel jumper
Setelah menyiapkan bahan-bahan diatas, saya susun menjadi rangkaian seperti dibawah ini :
Klik gambar untuk memperbesar
Setelah rangkaian siap, langkah selanjutnya adalah mengunggah program ke Arduino, tentunya menggunakan aplikasi IDE Arduino. Programnya sendiri sudah tersedia, bisa dibuka di menu File > Examples > OneWire > DS18x20_Temperature, lalu unggah program ke Arduino dengan mengklik icon Upload.
Setelah program diunggah ke Arduino, buka serial monitor di aplikasi IDE Arduino dengan menekan kombinasi tombol Ctrl + Shift + M, maka akan tampil suhu ruangan dalam satuan derajat celcius dan fahrenheit. Contoh hasilnya seperti pada video singkat yang saya buat dibawah ini :


Percobaan ini bisa dikembangkan lebih lanjut, contohnya dengan menambahkan sebuah LCD Display untuk menampilkan suhu. Hal tersebut akan saya lakukan pada percobaan selanjutnya, dan pastinya dokumentasinya akan saya tulis di kolom Arduino dan Mikrokontroller.

Mengatur Kecepatan Motor Stepper dengan Menggunakan Potensio

Mengatur kecepatan motor stepper dengan potensio meter (VR), yaitu potensio mengatur besar tegangan (0-5 volt) yang jadi inputan port ADC Arduino. Pada saat potensio diputar ke kanan maka tegangan keluaran potensio meningkat mendekati 5 volt dan bila diputar ke kiri tegangan keluaran potensio semakin kecil mendekati 0 volt. Sehingga kecepatan putar motor stepper berbanding lurus dengan tegangan input analog dari potensio. Motor stepper merupakan motor dengan sinyal DC yang diatur arah putaran dan kecepatannya dengan pengaturan sinyal yang diberikan. Berikut gambar skematik diagram motor stepper unipolar 4 phase dengan 8 dan 6 kabel output.



Komponen yang diperlukan :
  1. Lampu led merah 4x                                      
  2. Resistor 1KΩ 4x                                           
  3. Dioda in4001 (1A)                                       
  4. Potensio/trimpot (VR) 10K 1     
  5. IC ULN 2803                                               
  6. Breadboard                           
  7. Kabel Jumper                      
  8. Motor Stepper Unipolar 4 phase
  9. Power Supply 5V 1A
  10. Minimum sistem board Arduino

Koneksi Rangkaian




Penulisan Program
//Kendali Kecepatan Motor Stepper dengan Potensio
int tunda = 0;                                          //deklarasi variabel tunda
int sensorValue = 0;                                //deklarasi variabel sensor value
int outputValue = 0;

const int phase1 = 2;                               //deklarasi pin phase1 pada kaki port D2
const int phase2 = 4;
const int phase3 = 3;
const int phase4 = 5;
const int analogIn = 18;                          //deklarasi pin analogIn pada pin 18 / ADC 4

void setup()
{
  pinMode (phase1, OUTPUT);              //phase1 sebagai output
  pinMode (phase2, OUTPUT);
  pinMode (phase3, OUTPUT);
  pinMode (phase4, OUTPUT);
  pinMode (analogIn, INPUT);               //analogIn sebagai input analog
  Serial.begin (9600);                              //inisialisasi komunikasi serial pada 9600 bps
 }

void loop()                                              //loping / pengulangan terus menerus
{
  siklusADC();                                        //deklarasi void siklus ADC
  powerStepper();                                    //deklarasi void powerStepper
}

void siklusADC()                                   //kode program void siklusADC
{
  sensorValue = analogRead (analogIn);     //membaca sinyal analog pada pin analogIn
  outputValue = map (sensorValue, 0, 1023, 0, 255);    //maping dari nilai 1023 jadi 255
  Serial.print ("outputValue= ");             //mencetak pada serial monitor
  Serial.println (outputValue, DEC);      //menulis nilai dalam desimal

  if (outputValue < 20)                           //membuat tingkatan dengan metode if
  {tunda = 500;}                                     //memberikan nilai pada variabel tunda
  else
    if (outputValue < 30)
      {tunda = 300;}
      else
       if (outputValue < 70)
        {tunda = 200;}
        else
        if (outputValue < 100)
        {tunda = 100;}
        else
        if (outputValue < 140)
        {tunda = 50;}
        else
        if (outputValue < 170)
        {tunda = 20;}
        else
        if (outputValue < 200)
        {tunda = 10;}
        else
        if (outputValue < 240)
        {tunda = 5;}
        else
        {tunda = 2;}
   delayMicroseconds (tunda);                //jeda waktu delay sama dengan nilai tunda
}

void powerStepper()                               //susunan program void powerStepper
{
  digitalWrite (phase1, HIGH);              //tahap sinyal pertama phase1 diberi sinyal high
  digitalWrite (phase2, LOW);                //tahap sinyal pertama phase2 diberi sinyal low
  digitalWrite (phase3, LOW);                // tahap sinyal pertama phase3 diberi sinyal low
  digitalWrite (phase4, LOW);                // tahap sinyal pertama phase4 diberi sinyal low
  delay (tunda);                                       //jeda waktu delay sama dengan nilai tunda
  digitalWrite (phase1, LOW);                //tahap sinyal kedua
  digitalWrite (phase2, LOW);
  digitalWrite (phase3, LOW);
  digitalWrite (phase4, HIGH);
  delay (tunda);
  digitalWrite (phase1, LOW);                // tahap sinyal ketiga
  digitalWrite (phase2, LOW);
  digitalWrite (phase3, HIGH);
  digitalWrite (phase4, LOW);
  delay (tunda);
  digitalWrite (phase1, LOW);                // tahap sinyal ke empat
  digitalWrite (phase2, HIGH);
  digitalWrite (phase3, LOW);
  digitalWrite (phase4, LOW);
  delay (tunda);
}