Showing posts sorted by relevance for query arduino-for. Sort by date Show all posts
Showing posts sorted by relevance for query arduino-for. Sort by date Show all posts

Monday 23 February 2015

Arduino: Membaca Data Jarak Menggunakan Modul Sensor Ultrasonik PING Parallax


Pada tutorial ini digunakan software Arduino 1.0.1 yang merupakan versi terbaru IDE Arduino. Namun tak hanya menggunakan versi terbaru, sebagai perbandingan, digunakan juga IDE Arduino-0022.
Pada kedua versi Arduino tersebut terdapat contoh program sensor PING yang dapat langsung diuji-coba tanpa modifikasi atau dengan sedikit modifikasi. Untuk praktisnya, kita akan merangkai Starduino Board dan PING Parallax sesuai dengan contoh program PING yang tersedia pada IDE Arduino.


starduino_ping_parallax400

Rangkaian Starduino + PING Parallax
Modul sensor ultrasonik PING buatan Parallax memiliki 3 kaki yakni: GND5V, dan SIG. Gambar di bawah ini menunjukkan koneksi modul PING dengan Starduino Board.

starduino_ping_diagramb
Kaki SIG dari modul PING dihubungkan dengan Pin-7 dari Starduino. Kaki GND dan 5Vdihubungkan ke GND dan +5V dari Starduino.
Setelah Starduino dan PING terangkai dengan benar, maka langkah selanjutnya adalah membuka sketch Ping yang telah tersedia pada contoh-contoh program bawaan IDE Arduino 1.0.1 maupun Arduino-0022 seperti ditunjukkan pada screenshot di bawah ini.
arduino_sensor_ping
Sebelum program ini kita upload ke Starduino, kita edit sedikit program Ping pada bagian tampilan data serial dan delay sebagai berikut:
   Serial.print("Jarak = ");
   Serial.print(inches);
   Serial.print("in, ");
   Serial.print(cm);
   Serial.print("cm");
   Serial.println();
   delay(500);
Baris perintah pertama yang bercetak tebal menambahkan tulisan ‘Jarak =’ sebelum menampilkan nilai jarak dalam inci dan centimeter. Perubahan program lainnya adalah parameter fungsi delay() yang awalnya bernilai 100 diganti menjadi 500.
Selanjutnya, kita lakukan upload program ke Starduino dan buka window Serial Monitor. Jika tidak ada kesalahan pada hardware dan komunikasi, maka Starduino akan melakukan pengukuran dan mengirimkan hasil pengukuran jarak ke PC melalui port serial.
LED pada modul PING akan berkedip setiap 1/2 detik sebagai tanda bahwa modul PING bekerja memancarkan suara ultrasonik. Teknik pengukuran jarak dilakukan dengan mengukur lebar-pulsa dalam satuan waktu yang menunjukkan lamanya waktu semenjak PING memancarkan suara ultrasonik hingga menerima pantulan suara ultrasonik, atau mengalami TIMEOUT. Selanjutnya, program menghitung jarak dalam inci dan centimeter menggunakan fungsi-fungsi berikut:
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.
  // See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
  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;
}
Berikut adalah tampilan window Serial Monitor yang menampilkan data yang dikirimkan oleh Starduino Board melalui port serial RS232.
starduino_ping_com1
Nah, sangat mudah bukan? Dengan dukungan contoh-contoh program dan library-library siap pakai yang disediakan oleh Arduino, kita dapat membuat prototipe sistem dengan sangat cepat. Tak heran jika Arduino mengklaim dirinya sebagai Rapid Prototyping Platform.
Tak hanya mudah, Arduino juga murah. Dan tak hanya murah, Arduino juga menerapkan kebijakan open-source untuk software dan hardwarenya, sehingga siapapun boleh membuat sendiri versi Arduino-nya masing-masing. Termasuk juga saya dengan versi Starduino yang masih berbasis ATmega8.
Dengan Starduino dan PING Parallax, kita dapat membuat berbagai aplikasi berbasis pengukuran jarak seperti monitoring level air, pengukur tinggi badan, sistem pengaman mesin potong, dan lain-lain.
Berikut adalah screenshot aplikasi monitoring level ketinggian air dalam tandon dan aplikasi pengukur tinggi badan berbasis Starduino dan sensor jarak ultrasonik PING Parallax. Program dibuat menggunakan VB.NET 2005 Express Edition.
starduino_ping_levelair
starduino_ping_tinggibadan


Read more: http://belajar-dasar-pemrograman.blogspot.com/2013/04/arduino-membaca-data-jarak-menggunakan.html#ixzz3SdNdM700

Friday 13 May 2016

BAHASA PEMROGRAMAN ARDUINO

A.Struktur
Dalam penulisan Program/ Sketch Menggunakan Arduino, ada dua fungsi yang harus ada hal ini dikarenakan arduino memiliki struktur dasar/ standart penulisan yaitu void setup, dan void loop, namun Arduino juga memiliki beberapa fungsi tambahan seperti komentar satu bari ( // ), Blok komentar (/*…*/), kurung kurawal ( { } ), Titik Koma ( ; ).

1.void setup( ) {   }
Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya/ di-Reset

Contoh ;
int LED = 3;
void setup(){
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop(){
}

2.void loop( ) {   }
Fungsi ini akan dijalankan setelah void setup  selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan dengan kata lain program yang ada di dalam kurung kurawal void loop akan mengunlang secara terus menerus.

3.Fungsi()
Digunakan untuk membuat sekumpulan program dengan memberikan label/ nama tertentu yang dapat dipanggil sewaktu- waktu dan fungsi ini biasanya digunakan untuk sekumpulan program yang akan sering dipanggil / dijalankan, sehingga program akan jauh lebih sederhana.

4.//(komentar satu baris)
Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program.

5./*  */(Blok Komentar)
Jika anda punya banyak catatan, maka hal itu dapat dituliskanpada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program.

6.{   }(kurung kurawal)
Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).

7.;(titk koma)
Hamper baris kode pada Arduino harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan/ eror.

B.Struktur Pengaturan

Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan Arduino.

1.If dan Else
Berfungi untuk melakukan pengetesan atau pengujian kondisi sehingga apabila sebuah kondisi telah terpenuhi maka program/ sketch akan menjalankan Pernyataan yang berada di dalam kurung kurawal, namun jika tidak maka program akan melewati pernyataan tersebut, if sendiri memiliki beberapa bentuk dalam penulisannya 
-Bentuk pertama;
ini adalah bentuk if tunggal yang digunakan hanya untuk 1 kondisi, sehingga bila sudah tercapai kondisi tersebut jalankan pernyataan jika tidak lewati pernyataan.

Format penulisan :
If(kodisi){
pernyataan}

Contoh :
If (SensorPin > 100){
digitalWrite(13, HIGH);}

Program diatas menyatakan jika nilai Sensor Pin besar dari 100 maka nyalakan LED pada pin 13.

-Bentuk kedua;
Ini adalah bentuk kedua yang digunakan untuk kondisi if dengan satu pengecualian, jadi apabila if dalam kondisi tersebut program akan menjalankan  pernyataan1 jika tidak program akan menjalankan pernyataan2.

Format Penulisan :
if (kodisi){
Peryataan1}
else{
peryataan2}

Contoh :
If (SensorPin > 100){
digitalWrite (13, HIGH);}
else{
digitalWrite (13,LOW);}

-Bentuk Ketiga;
Pada bentuk ketiga ini if memiliki beberapa pengecualian, sehingga apabila dalam kondisi1 program akan menjalankan pernyataa1, jika tidak cek kondisi2 jika dalam kondisi2 jalankan pernyataan2 jika tidak cek kondisi 3 jika dalam kondisi 3 maka jalankan pernyataan3, jika tidak ada sama dengan kondisi1, kondisi2, kondisi3 maka jalankan pernyataan4.

Format Penulisan:
If(kondisi1){
Pernyataan1}
else if(kondisi2){
Pernyataan2}
else if(kondisi3){
Pernyataan3}
else {Pernyataan4}

Contoh :
If (SensorPin > 20){
digitalWrite (13, HIGH);}
else if(SensorPin > 40){
digitalWrite (12, HIGH);}
else if(SensorPin > 60){
digitalWrite (11 HIGH);}
else{ digitalWrite (11 HIGH);}

2.For
Digunakan bila anda ingin melakukan pengulangan kode didalam kurung kurawal beberapa kali, namun untuk melakukanya dibutuhkan sebuah counter, baik itu counter up ( i++ ), ataupun counter down ( i-- ), sebagai mana yang telah dilihat pada format penulisan i=0 menyatakan posisi awal,sedangkan# untuk jumlah pengulangan dan i++ adalah counter.

Format Penulisan :
for (int i = 0; i < #pengulangan; i++) {
pernyataan}
Contoh
for (int i =0; i <9; i++){    
pinMode(ledPins[i],OUTPUT);
}

3.Switch 
Digunakan untuk menguji suatu nilai pada variable dengan konstanta- konstanta tertentu, konstanta tersebut diawali dengan case dan diakhiri dengan break, jika variable sama dengan konstanta 1 maka jalankan pernyataan 1, jika variable sama dengan konstanta 2 maka jalankan pernyataan 2 dan begitu seterusnya  namun jika variable tidak sama dengan konstanta manapun maka jalankan default.

Format Penulisan :
switch (var) {
case 1:
//pernyataan 1
break;
case 2:
//pernyataan 2
break;
default: 
}

4.while 
Akan menjalankan intruksi yang ada di dalam kurung ()secara terus menerus dan tak terhingga, sampai ekspresi dalam kurung() menjadi salah(false) oleh sebab itu harus ada yang mengubah variable agar dapat keluar dari intruksi ini. 

Format Penulisan:
While(kondisi)
{peryataan(s)
}

5.Do-While
Bekerja dengan cara yang sama seperti while, dengan pengecualian bahwa kondisi ini di uji pada akhir program, sehingga program akan berjalan setidaknya sekali.

Format Penulisan:
do
{pernyataan
}
While(kondisi);


6.Break
Digunakan untuk  keluar dari do while dan while, untuk melewati kondisi normal. Hal ini juga digunakan untuk keluar dari pernyataan switch.

Contoh; 
for(x =0; x <255; x ++){
analogWrite(PWMpin, x);
sens =analogRead(sensor);  
if(sens > threshold){ 
x =0;
break;
}  delay(50);
}

7.Continue
Pernyataan melompati sisa literasi saat (do, for, atau if). Ini akan terus  memeriksa ekspresi kondisional dari loop, dan melanjutkan dengan literasi berikutnya.

Contoh;
for(x =0; x <255; x ++){
 if(x >40&& x <120){      // create jump in values
 continue; }
    analogWrite(PWMpin, x);
    delay(50);
}

8.Return
Return berguna untuk mengembalikan nilai dari fungsi ke  fungsi panggilan, jika diinginkan.
contoh:
int checkSensor(){       
if (analogRead(0) > 400) {
return 1;
else{return 0;}
}

9.go to
adalah intruksi lompat tak bersyarat, instruksi ini mengakibatkan eksekusi dilanjutkan ke alamat yang dituju oleh label .
Contoh;
for(byte r = 0; r < 255; r++){
for(byte g = 255; g > -1; g--){
for(byte b = 0; b < 255; b++){
if (analogRead(0) > 250){ goto Label1;}
Label2}}
}
Label1:

C. Arithmetic
1.Aritmatika 
     Arduino IDE selain mendukung untuk  kompailer juga mendukung operator Aritmatika seperti yang ada dibawah ini.

-Sama dengan ( = )
Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20).

-Penjumlahan( + )
 Penjumlahan
-Pengurangan( - )
 Pengurangan
-Perkalian( * )
 Perkalian
-pembagian( /)
 Pembagian
-Sisa pembagian ( % )
Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).

2.Operasor Bitwisee
Operasi bitwise banyak digunakan dalam aplikasi mikrokontroler, misalnya untuk menguji kondisi bit pada Port 1 atau pergeseran bit dll. Ada enam buah operator bitwise diantaranya;

-Operator Geser kiri ( << )
Operator geser kiri akan mengeser ke kiri perbit sehingga bit 0 akan menggeser ke bit 1 dan bit 2 akan menggeser ke bit 3 dan seterunya, Untuk melakukan operasi bitwise geser kiri dibutuhkan dua buah operan, disebelah kiri tanda ( <<) adalah nilai geser dan disebelah kanan adalah jumlah bit yang akan digeser ke kiri.

-Operator Geser kanan ( >> )
Operator geser kanan akan mengeser ke kanan perbit” misalnya bit 8 akan menggeser ke bit7 dan bit 7 akan menggeser ke bit 6 dan seterunya, Untuk melakukan operasi bitwise geser kanan dibutuhkan dua buah operan, disebelah kiri tanda ( <<) adalah nilai geser dan disebelah kanan adalah jumlah bit yang akan digeser ke kiri.

-Operasi Bitwise AND (&)
Operator bitwise and (&) berfungsi untuk melakukan operasi logika AND bit/ bit misalnya  bit 0 akan diproyeksikan dengan bit 0 dan bit 1 diproyeksikan dengan 1 dan seterusnya.

Contoh:
int a = 10 ; // Dalam biner : 1010
int b = 12 ; // Dalam biner : 1100
int c = a & b; // Hasil dalam biner : 1000

-Operasi Bitwise OR(|)
Operator bitwise OR (|) berfungsi untuk melakukan operasi logika OR bit/ bit misalnya  bit 0 akan diproyeksikan dengan bit 0 dan bit 1 diproyeksikan dengan 1 dan seterusnya.

Contoh :
int a = 10 ; // Dalam biner : 1010
int b = 12 ; // Dalam biner : 1100
int c = a | b;   // Hasil dalam biner : 1110

-Operasi Bitwise XOR (^)
Operator bitwise XOR (^) berfungsi untuk melakukan operasi logika XOR bit/ bit misalnya  bit 0 akan diproyeksikan dengan bit 0 dan bit 1 diproyeksikan dengan 1 dan seterusnya.
Contoh :
int a = 12; // Dalam Biner : 1100
int b = 10;   // Dalam Biner : 1010
int c = a ^ b; //HarsilDalam Biner : 0110 

- Operasi Bitwise NOT (~)
Operatr bitwise NOT (~) berfungsi untuk melakukan operasi logika NOT pada bit, misalnya bit yang berlogika 0 berubah menjadi 1 dan logika 1 berubah menjadi0.

Contoh :
int a = 12; // Dalam Biner : 1100
int c = ~a //Hasil Dalam Biner : 0011

3.Operator Relasi/ Pembanding
Operator Relasi digunakan untuk membandingkan dua buah nilai atau kondisi. Operator relasi.

-Sama dengan ( == )
Sama dengan (misalnya: 14 == 10 adalah FALSE (salah) atau 10 == 10 adalah TRUE (benar))

-Tidak sama dengan ( != )
Tidak sama dengan (misalnya: 14 != 10 adalah TRUE (benar) atau 10 != 10 adalah FALSE (salah))

-Kecil dari ( < )
Lebih kecil dari (misalnya: 14< 10 adalah FALSE (salah) atau 14 < 14 adalah FALSE (salah) atau 10< 14 adalah TRUE (benar))

-Besar dari ( > )
Lebih besar dari (misalnya: 14> 10 adalah TRUE (benar) atau 14 > 14 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah))

-Kecil/ sama dengan ( <= )
Kecil/ sama dengan (misalnya: 14 <= 10 adalah FALSE (salah) atau 14 <= 14 adalah TRUE (benar) atau 10 <= 14 adalah TRUE (benar))

-Besar / sama dengan ( >= )
Lebih besar dari (misalnya: 14 >= 10 adalah TRUE (benar) atau 14 >= 14 adalah TRUE (benar)) atau 12 >= 14 adalah FALSE (salah))

PERHATIAN
dalam penulisan operator relasi tanda tidak boleh salah hal ini dikarenakan kesalahan sedikit dalam penulisan tanda dapat menyebankan program/ sketch tidak berkerja sesuai dengan yang diharapkan misalnya : kita ingin membandingkan sebuah Variable dengan operasi relasi sama dengan (==)  tanda yang harus dituliskan adalah == jika kita hanya menuliskan = sekali saja maka instruksi yang dijalankan bukanya membandingkan malah memberi nilai pada Variable, selain dari itu jika kita ingin menusilkan operasi relasi besar sama dengan ( >= ) kita tidak boleh menulikanya terbalik ( => ), meskipun maknanya sama namun Arduino IDE tidak mengenal hal itu sehingga mengakibatkan eror pada saat Verify ( Kompailer ).

Monday 16 September 2013

TUTORIAL CARA MENGINSTAL DRIVER ARDUINO


Pada kesempatan kali ini saya akan membagi cara menginstal program arduino, dimana program arduino sangat berguna bagi anda yang suka ngoprek peralatan elektronik seperti pemograman line follower, dll. pokoknya semua yang berhubungan dengan arduino pasti untuk programnya memakai program arduino.
Adapun cara menginstalnya sebagai berikut :
  1. Hubungkan Arduino pada komputer menggunakan Kabel USB tipe B :
  2. Pada bagian bawah kanan dekstop akan muncul Popup installing device driver software seperti pada gambar di bawah ini .
  3. Sistem windows 7 tidak mendukung driver untuk arduino, seperti gambar di bawah, oleh karena itu harus dilakukan penginstalan secara manual.
  4. Buka device manager, pada bagian search program and files ketikkan "Device Manager" tanpa tanda kutip. Perhatikan gambar di bawah ini pada bagian control panel akan muncul device manager, klik untuk menjalankan programnya.
  5. Cari uknwon device yang berada di other device, biasanya muncul tanda seru berwarna kuning yang bermakna driver belum terinstal sempurna.
  6. Klik kanan pada arduino kemudian pilih Update Driver Software.
  7. Pilih Browser my computer for driver sofware
  8. Arahkan lokasi tempat penyimpatan instalan menuju ....\arduino1.0.5\drivers Pastikan check box include subfolder dicentang. Kilk NEXT untuk melanjutkan proses instalasi.
  9. Lanjutkan dengan cara mengklik instal pada tampilan windows security .
  10. Jika proses instalasi berhasil, akan muncul tampilan yang menyatakan bahwa proses instalasi telah berjalan sukses.
  11. Perhatikan dan ingat nama COM Arduino, Karena nama COM tersebut akan di pakai setelah anda memporgram pada arduino untuk di upload ke arduinonya. 
Nah, Cukup sekian saya membagikan cara menginstal driver Arduino. Untuk mengetahui lebih lanjut cara mengistal simulator arduino lihat artikel saya yang selanjutnya..

    Saturday 16 May 2015

    Serial received di c#


    Hai sobat jufrikablog nah kali ini saya akan kembali lagi memberikan tutorial habis habisan tentang serial hahahahahahaha . yaitu serial received . langsung saja berikut prakteknya

    1. Buat solution baru dan buat seperti ini di visula studio anda
    2. Klik 2 kali pada form load misalnya, dan masukkan program ini
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace seri1
    {
    public partial class Form1 : Form
    {
    string rxString;
    int[] lokasiY = new int[100];

    public Form1()
    {
    InitializeComponent();
    }
    private Graphics objGraphic;

    private void Form1_Load(object sender, EventArgs e)
    {
    objGraphic = CreateGraphics();
    if (objGraphic == null)
    return;
    }

    private void button1_Click(object sender, EventArgs e)
    {
    if (button1.Text == “Connect”)
    {
    button1.Text = “Disconnect”;
    serialPort1.Open();
    //richTextBox1.text = “”;
    //a = 0;
    }
    else
    {
    button1.Text = “Connect”;
    serialPort1.Close();
    }
    }

    void SerialPort1DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {
    rxString = serialPort1.ReadLine();
    this.Invoke(new EventHandler(DisplayText));
    }

    private void DisplayText(object sender, EventArgs e)
    {
    richTextBox1.Text += rxString;
    float tinggi = float.Parse(rxString);
    tinggi = 179 – (tinggi / 1023 * 179);
    // geser arraynya
    for (int i = 0; i < 99; i++)
    {
    lokasiY[i] = lokasiY[i + 1];
    }
    lokasiY[99] = (int)tinggi;
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
    Pen pena = new Pen(Color.Black);
    int awalX = 0;
    int titikMulaiX, titikMulaiY, titikAkhirX, titikAkhirY;
    // hapus dulu semuanya
    objGraphic.Clear(Color.White);
    for (int i = 0; i < 99; i++)
    {
    titikMulaiX = awalX + i * 5;
    titikMulaiY = lokasiY[i];
    titikAkhirX = awalX + (i + 1) * 5;
    titikAkhirY = lokasiY[i + 1];
    objGraphic.DrawLine(pena, titikMulaiX, titikMulaiY, titikAkhirX, titikAkhirY);
    }
    }
    }
    }


    3. Setelah program selesai, runningkan/jalankan programnya jika bisa dijalankan dan tidak ada eror maka lanjut ke arduino
    4. buat program arduino ini dan upload ke arduino yang siertai potensio untuk mengatur tegangan input dan akan di baca di aplikasi
    void setup() 
    { Serial.begin(9600); }
    void loop()

     { int sensorValue = analogRead(A1); delay(500); Serial.println(sensorValue, DEC); }
    5. setelah itu running programnya sob ;)

    ini tampilannya jika tidak menggunakan potensio
    sekian semoga bermanfaat :)

     

    Monday 23 February 2015

    HARDWARE :: sensor api pengganti UVtron dan Thermal array


     
    UVtron, Thermal Array, IR camera
    yaitu pake remotenya nintendo wii.
      

    remote wiimote dari nintendo
    sensor api paket hemat dari remote wii ini rupanya cuman setengah harga dari UVtron+driver loh (kalo pake harga batam).
      
     
    pada bagian depan dari remote ini memiliki kamera infra merah dengan spesifikasi berikut:
    1. kamera resolusi 1024×768
    2. Up to 4 blob (cahaya IR terang melebihi thresholdnya)
    3. 100 proses gambar perdetik
    3. interfacing i2c
    4. output i2c berupa koordinat dari 4 blob tersebut.
    wiring cameranya:
    Jika menggunakan crystal quartz (4kaki) :
     
    jika menggunakan crystal resonator (2kaki) perhatikan yang didalam kotak ya
     
    bentuk jadinya
        
    yang keren dari internet, yang tengah / yang jelek itu punya saya
    cuman lum dilanjutkan, timahnya habis trus resistor ma capasitor ada dibawah pcb :p
    setelah itu tinggal dihubungkan ke arduino dan pasang kaca hitam bawaannya.
    jika ingin pakai library arduinonya download PVision.zip  ubah ke ZIP ya
    tapi jika gak mau pakai library, ini contoh akses IR kamera nya:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    // Wii Remote IR sensor  test sample code  by kako
    // modified output for Wii-BlobTrack program by RobotFreak
     
    #include
     
    int IRsensorAddress = 0xB0;
    int slaveAddress;
    int ledPin = 13;
    boolean ledState = false;
    byte data_buf[16];
    int i;
     
    int Ix[4];
    int Iy[4];
    int s;
     
    void Write_2bytes(byte d1, byte d2)
    {
        Wire.beginTransmission(slaveAddress);
        Wire.send(d1); Wire.send(d2);
        Wire.endTransmission();
    }
     
    void setup()
    {
        slaveAddress = IRsensorAddress >> 1;   // This results in 0x21 as the address to pass to TWI
        Serial.begin(38400);
        pinMode(ledPin, OUTPUT);      // Set the LED pin as output
        Wire.begin();
        // IR sensor initialize
        Write_2bytes(0x30,0x01); delay(10);
        Write_2bytes(0x30,0x08); delay(10);
        Write_2bytes(0x06,0x90); delay(10);
        Write_2bytes(0x08,0xC0); delay(10);
        Write_2bytes(0x1A,0x40); delay(10);
        Write_2bytes(0x33,0x33); delay(10);
        delay(100);
    }
    void loop()
    {
        ledState = !ledState;
        if (ledState) { digitalWrite(ledPin,HIGH); } else { digitalWrite(ledPin,LOW); }
     
        //IR sensor read
        Wire.beginTransmission(slaveAddress);
        Wire.send(0x36);
        Wire.endTransmission();
     
        Wire.requestFrom(slaveAddress, 16);        // Request the 2 byte heading (MSB comes first)
        for (i=0;i    i=0;
        while(Wire.available() && i < 16) {
            data_buf[i] = Wire.receive();
            i++;
        }
     
        Ix[0] = data_buf[1];
        Iy[0] = data_buf[2];
        s   = data_buf[3];
        Ix[0] += (s & 0x30) <    Iy[0] += (s & 0xC0) <
        Ix[1] = data_buf[4];
        Iy[1] = data_buf[5];
        s   = data_buf[6];
        Ix[1] += (s & 0x30) <    Iy[1] += (s & 0xC0) <
        Ix[2] = data_buf[7];
        Iy[2] = data_buf[8];
        s   = data_buf[9];
        Ix[2] += (s & 0x30) <    Iy[2] += (s & 0xC0) <
        Ix[3] = data_buf[10];
        Iy[3] = data_buf[11];
        s   = data_buf[12];
        Ix[3] += (s & 0x30) <    Iy[3] += (s & 0xC0) <
        for(i=0; i    {
          if (Ix[i] < 1000)
            Serial.print(" ");
          if (Ix[i] < 100)
            Serial.print(" ");
          if (Ix[i] < 10)
            Serial.print(" ");
          Serial.print( int(Ix[i]) );
          Serial.print(",");
          if (Iy[i] < 1000)
            Serial.print(" ");
          if (Iy[i] < 100)
            Serial.print(" ");
          if (Iy[i] < 10)
            Serial.print(" ");
          Serial.print( int(Iy[i]) );
          if (i        Serial.print(",");
        }
        Serial.println("");
        delay(3);
    }
    sumber:
    https://handritoar.wordpress.com/2011/11/28/sensor-api-paket-hemat-tapi-efisien/
    .