Arduino dan Sensor Warna TCS3200 Deteksi RGB

Arduino Uno DIP

Pada bagian ini akan dibahas contoh pembacaan frekuensi warna merha, hijau dan biru dengan menggunakan sensor warna TCS3200 dengan Arduino UNO dan menentukan warna aktual dari objek yang dibaca. Rangkaian dari contoh proyek ini ditunjukkan pada gambar Prog1.1.

Contoh Program : Prog1.1 Arduino deteksi warna

Penjelasan :

1. Di awal program didefinisikan alias nama untuk setiap pin yang akan digunakan. Hal ini ditujukan untuk mempermudah kita dalam membuat program.

2. Pin yang digunakan untuk scaling frekuensi adalah pin digital 8 dan pin digital 9, dimana pin digital 8 diberi alias nama So dan pin digital 9 diberi alias nama S1.

3. Pin yang digunakan untuk pemilihan photodioda adalah pin digital 10 dan pin digital 11, dimana pin digital 10 diberi alias digital S2 dan pin digital 9 diberi alias nama S3.

4. Baris selanjutnya adalah pemberian alias dengan nama output_sensor untuk pin digital 12 yang akan digunakan sebagai pin input untuk menerima masukan dari pin out modul sensor TCS3200.

5. Pada 3 baris selanjutnya terdapat inisialisasi pembuatan variabel dengan nilai awal 0 dan bertipe integer, yaitu variabel frekuensi_merah, frekuensi_hijau dan frekuensi_biru. Variabel-variabel ini digunakan untuk menampung nilai frekuensi yang dihasilkan.\

6. Pada 3 baris berikutnya terdapat inisialisasi pembuatan variabel dengan nilai awal 0 dan bertipe integer, yaitu variabel warna_merah, warna_hijau dan warna_biru. Variabel-variabel ini digunakan untuk menampung nilai frekuensi yang sudah di mapping ke rentang 255-0.

7. Di awal void setup terdapat pengaturan arah I / O dari setiap pin yang akan digunakan. Pin 8,9,10 dan 11 (S0, S1, S2 dan S3) dideklarasikan sebagai pin OUTPUT.

8. Selanjutnya, pin output sensor dideklarasikan sebagai pin INPUT.

9. Pada baris selanjutnya terdapat pengaturan nilai untuk S0 dan S1. Pada program S0 diberi nilai HIGH dan S1 diberi nilai LOW, karena scalling frekuensi yang digunakan adalah 20%.

10. Baris selanjutnya adalah pengaturan baud rate untuk komunikasi serial sebesar 9600bps.

11. Pada void loop, kita akan terus membaca frekuensi yang dihasilkan dengan urutan warna merah, hijau dan biru kemudian menampilkannya di serial monitor.

12. Di awal program S2 dan S3 diberi nilai LOW karena disini sensor akan membaca 16 photodioda dengan filter warna merah yang sensitif terhadap panjang gelombang untuk warna merah.

13. Pembacaan output frekuensi warna merah dilakukan dengan menggunakan fungsi pulseIn( ). Dimana pada contoh ini dituliskan dengan pulseIn(output_sensor, LOW) yang artinya membaca pulsa pada pin output_sensor. Nilai LOW berarti menunggu pin output_sensor berpindah dari LOW ke HIGH kemudian memulai pewaktuan akan menghentikan pewaktuan ketika nilai dari pin output_sensor berpindah dari HIGH ke LOW. Hasilnya dari fungsi tersebut disimpan ke variabel frekuensi_merah.

14. Nilai yang di dapat dan disimpan pada variabel frekuensi_merah akan diubah ke rentang 255-0 dengan menggunakan fungsi map, dimana perintahnya map (frekuensi_merah, 44, 50, 255,0). Hasil dari eksekusi perintah tersebut disimpan ke variabel warna_merah dan akan dicetak ke serial monitor.

15. Baris selanjutnya adalah perintah jeda waktu selama 100ms.

16. Selanjutnya pada program S2 dan S3 diberi nilai HIGH karena disini sensor akan membaca 16 photodioda dengan filter warna hijau yang sensitif terhadap panjang gelombang untuk warna merah hijau.

17. Pembacaan output frekuensi warna hijau dilakukan dengan menggunakan fungsi pulseIn( ). Dimana pada contoh ini dituliskan dengan pulseIn(output_sensor, LOW) yang artinya membaca pulsa pada pin output_sensor. Nilai LOW berarti menunggu pin output_sensor berpindah dari LOW ke HIGH kemudian memulai pewaktuan akan menghentikan pewaktuan ketika nilai dari pin output_sensor berpindah dari HIGH ke LOW. Hasilnya dari fungsi tersebut disimpan ke variabel frekuensi_hijau.

18. Nilai yang di dapat dan disimpan pada variabel frekuensi_hijau akan diubah ke rentang 255-0 dengan menggunakan fungsi map, dimana perintahnya map(frekuensi_hijau, 44, 50, 255,0). Hasil dari eksekusi perintah tersebut disimpan ke variabel warna_hijau dan akan dicetak ke serial monitor.

19. Baris selanjutnya adalah perintah jeda waktu selama 100ms.

20. Selanjutnya pada program S2 diberi nilai LOW dan S3 diberi nilai HIGH karena disini sensor akan membaca 16 photodioda dengan filter warna biru yang sensitif terhadap panjang gelombang untuk warna biru.

21. Pembacaan output frekuensi warna biru dilakukan dengan menggunakan fungsi pulseIn( ). Dimana pada contoh ini dituliskan pulseIn(output_sensor, LOW) yang artinya membaca pulsa pada pin output_sensor. Nilai LOW berarti menunggu pin output_sensor berpindah dari LOW ke HIGH kemudian memulai pewaktuan akan menghentikan pewaktuan ketika nilai dari pin output_sensor berpindah dari HIGH ke LOW. Hasilnya dari fungsi tersebut disimpan ke variabel frekuensi_biru.

22. Nilai yang di dapat dan disimpan pada variabel frekuensi_biru akan diubah ke rentang 255 - 0 dengan menggunakan fungsi map, dimana perintahnya map(frekuensi_biru, 44, 50, 255,0). Hasil dari eksekusi perintah tersebut disimpan ke variabel warna_biru dan akan dicetak ke serial monitor.

23. Baris selanjutnya adalah perintah jeda waktu selama 100ms.

24. Setelah nilai variabel warna_merah, warna hijau dan warna biru di dapat, langkah selanjutnya adalah membandingkan ketiga nilai tersebut.

25. Baris selanjutnya program masuk ke dalam percabangan pertama untuk menentukan warna merah. Jika nilai warna merah lebih besar dari nilai warna hijau dan biru, maka artinya objek yang tadi kita ukur adalah warna merah dan cetak string "Warna merah" ke serial monitor.

26. Baris selanjutnya program masuk ke dalam percabangan kedua untuk menentukan warna hijau. Jika nilai warna hijau lebih besar dari nilai warna merah dan biru, maka artinya objek yang tadi kita ukur adalah warna merah dan cetak string "Warna hijau" ke serial monitor.

27. Baris selanjutnya program masuk ke dalam percabangan ketiga untuk menentukan warna biru. Jika nilai warna biru lebih besar dari nilai warna merah dan hijau, maka artinya objek yang tadi kita ukur adalah warna biru dan cetak string "Warna hijau" ke serial monitor.

Posting Komentar

0 Komentar