Mengukur Jarak + Suhu dengan Sensor Ultrasonik + LM35 dan Arduino

download Mengukur Jarak + Suhu dengan Sensor Ultrasonik + LM35 dan Arduino

of 12

description

arduino

Transcript of Mengukur Jarak + Suhu dengan Sensor Ultrasonik + LM35 dan Arduino

Pendahuluan

Arduino adalah sebuah kit elektronik open source yang dirancang khusus untuk memudahkan setiap orang dalam belajar membuat robot atau mengembangkan perangkat elektronik yang dapat berinteraksi dengan bermacam-macam sensor dan pengendali.

Saat ini Arduino sangat populer di seluruh dunia. Banyak pemula yang belajar mengenal robotika dan elektronika lewat Arduino karena mudah dipelajari. Tapi tidak hanya pemula, para hobbyist atau profesional pun ikut senang mengembangkan aplikasi elektronik menggunakan Arduino. Bahasa yang dipakai dalam Arduino bukan assembler yang relatif sulit, tetapi bahasa Cyang disederhanakan dengan bantuan library-library Arduino.

/* Contoh program Arduino */int ledPin = 13; // LED dipasang pada pin 13

void setup() // dijalankan pada saat mulai{pinMode(ledPin, OUTPUT); // set pin sebagai output}

void loop() // dijalankan terus menerus{digitalWrite(ledPin, HIGH); // nyalakan LEDdelay(1000); // tunggu satu detikdigitalWrite(ledPin, LOW); // matikan LEDdelay(1000); // tunggu satu detik}

Anda dapat melihat lebih jauh tentang Arduino di websitehttp://www.arduino.cc/, di sana tersedia software Arduino yang dapat di download gratis baik untuk platform Windows, Mac, maupun Linux. Juga tersedia panduan, contoh-contoh program dan library-library yang memudahkan kita berinteraksi dengan bermacam-macam komponen elektronik, hardware dan software.

Berekperimen dan berkreasi dengan Arduino memang mengasyikan. Jangan lupa mengunjungi websitehttp://www.freeduino.org/, di sini dimuat link-link contoh-contoh source code dan skema elektronik untuk dikoneksikan dengan Arduino.

Spesifikasi:

Arduino Duemilanove dengan ATMega 328

Microcontroller ATmega328

Operating Voltage 5V

Input Voltage (recommended) 7-12V

Input Voltage (limits) 6-20V

Digital I/O Pins 14 (of which 6 provide PWM output)

Analog Input Pins 6

DC Current per I/O Pin 40 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 32 KB of which 2 KB used by bootloader

SRAM 2 KB

EEPROM 1 KB

Clock Speed 16 MHz

Arduino board ialah modul yang menggunakan mikrokontroler AVR dan menggunakan seri yang lebih canggih, sehingga dapat digunakan untuk membangun sistem elektronika berukuran minimalis namun handal dan cepat. Berbagai modul dan sensor terkini dapat dipasang pada board ini dilengkapi dengan berbagai kode demo yang memuaskan.

Arduino terdiri dari beberapa board, yang dapat digunakan sesuai kebutuhan dan menggunakan software open source yang dapat dijalankan pada Windows, Mac dan Linux. Beberapa board yang terkenal ditampilkan pada gambar di bawah :

Gambar 1. Arduino Main Board berbasis ATmega328 dengan bootloader

Gambar 2. Arduino Mega 2560 dengan 8 ch ADC dan fitur PWM

Fitur Arduino Mega 2560:ATmega2560 microcontroller

Input voltage 7-12V

54 Digital I/O Pins (14 PWM outputs)

16 Analog Inputs

256k Flash Memory

16Mhz Clock Speed

Mikrokontroler Arduino ini menggunakan Arduino programming language berbasiskanWiringdan Arduino development environment berbasiskanProcessing. Arduino menggunakan koneksi USB menggunakan chip FTDI untuk melakukan pemrograman, dan biasanya pada chip Arduino sudah dimasukkanbootloader, sehingga dapat dilakukan pemrograman langsung ke dalam chip menggunakan software Arduino. Berikut ini contoh skema pada Arduino Pro 5V/16MHz.

Gambar 3. Skema Rangkaian Arduino Pro 5V/16MHz.

Untuk mencoba Arduino board, berikut langkah-langkahnya :

Anda dianggap sudah memiliki board Arduino Mega, Mega 2560, Uno dan Nano atau Arduino lainnya yang sesuai.

Unduhlah software Arduino di situs penulis dan lakukan proses instalasi, setelah itu hubungkan kabel USB dengan modul Arduino.

Buka contoh kodeBlink Examples

Blink.pde:

/*

Language: Arduino/Wiring

Kelap kelip pada p 13 setiap detik

Pin 13: + leg of an LED (- leg goes to ground)

*/

int LEDPin = 13;

void setup() {

pinMode(LEDPin, OUTPUT); // set pin 13 menjadi Output

}

void loop() {

digitalWrite(LEDPin, HIGH); // hidupkan LED pada pin 13

delay(500); // delay detik

digitalWrite(LEDPin, LOW); // matikan LED

delay(500); // delay detik

}

Pilih modul Anda, lalu klik Upload to I/O Board, dalam beberapa saat maka LED di p13 akan berkedip, berarti alat Anda sudah siapdigunakan.

Pengukuran Jarak menggunakan PING

Sensor jarak ultrasonik PING dari Parallax merupakan sensor yang paling banyak digunakan pada berbagai proyek riset dan robotika, kelebihannya antara lain selain dapat mengukur jarak 3cm 3m, juga hanya menggunakan 1 jalur data. Pastikan Anda tidak salah pasang rangkaian PING. Contoh rangkaian berikut merupakan aplikasi pengukuran jarak menggunakan Arduino:

Gambar 4. Rangkaian PING dengan ArduinoPING.pde: // Program Demo PING untuk mengukur Jarak const int pingPin = 7;

void setup() { // initialize serial communication: Serial.begin(9600); }

void loop() { // establish variables for duration of the ping, // and the distance result in inches and centimeters: long duration, inches, cm;

// The PING))) is triggered by a HIGH pulse of 2 or more microseconds. // Give a short LOW pulse beforehand to ensure a clean HIGH pulse: pinMode(pingPin, OUTPUT); digitalWrite(pingPin, LOW); delayMicroseconds(2); digitalWrite(pingPin, HIGH); delayMicroseconds(5); digitalWrite(pingPin, LOW);

// The same pin is used to read the signal from the PING))): a HIGH pinMode(pingPin, INPUT); duration = pulseIn(pingPin, HIGH);

// convert the time into a distance inches = microsecondsToInches(duration); cm = microsecondsToCentimeters(duration);

Serial.print(inches); Serial.print("in, "); Serial.print(cm); Serial.print("cm"); Serial.println(); delay(100); }

long microsecondsToInches(long microseconds) { // According to Parallax's datasheet for the PING))), there are // 73.746 microseconds per inch (i.e. sound travels at 1130 feet per // second). This gives the distance travelled by the ping, outbound // and return, so we divide by 2 to get the distance of the obstacle. return microseconds / 74 / 2; }

long microsecondsToCentimeters(long microseconds) { // The speed of sound is 340 m/s or 29 microseconds per centimeter. // The ping travels out and back, so to find the distance of the // object we take half of the distance travelled. return microseconds / 29 / 2; }

Ultrasonik sering digunakan untuk keperluan mengukur jarak sebuah benda atau untuk mendeteksi rintangan. Teknik mengukur menggunakan ultrasonik ini meniru cara yang digunakan kelelawar atau lumba-lumba yang secara alami menggunakan sonar (sound navigation and ranging) untuk keperluan mengukur jarak dan navigasi.

Dalam dunia elektronika, ultrasonik biasanya dikemas dalam kit sensor ultrasonik yang di dalamnya terdapat receiver dan transmitter ultrasonik. Transmitter akan mengirimkan suara, kemudian receiver akan menerima suara tersebut. Jarak sebuah benda dapat diketahui dengan menghitung selisih antara waktu kirim suara dan waktu terima.

Sensor ultrasonik yang cukup terkenal di kalangan DIY dan robotika adalah sensor ultrasonik Ping))) dari Parallax. Tetapi sayang harganya relatif mahal untuk pasaran Indonesia.

Beruntunglah sekarang ada produk sensor ultrasonik yang di jual di Indorobotika.com dengan harga yang relatif lebih murah, tetapi dengan kemampuan yang serupa dengan Parallax Ping))).

Aplikasi sensor ultrasonik misalnya: sensor garasi mobil agar mobil tidak membentur tembok, sensor pendeteksi halangan pada robot, pengukur ketinggian air untuk menentukan volume air, dsb.

// According to Parallax's datasheet for the PING))), there are // 73.746 microseconds per inch (i.e. sound travels at 1130 feet per // second). This gives the distance travelled by the ping, outbound // and return, so we divide by 2 to get the distance of the obstacle. return microseconds / 74 / 2; }

long microsecondsToCentimeters(long microseconds) { // The speed of sound is 340 m/s or 29 microseconds per centimeter. // The ping travels out and back, so to find the distance of the // object we take half of the distance travelled. return microseconds / 29 / 2; }

Pengukur jarak menggunakan ultrasonik. Cocok untuk aplikasi elektronik yang memerlukan deteksi jarak atau untuk sensor pada robot object avoider, dsb.

Spesifikasi:

Jangkauan deteksi: 3cm-4m

Sudut deteksi terbaik adalah 30 derajat

Tegangan kerja 5V DC

Dapat ditancapkan pada breadboard

Tersedia library Arduino siap pakai

Dokumen:

Demo program menggunakan Arduino

Sensor Suhu dengan Arduino dan LM35LM35 adalah sensor suhu dari National Semiconductor yang mempunyai akurasi tinggi. Outputnya berupa tegangan analog dan memiliki jangkauan pengukuran -55C hingga +150C dengan akurasi 0.5C. Tegangan output adalah 10mV/C. Output dapat langsung dihubungkan port mikrokontroler yang memiliki ADC atau dengan Arduino, karena Arduino memiliki port ADC (analog input) sebanyak 6 buah.

Analog input pada Arduino memiliki resolusi 10-bit, yang dapat memberikan keluaran 2^10 = 1024 nilai diskrit. Bila digunakan catu 5V, resolusi yang dihasilkan adalah 5000mV/1024 = 4.8mV. Karena LM35 memiliki resolusi output 10mV/C, maka resolusi termometer yang dibuat dengan Arduino adalah 10mV/4.8mV ~ 0.5C.

Mari kita membuat sensor suhu sederhana dengan Arduino dan LM35. Pertama-tama siapkan rangkaian seperti ini:

Sambungkan Arduino ke komputer menggunakan USB dan gunakan contoh program seperti di bawah ini:

// deklarasi variabelfloat tempC;int tempPin = 0;

void setup(){ Serial.begin(9600); // buka serial port, set baud rate 9600 bps}

void loop(){ tempC = analogRead(tempPin); // baca data dari sensor tempC = (5.0 * tempC * 100.0)/1024.0; // konversi analog ke suhu Serial.println((int)tempC,DEC); // kirim data via serial delay(1000); // tunggu sejenak}

Copy dan paste program di atas setelah itu lakukan upload. Setelah selesai upload, klik Serial Monitor.

Cara kerja: Program akan membaca data suhu dari LM35, kemudian mengkonversi nilai analog menjadi nilai suhu dalam besaran Celcius. Setelah itu mengirimkan ke komputer melalui serial port.

Pengembangan:

Buatlah sensor suhu ini tidak tergantung kepada serial komputer. Misalnya dengan menggunakan seven segment atau LCD sebagai display suhu nya. Kemudian beri tenaga baterai atau adaptor, maka jadilah sensor suhu ruangan. Silahkan cari ide yang lain nya.