Welcome

Welcome to My Blog

Saturday, 11 February 2017

SENSOR ULTRASONIK HC-SR04 DENGAN ARDUINO UNO




 
Sensor Ultrasonik HC-SR04 adalah sensor yang memancarkan ultrasonik untuk menentukan jarak suatu benda yang berada di jangkauannya. Jarak jangkauan dari sensor HC-SR04 adalah dari 2cm sampai 400cm.

Ultrasonik itu sendiri merupakan gelombang suara dengan frekuensi tinggi yaitu sekitar 20 kHz. Manusia tidak dapat mendengar suara ini, hanya hewan tertentu seperti lumba-lumba dan kelelawar yang dapat mendengarnya. Gelombang ultrasonik dapat merambat pada medium padat, cair dan gas.

Sensor ini memiliki 4 pin, yaitu Vcc, Trigger, Echo dan Ground. Seperti biasa Vcc disambungkan ke sumber tegangan 5V DC dan Ground ke ground kontroler. Pin trigger dan echo disambungkan ke salah satu pin IO kontroler yang kali ini saya menggunakan arduino uno. Pin trigger untuk mentrigger output sensor yang berupa gelombang ultrasonik dengan 8x40KHz, untuk mentriggernya adalah dengan memberikan tegangan positif pada pin trigger selama 10µs, dengan demikian sensor akan mengirimkan sinyal ultrasonik. Pin echo sebagai penerima sinyal pantulan dari gelombang yang memantul dari benda.


 
Lalu bagaimana cara mengetahui jarak suatu benda dengan sensor ini? langsung saja kita bahas.
Kita tau bahwa kecepatan suara adalah v = 340 m/s atau 0,034 cm/µs karena kita ingin jaraknya dalam bentuk satuan cm. Untuk menghitung jarak kita gunakan persamaan s = v * t. Karena v = 0,034 cm/µs. Maka s = 0,034 * t. Tidak hanya sampai disitu, karena waktu tempuh gelombang suara adalah dua kali yaitu saat pertama dikeluarkan dan setelah memantul dari benda kembali ke sensor maka persamaan tadi menjadi s = 0,034 * t/2.

Kecepatan suara
v = 340 m/s atau 0,034 cm/µs

Rumus jarak
s = v * t
s = 0,034 * t

Rumus jarak pada sensor ultrasonik HC-SR04
s = 0,034 * t/2

Berikut merupakan gambar rangkaian sensor dengan arduino uno. Pin Vcc dihubungkan Vcc 5V dari arduino. Ground ke ground dari arduino. Trigger ke pin 9 dan echo ke pin 8.


 
Program Sensor Ultrasonic HC-SR04 dengan Arduino Uno :

int trigPin = 9;
int echoPin = 8;

long distance, duration;

void setup() {
  // put your setup code here, to run once:
  pinMode(trigPin, OUTPUT);//Setting pin trigger menjadi output
  pinMode(echoPin, INPUT);//Setting pin echo menjadi input
  Serial.begin(9600);//Memulai komunikasi serial
}

void loop() {
  // put your main code here, to run repeatedly:
  /*Kode untuk mentrigger sensor mengeluarkan gelombang ultrasonik*/
  digitalWrite(trigPin, LOW);//Set sinyal trigger menjadi low
  delayMicroseconds(5);
  digitalWrite(trigPin, HIGH);//Set sinyal trigger menjadi high
  delayMicroseconds(10);/*Delay 10 us
  digitalWrite(trigPin, LOW);//Set sinyal trigger low kembali

  /*Membaca hasil dari pin echo berupa waktu tempuh gelombang ultrasonik dalam microseconds*/
  duration = pulseIn(echoPin, HIGH);//Menghitung waktu saat pin echo high

  /*Memasukkan rumus untuk menghitung jarak dengan sensor ultrasonik*/
  distance = duration*0.034/2;

  /*Tampilkan hasil perhitungan jarak pada serial monitor arduino*/
  Serial.print("Jarak = ");
Serial.print(distance);
Serial.print(" cm");
}


Monday, 6 February 2017

SENSOR PIR (PASSIVE INFRARED) ARDUINO UNO






Sensor PIR berfungsi untuk mendeteksi pergerakan, biasanya untuk mendeteksi apakah terdapat manusia yang masuk atau keluar dari jangkauan sensor. Sensor PIR ini kecil, murah, low-power, mudah digunakan dan tahan lama.

PIR pada dasarnya terbuat dari sensor pyroelectric (yang dapat dilihat didalam kubah berwarna putih dengan kristal kotak ditengahnya) yang dapat mendeteksi inframerah.



Selain dari sensor pyroelectric, terdapat rangkaian pembantu seperti resistor dan kapasitor.



Untuk proyek sederhana dimana sensor PIR digunakan untuk mendeteksi apakah seseorang telah keluar atau masuk jangkauan, sensor PIR sangat bagus. PIR membutuhkan daya yang kecil, murah, jangkauannya luas, dan mudah digunakan. Perlu diingat sensor PIR tidak dapat mendeteksi berapa banyak orang yang berada di jangkauan atau seberapa dekat mereka dengan sensor PIR.

Cara Kerja Sensor PIR

Sensor PIR sendiri terdapat dua slot di dalamnya, setiap slot terbuat dari material yang sensitif terhadap inframerah. Lensa berbentuk kubah tidak banyak mengambil peran dalam cara kerja sensor ini dan dapat kita lihat kedua slot dapat “melihat” keluar melewati beberapa jarak (sensitifitas sensor). Ketika sensor diam, kedua slot mendeteksi inframerah dalam jumlah yang sama. Ketika tubuh hangat manusia atau makhluk hidup lewat, pertama-tama akan memotong satu bagian dari sensor PIR yang menyebabkan perbedaan positive differential antara kedua bagian. Ketika tubuh tersebut keluar dari jangkauan sensor, terjadi kebalikannya, sensor akan membuat perubahan negative differential. Perubahan pulsa inilah yang dideteksi sensor.




Menghubungkan Sensor PIR



Kebanyakan modul sensor PIR memiliki 3 pin koneksi di belakang sensor bagian atas atau bawah. Pinoutnya bisa saja berbeda setiap modul. Pada artikel kali ini, saya akan membahas sensor PIR HC-SR501. Pin pertama adalah ground, kemudian ada output, dan Vcc. Vcc biasanya dihubungkan dengan tegangan 3-5 VDC, tetapi setelah saya melakukan percobaan, lebih baik Vcc dihubungkan ke tegangan 5 VDC. Untuk menghubungkan pin-pinnya kamu membutuhkan 3 kabel female to male atau female to female.

Berikut adalah gambar pinout sensor PIR HC-SR501.



Uji Coba Sensor PIR dengan Arduino Uno dan Motor Servo



Uji coba ini bertujuan untuk mengatur putaran motor servo berdasarkan deteksi pada sensor PIR. Jika sensor PIR mendeteksi adanya manusia, maka servo akan berputar 180, dan jika sensor PIR sudah tidak mendeteksi adanya manusia, maka servo akan kembali ke posisi awal.

Program Arduino Uno :


#include <Servo.h>

Servo myServo;
int angle = 0;
int pirPin = 2;
int pirState = 0;
int val = 0;

void setup() {
  // put your setup code here, to run once:
  myServo.attach(9);
  pinMode(2, INPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  val = digitalRead(pirPin);
  if(val == HIGH){

      if (pirState == LOW) {
        // we have just turned on
        myServo.write(180);
        delay(10);
        pirState = HIGH;
      }

  }else{

      if (pirState == HIGH){
        // we have just turned of
        myServo.write(0);
        delay(10);
        pirState = LOW;
      }
  }
}



Pertama kita menambahkan header untuk menggerakkan motor servo dan membuat sebuah objek motor servo.

#include <Servo.h>
Servo myServo;

Setelah itu deklarasi variabel untuk sudut, pin yang dipakai sensor PIR, status sensor, status sensor referensi.

int angle = 0;
int pirPin = 2;
int pirState = 0;
int val = 0;

Tentukan pin yang akan dipakai motor servo dan kita atur pin sensor PIR sebagai input.

myServo.attach(9);
pinMode(2, INPUT);

Pada main loop, terdapat program untuk membaca nilai sensor PIR, kemudian hasilnya disimpan di variabel val.

val = digitalRead(pirPin);

Jika hasilnya HIGH, maka servo akan berputar 180.

if(val == HIGH){
      if (pirState == LOW) {
        // we have just turned on
        myServo.write(180);
        delay(10);
        pirState = HIGH;
      }
}

Jika hasilnya LOW, maka servo akan kembali ke posisi 0⁰.

else{
      if (pirState == HIGH){
        // we have just turned of
        myServo.write(0);
        delay(10);
        pirState = LOW;
      }
}



Berikut video percobaan sensor PIR dan motor servo menggunakan Arduino Uno.