Isi kandungan:

Pengesanan Warna Menggunakan LED RGB: 4 Langkah
Pengesanan Warna Menggunakan LED RGB: 4 Langkah

Video: Pengesanan Warna Menggunakan LED RGB: 4 Langkah

Video: Pengesanan Warna Menggunakan LED RGB: 4 Langkah
Video: Dikira Warga Gadungan Ternyata Gerakannya Bikin Ngeriii😱 2024, Julai
Anonim
Pengesanan Warna Menggunakan LED RGB
Pengesanan Warna Menggunakan LED RGB

Adakah anda pernah mahukan kaedah automatik untuk mengesan warna objek? Dengan menyinari warna tertentu pada objek dan melihat seberapa banyak cahaya dipantulkan ke belakang, anda dapat mengetahui warna apa objek itu. Contohnya, jika anda memancarkan cahaya merah pada objek merah, cahaya itu akan dipantulkan kembali. Sekiranya anda menyinari cahaya biru pada objek merah, objek itu akan menyerap sebahagian cahaya itu dan kurang dari itu akan dipantulkan kembali.

Langkah 1: Bahagian Diperlukan

Bahagian Diperlukan
Bahagian Diperlukan

Saya menggunakan PIC 16F887 Microcontroller, tetapi hampir semua dengan keupayaan modulasi lebar-nadi akan berfungsi. 1 RGB LED1 Mikrokontroler1 LED merah standard1 1k ohm perintang1 Fotoresistor (mengubah rintangan bergantung pada jumlah cahaya yang bersinar di atasnya) Beberapa wayarSaya hanya memerlukan mikrokontroler dan RGB LED untuk mempunyai pelbagai pengesan warna, tetapi jika anda hanya mahukan litar yang mengesan satu warna, anda tidak memerlukan mikrokontroler - anda hanya memerlukan LED warna terang yang anda ingin mengesan. LED merah standard adalah "LED penunjuk" - ia akan menyala apabila warna yang tepat dikesan.

Langkah 2: Bina Litar

Bina Litar
Bina Litar
Bina Litar
Bina Litar

Skema agak mudah, dan dalam bentuk umum, ditunjukkan di bawah. LED RGB dikuasakan secara luaran oleh isyarat PWM. Saya meletakkan pita elektrik di sekitar photoresistor supaya cahaya ambien tidak masuk - hanya cahaya tepat di atasnya yang akan dapat dikesan.

Langkah 3: Kodnya

Kod ini ditulis untuk Microchip PIC 16F887, tetapi semoga anda dapat memperoleh idea umum. Saya menggunakan potensiometer terbina dalam papan pengembangan saya untuk mengubah spektrum warna LED RGB (dan tidak melalui keseluruhan spektrum kerana saya tidak mempunyai 3 modul PWM, tetapi cukup baik) Komen disertakan. #include #include #include "delay.c" #include #include #use delay (jam = 4000000) #FUSES INTRC, NOWDT, NOPUT, NOMCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, NOLVP # byte CCP1CON = 0x17 # byte CCP2CON = 0x1D # byte PWM1CON = 0x9Bint nilai = 128; int p1 = 0; int p2 = 0; batal my_setup_ccp1 (nilai int8) {output_low (PIN_C2); CCP1CON = nilai; PWM1CON = 0;} kosongkan_setup_cc2) {output_low (PIN_C1); CCP2CON = nilai;} // =================================== batal utama () {// A4 = sumber kuasa untuk photodiodeoutput_high (PIN_A4); output_high (PIN_B1); setup_adc (ADC_CLOCK_INTERNAL); set_adc_channel (0); setup_adc_ports (sAN0); // Timer / Interrupt setupenable_interrupts (INT_Perhatian_) my_setup_ccp2 (CCP_PWM); setup_timer_2 (T2_DIV_BY_1, 128, 1); // setup_compare (2, COMPARE_PWM | COMPARE_TIMER2); sementara (1) {// Cegah PIC daripada tidur.//SET PWM DUTY CYCLE output_h // Pin A3 adalah sambungan photodiod jika (input (PIN_A3) == 1) output_high (PIN_A4); output_low lain (PIN_A4); // Nilai potensiometer untuk menukar warna nilai LED = read_adc (); suis (nilai) {kes 0: p1 = nilai; output_low (PIN_C0); p2 = nilai; rehat; kes 50: p1 = nilai; output_high (PIN_C0); p2 = nilai; rehat; kes 100: p1 = nilai; output_high (PIN_C0); p2 = nilai; rehat; kes 150: output_high (PIN_C0); p1 = 50; p2 = nilai; rehat; kes 200: output_low (PIN_C0); p1 = 0; p2 = nilai; rehat; kes 250: p1 = 0; p2 = nilai; output_low (PIN_C0); rehat; } p1 = nilai; p2 = 128 - p1; set_pwm1_duty (p1); set_pwm2_duty (p2);}}

Langkah 4: Permohonan

Permohonan!
Permohonan!

Alat pengesan warna yang sederhana seperti ini dapat digunakan dalam robotik, atau untuk projek keren seperti memisahkan lego dengan warna, menyusun M & Ms, atau sebagai bantuan untuk rabun warna. Semoga pengajaran ini dapat membantu dalam meningkatkan projek yang anda fikirkan!:) LED bagus untuk banyak perkara….

Disyorkan: