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
Cronyos Everything About Knowledge
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.