Assalamu-alaikum teman teman, kembali lagi di cronyos.com :salaman, kali ini kita akan belajar cara mengukur kepekatan debu pada udara menggunakan sebiah sensor dari sharp yaitu sensor Sharp GP2Y1010AU0F, sensor ini dihargai cukup murah menurut saya, hanya sekitar 150 ribuan. dengan sensor ini kita dapat mengukur kepekatan debu pada udara yang nantinya dapat kita gunakan mengetahui kualitas udara
Sebelum belajar menggunakannya maka ada beberapa bahan yang harus kita siapkan, antara lain
Setelah semua bahan tersedia selanjutnya kita buat rangkaiannya. buat rangkaiannya seperti wiring berikut ini
Setelah komponen selesai dirangkai selanjutnya kita uploud coding / sketch berikut ini
int ledPower = 2; int measurePin = A0; int samplingTime = 280; int sleepTime = 100; float voMeasured = 0; float calcVoltage = 0; float dustDensity = 0; float voltDensity = 0; void setup() { Serial.begin(9600); pinMode(ledPower,OUTPUT); } void loop() { digitalWrite(ledPower,LOW); // power on the LED delayMicroseconds(samplingTime); voMeasured = analogRead(measurePin); // read the dust value digitalWrite(ledPower,HIGH); // turn the LED off delayMicroseconds(sleepTime); calcVoltage = ( ( voMeasured * 5 ) / 1024); voltDensity = calcVoltage - 0.6; dustDensity = voltDensity * 0.17; Serial.print(" - Dust Density: "); Serial.print(dustDensity); Serial.println(" Kg/m3"); }
Setelah coding berhasil di uploud maka kalian akan melihat intensitas debu yang terbaca oleh sensor debu tersebut. untuk mencobanya kalian bisa memasukan ujung lidi / sejenisnya ke lubang pembacaan sensor.
Hal ini untuk mensimulasikan kalau dust sensor mendeteksi debu yang sangat pekat, jika langkah langkah diatas dikerjakan dengan baik maka di serial monitor kita akan melihat intensitas debu yang terbaca adalah sekitar 0.59 kg/m3.
Baik, cara untuk membaca kepadatan debu menggunakan arduino sudah selesai, namun mungkin masih ada yang bertanya tanya fungsi dari setiap baris kode dan darimanakah perhitungan di coding tersebut didapatkan? dan kenapa pas mensimulasikan sensor membaca debu yang sangat padat menggunakan cara memasukan batang lidi? okelah mari kita ulas satu persatu.
Pertama kita bahas pertanyaan yang terakhir dulu. kenapa pas mensimulasikan sensor membaca debu yang sangat padat menggunakan cara memasukan batang lidi?
Oke, Sebelum kita bahas pertanyaan diatas mungkin lebih afdol kalau kalian download dulu datasheetnya disini, karena semua pembahasan kita nanti akan mengacu pada datasheet
Pertama, perlu diketahui bahwa kerja dari sensor ini adalah dengan menembakan cahaya ke photodioda, debu akan dilewatkan antara led dan photo dioda seperti berikut ini
Intinya disini adalah debu akan menghalangi cahaya yang diterima oleh photodioda sehingga akan merubah tahanan dari photodioda tersebut. makanya kita menggunakan batang lidi untuk mensimulasikan debu yang tebal. karena pada intinya adalah sama, cahaya akan terhalang oleh suatu benda yang pekat sehingga cahaya yang diterima oleh photodioda sangat sedikit.
Kedua, tentang baris kode berikut
digitalWrite(ledPower,LOW); // power on the LED
Baris kode diatas adalah untuk menyalakan led, menyalakan kenapa digitalWrite LOW?? iya karena disini rangkaian lednya menggunakan kendali negatif / memakakai transistor pnp, berikut rangkaiannya
Ketiga, tentang baris kode berikut,
delayMicroseconds(samplingTime);
dimana variabel “samplingTime” telah di definisan sebelumnya pada baris
int samplingTime = 280;
Baris kode diatas adalah untuk memberi jeda waktu agar led dapat menyala dengan sempurna sebelum nantinya jumlah cahaya yang diterima photo dioda dibaca, lalu kenapa delaynya 280 microseconds? angka tersebut didapatkan dari datasheet pada bagian ini
Ke Empat, tentang baris kode berikut
voMeasured = analogRead(measurePin); // read the dust value digitalWrite(ledPower,HIGH); // turn the LED off delayMicroseconds(sleepTime);
baris kode yang pertama adalah untuk membaca tegangan analog yang terbaca setelah photodioda menerima cahaya dari led
baris kedua adalah untuk mematikan led dan baris yang ketiga adalah memberi jeda agar led dapat mati dengan sempurna / benar benar mati
Ke lima, tentang baris kode berikut
calcVoltage = ( ( voMeasured * 5 ) / 1024);
baris kode tersebut adalah untuk merubah nilai pembacaan yang semula pada tipe data integer (0 – 1023) menjadi data pecahan / float (0.0 – 5.0 volt)
Ke enam, tentang beris kode berikut
voltDensity = calcVoltage - 0.6; dustDensity = voltDensity * 0.17;
baris kode tersebut adalah rumus / perhitungan yang saya buat menggunakan perhitungan persamaan garis linear sederhana untuk mengubah nilai pembacaan tegangan menjadi kepadatan debu mengacu pada grafik pada datasheet berikut
baris pertama, kita bisa melihat bahwa kenaikan tegangan pada grafik dimulai dari sekitar 0.6 volt, artinya jika tegangan output sensor dibawah 0.6 volt berarti sensor suhu tidak membaca adanya debu, makanya hasil pengukuran perlu kita kurangi 0.6
baris kedua, kita tahu bahwa setelah 0.6 volt maka grafik akan cenderung naik sebanding dengan bertambahnya intensitas debu yang terbaca, dimana naiknya garis pada grafik merupakan garis lurus, tentu persamaan garis linear sederhana bermain disini, dimana pada perhitungan persamaan garis lurus kita memerlukan konstanta agar suatu koordinat dapat dicari berdasarkan data korrdinat lain, dalam hal ini adalah agar kepadatan debu bisa dicari berdasarkan tegegangan output sensor, perhitungan untuk mencari konstantannya adalah sebagai berikut :
dust = 0.5 (0 - 0.5), dimana dust = rentan pembacaan suhu pada garis lurus volt = 2.9 (0.6 - 3.5), dimana volt = rentan pembacaan output voltage pada garis lurus konstanta = 0.5 : 2.9 = 0.17
setelah kita tahu kontantanya maka perhitungan untuk mencari kepadatan debu adalah seperti yang saya tuliskan di coding diatas, yaitu
dustDensity = voltDensity * 0.17;
Gimana?? Pusing?? :hammer , jika pusing silahkan ajak teman kalian yang jago matematika untuk diskusi. hehe
Sekian dulu belajar kita kali ini, semoga apa yang kami tulis dapat bermanfaat. terima kasih . wassslamau’alaikum
Kitab Rujukan : Shahih Adab Islamiyyah karya Dr. Wahid bin Abdissalam bali 1.Berdoa ketika masuk…
Berdzikir kepada Allah Ketika Bangun Tidur عَنْ حُذَيْفَةَ رَضِيَ اللَّهُ عَنْهُ قَالَ: كَانَ النَّبِيُّ صَلَّى…
عن عَبْدَ اللَّهِ بْنَ عُمَرَ رَضِيَ اللَّهُ عَنْهُمَا - قَالَ سَمِعْتُ رَسُولَ اللَّهِ صلى الله…
عَنِ ابْنِ عَبَّاسٍ رضى الله عنهما قَالَ- قَالَ النَّبِيُّ صلى الله عليه وسلم " نِعْمَتَانِ…
Assalamu'alaikum, Catatan ini menjadi nasehat untuk diri kami pribadi dan umumnya untuk anak - anak…
Assalamu'alaikum warahmatullahi wabarakatuh sahabat otomotif :-) , kali ini kita akan bahas tentang piston pin…
Tampilan Versi Hemat Data
View Comments
Terimakasih tutorialnya mas, ini sangat bermanfaat untuk pemula seperti saya karena ada penjelasannya juga.
Permisi mau tanya gan, 0.6 dan 0.17 itu diperoleh dari mana ya?
Terima kasih
konstanta tan.
bang gmana klo mau ke satuan ug/cm3 ??
pakai rumus konversi di program gan.