Berita Terbaru

Baca Jarak Ultrasonic Bersamaan

Dalam dunia robotika tentunya sensor merupakan salah satu komponen terpenting dalam menentukan navigasi dari robot yang akan kita buat. Baik dari sensor alanog sampai digital mempunyai peran nya masing masing dalam membantu pergerakan robot kearah yang diinginkan. Semakin banyaknya sensor yang dipasang tentunya si robot akan bayak dapat mengambil data sekitar dan diharapkan mampu cerdas untuk mengolah data tersebut yang digunakan sebagai referensi navigasi bagi si robot. namun selain itu juga, sang perancang juga harus dituntut dapat lebih kreatif dan cerdas memanfaatkan beberapa sensor agar dapat berfungsi semaksimal mungkin agar robot dapat bekerja dengan baik.

Sensor ultrasonic adalah salah satu sensor yang paling banyak kita temukan pada robot yang berjalan pada suatu ruangan atau mencari jalan keluar dari suatu ruangan. Banyak jenis sensor ultrasonic yang ada di pasaran seperti halnya PING)), SRF, dan ada juga buatan DFRobot. Namun saya sendiri yang juga baru mengenal sensor ultrasonic ini hanya baru menggunakan srf dan ping saja.

saya sendiri sebagai orang yang baru punya sensor ini beberapa minggu lalu :D bertanggapan cara pembacaan sensor ultrasonic itu kebanyakan hampir sama, yaitu dengan mengirimkan sinyal trigger lalu mencatat sinyal echo yang didapat dengan interval waktu tertentu yang menunjukkan jarak dari benda yang diukur. namun perbedaan nya, pada ping misalnya, pin trigger dan echo dibuat menjadi satu sehingga pada saat setelah pengiriman trigger pin nya diubah menjadi input di mikronya untuk membaca echo nya. sedangkan pada srf adalah dua pin yang terpisah.

Saat pertama kali menggunakan srf dengan jumlah dua buah, saya pernah mendapatkan kritikan kalau pakai srf mending satu aja karena akan mengganggu komunikasi satu sama lain. dan saya disarankan menggunakan ping karena hanya perlu satu pin saja. Kata kata itu saya ingat dan saya mencoba membuktikan kalau membaca banyak srf itu tidak jadi masalah dan semuanya dapat dibaca secara bersamaan. Dalam robot, tentunya ini sangat diperlukan karena si robot perlu adanya data sekitar misalkan lorong yang realtime kanan kiri maupun depan belakang agar dapat menentukan ke arah mana robot itu akan berbelok.

Dibawah ini adalah listing coding yang saya gunakan untuk membaca srf sebanyak 4 buah secara bersamaan.

[spoiler=Coding]

#include <NewPing.h>

#define jarakmax 200 
#define PING_INTERVAL 33 

unsigned long pingTimer[4]; 
unsigned int cm[4];         
uint8_t currentSensor = 0;        
int a=2;
int b=5;
int c=9;
int d=14;
int e,f,g,h,pose,posf,posg,posh,ake,akf,akg,akh=0;
NewPing sonar[4] = {    
  NewPing(4, 3, jarakmax), 
  NewPing(7, 6, jarakmax),
  NewPing(11, 10, jarakmax),
  NewPing(16, 15, jarakmax)
};

void setup() {
  pinMode(a,OUTPUT);
  pinMode(b,OUTPUT);
  pinMode(c,OUTPUT);
  pinMode(d,OUTPUT);
  digitalWrite(a,HIGH);
  digitalWrite(b,HIGH);
  digitalWrite(c,HIGH);
  digitalWrite(d,HIGH);
  Serial.begin(9600);
  pingTimer[0] = millis() + 75;        
  for (uint8_t i = 1; i < 4; i++) 
    pingTimer[i] = pingTimer[i - 1] + PING_INTERVAL;
}

void loop() {
  for (uint8_t i = 0; i < 4; i++) { 
    if (millis() >= pingTimer[i]) {      
      pingTimer[i] += PING_INTERVAL * 4; 
      if (i == 0 && currentSensor == 4 - 1) oneSensorCycle(); 
      sonar[currentSensor].timer_stop();         
      currentSensor = i;                         
      cm[currentSensor] = 0;                      
      sonar[currentSensor].ping_timer(echoCheck); 
    }
  }

}

void echoCheck() { 
  if (sonar[currentSensor].check_timer())
    cm[currentSensor] = sonar[currentSensor].convert_cm(sonar[currentSensor].ping_result);
}

void oneSensorCycle() { 

  if (cm[0]<10)
  {
    e=1; 
    digitalWrite(a,LOW);
  }
  else if(cm[0]>10)
  {
    e=0;
    digitalWrite(a,HIGH);
  }
  pose=e;
  if (pose!=ake)
  {
    if(pose==1)
    {
      Serial.print("a");
    }
  }
  ake=pose;
  if (cm[1]<10)
  {
    f=1; 
    digitalWrite(b,LOW);
  }
  else if(cm[1]>10)
  {
    f=0;
    digitalWrite(b,HIGH);
  }
  posf=f;
  if (posf!=akf)
  {
    if(posf==1)
    {
      Serial.print("b");
    }
  }
  akf=posf;
  if (cm[2]<10)
  {
    g=1; 
    digitalWrite(c,LOW);
  }
  else if(cm[2]>10)
  {
    g=0;
    digitalWrite(c,HIGH);
  }
  posg=g;
  if (posg!=akg)
  {
    if(posg==1)
    {
      Serial.print("c");
    }
  }
  akg=posg;
  if (cm[3]<10)
  {
    h=1; 
    digitalWrite(d,LOW);
  }
  else if(cm[3]>10)
  {
    h=0;
    digitalWrite(d,HIGH);
  }
  posh=h;
  if (posh!=akh)
  {
    if(posh==1)
    {
      Serial.print("d");
    }
  }
  akh=posh;

}
[/spoiler]

Untuk Video Demonstrasi nya menyusul ya.. mungkin lagi 3 jam an :)

 

Hasil Pencarian :

Jangan Lupa Cek Juga Artikel Di Bawah Ini
Sound Activation Robot
views 274
Beberapa minggu lalu saya pernah menunjukkan video dimana saya menyalakan robot dengan bantuan suara dalam frekwensi tertentu. ya, itu adalah sound a...
FB Like Counter Dengan Seven Segment
views 575
Maksudnya apa sih FB like counter? itu lho menghitung jumlah berapa orang yang udah like Fans page FB kita. COba deh buka salah satu fans page yang ka...
Kipas Tulisan LED
views 574
Display led dalam bentuk kipas yang tulisan nya dapat kita ubah menggunakan software khusus seperti pada video dibawah ini. https://www.youtube.com...
Management Energi Listrik Online
views 702
Management energi listrik? yang seperti apa tu? saya sendiri sebenarnya bingung juga mau bikin judul apa di artikel ini. Sebenarnya artikel ini telah ...
Menyalakan Lampu dengan Android
views 2438
Menyalakan lampu dengan android? berarti kita dapat mengendalikan seluruh kelistrikan rumah juga, yang berbeda hanyalah beban nya saja. Pada artikel s...
Modifikasi LCD Laptop ke LCD Komputer
views 8318
Modifikasi lcd laptop menjadi lcd monitor, memang sangat langka kita temukan di kenyataan dan memang sangat sulit kita dapatkan ada orang yang berha...
Apa itu E-Ink E-paper?
views 373
Kamu pernah dengar ga istilah e-ink? atau mungkin sebelum kesana tentunya kamu sudah pernah dengar dong yang namanya e-book?, ya itu adalah istilah un...

Tentang Anak Agung Duwi Arsana

Seorang tukang service serabutan dari desa Panjer, Denpasar Bali. Senang bercerita tentang kegiatan sehari hari di blog dalam bentuk tulisan tulisan ngawur maupun di youtube dalam bentuk video yang ga jelas.

Baca juga

Tv Tabung Hanya Muncul Garis Putih

Memperbaiki TV tabung yang rusak nya hanya muncul garis putih ditengah layar, sebenarnya jarang sekali …

22 komentar

  1. Mantep agan duwi… Kreasi terus nih

  2. bisa gak buat mikrocontroler menghidupkan peralatan listrik ( lampu, tv, kipas angin dll) secara bersamaan?

  3. mas, klo satu aja sensornya, kira" pasang kakinya dimana?
    atau, kasih penjelasan dunk, itu di pin apa aja…?

  4. cara membaca 20 sensor bersamaan gimana om?

  5. mas saya pasang 4 sensor ultrasonik di atmega2560 tapi yang kebaca cuma satu kenapa ya mas duwi?

  6. mas aku lagi belajar nih bagaimana cara baca 4 sensor seacra bersamaan, karena yang terbaca cuma sensor satu aja.

  7. cara dapatkan sensor ultrasonik yang dapat jarak jangkauan pangjang dimana frend?

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

10 + 11 =

info : sms sedang lelet :D