Serba-Serbi Sensor
Minggu, 16 Desember 2012
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
Langganan:
Postingan (Atom)