Kamis, 06 Desember 2012

Selasa, 04 Desember 2012



ALAT  PENGUKUR TINGGI BADAN

Kali ini kami akan membuat sebuah prototipe alat pengukur tinggi badan berbasis mikrokontroler yang akan di tampilkan pada layar monitor komputer, mikrokontrolernya menggunakan sistem minimal Atmega8, atau dapat menggunakan Arduino dan sensor pengukur ketinggiannya menggunakan Sensor Ultrasonik. sebelumnya apa sih Arduino dan Sensor Ultrasonik itu?.
Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri.
Arduino adalah kit mikrokontroler yang serba bisa dan sangat mudah penggunaannya. Untuk membuatnya diperlukan chip programmer (untuk menanamkan bootloader Arduino pada chip). ARDUINO merupakan single board hardware yang open-source dan juga softwarenya pun dapat kita nikmati secara opensource juga. Disisi software arduino dapat dijalankan di multi platform, yaitu linux, windows, atau juga mac. Hardware arduino merupakan mikrokontroller yang berbasiskan AVR dari ATMEL yang didalamnya sudah diberi bootloader dan juga sudah terdapat standar pin I/Onya.


Gambar arduino




Sensor ultrasonik adalah sensor yang bekerja berdasarkan prinsip pantulan gelombang suara dan digunakan untuk mendeteksi keberadaan suatu objek tertentu di depannya, frekuensi kerjanya pada daerah diatas gelombang suara dari 40 KHz hingga 400 KHz.


Gambar sensor ultrasonik



Sensor ultrasonik ke arduino




Keterangan :
 Arduino mengendalikan kinerja sensor ultrasonik dan sensor ultrasonik memberikan data ke arduino yang kemudian di proses oleh arduino.


Penjelasan singkat :
            Pengukur tinggi badan pada umumnya menggunakan mistar atau meteran, pada kesempatan  ini kami akan menjelaskan mengenai pengukur tinggi badan menggunakan ultrasonic, dimana ultrasonic bekerja memanfaatkan pantulan suara frekuensi tinggi dan dibandingkan dengan waktu pantulan sehingga dapat diproses menjadi jarak. Bila pantulannya cepat maka ultrasonic mendeteksi jarak yang dekat, sedangkan bila pantulan suara lama di terima maka ultrasonic mendeteksi jarak yang jauh. Lalu bagaimana kita dapat membalik keadaan supaya ultrasonic dapat memberikan data ketinggian seseorang.
             Dari reverensi jarak tersebut kita dapat mengolahnya menjadi sebuah alat pengukur tinggi badan dengan rumus sebagai berikut :

            Tb = Tk – Tu
Ket:
Tb : tinggi badan
Tk : tinggi kalibrasi
Tu : tinggi ukur

            Tinggi kalibrasi merupakan ketinggian mula-mula sebelum ultrasonic mengukur objek, misal ultrasonic di pasang pada ketinggian 2 meter, maka nilai tinggi kalibrasinya adalah 2 meter. Tinggi ukur adalah nilai ultrasonic ketika mendeteksi adanya objek, misal sesorang berdiri dibawah ultrasonic dengan jarak 20 cm, maka nilai tinggi ukur adalah 20 cm.
Tinggi badan adalah nilai  dari selisih antara tinggi kalibrasi dengan tinggi ukur, seperti contoh di atas yaitu 2meter – 20cm = 180cm , dari situlah kita dapat mengetahui ketinggian seseorang.



/* "SENSOR TINGGI BADAN ULTRASONIK DENGAN KENDALI KEYBOARD"
progam by pache*/

//deklarasi variabel
const int pingPin = 7;
int a;
int b;
int c;
int data = 0;
int kalibrasi = 0;

void setup() 
{
  Serial.begin(9600);
  Serial.println("Ready");
  a=0;
  b=0;   //seting nol untuk semua data pengukuran
  c=0; 
}

void loop()
{
  if (Serial.available() > 0) //MENGAKTIFKAN KOMUNIKASI SERIAL
  { 
    data = Serial.read(); // membaca input data serial
  }
  
  //PROGRAM UNTUK ULTRASONIK
  long duration, cm;

  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin, LOW);

  pinMode(pingPin, INPUT);
  duration = pulseIn(pingPin, HIGH);
  
  cm = microsecondsToCentimeters(duration);
  
//PROGRAM PENGOLAH DATA DARI ULTRASONIK

  if (data == 107 && kalibrasi == 0)
  //MEMBACA DATA DARI KEYBOARD , 107 = K
  {
    kalibrasi = 1;
    delay(3000);
    a = cm+2;                   
    //MENAMPILKAN NIKAI KETINGGIAN MULA2 SEBELUM ADA OBJEK
    //Nilai +2 sebagai pendekatan nilai akurasi 
    //Serial.begin(9600);
    Serial.print("Kalibrasi : ");
    Serial.print(a);
    Serial.print(" cm,");
    Serial.println();  
  }
  
  if (data == 117 && kalibrasi == 1)
  //MEMBACA DATA DARI KEYBOARD , 117 = U
  { 
   b = cm-4;
   if (b >= 100)
     { 
      b = cm + 2 ;                  
     }
    c = (a - b);
    //TINGGI MULA2 - TINGGI TERUKUR = TINGGI OBJEK
       
    Serial.println();
    Serial.print("tinggi anda :");
    Serial.print(c);
    //MENAMPILKAN KETINGGIAN OBJEK ATAU SESEORANG
    Serial.print(" cm,");  
    Serial.println();
    delay(3000);
  }
  //if (cm <= 100)
  //   {
  //     b = cm+2;
  //     c = a - b;
  //   }
  
  if(data == 114)
  //MEMBACA DATA DARI KEYBOARD , 114 = R
  {
    a=0;
    b=0;
    c=0; 
    data =0;
    kalibrasi = 0;
    // MENGEMBALIAKAN SEMUA DATA MENJADI NOL
   
    Serial.print("....RESET....");
    Serial.println();
    delay(200);

  }
}

    //PERINTAH PERULANGAN UNTUK ULTRASONIK
long microsecondsToInches(long microseconds)
{
  return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
  return microseconds / 29 / 2;
}

Jumat, 26 Oktober 2012


Rotary Encoder dengan kode Binary
A
B
C
D
E
Y
































































































































































































  
Rotary Encoder dengan kode Gray


A
B
C
D
E
Y




































































































































































































Gb. Rotary encoder dengan kode biner 5-bit



Gb. Rotary encoder dengan kode Gray 5-bit