Daftar Isi:

Deteksi Warna Menggunakan LED RGB: 4 Langkah
Deteksi Warna Menggunakan LED RGB: 4 Langkah

Video: Deteksi Warna Menggunakan LED RGB: 4 Langkah

Video: Deteksi Warna Menggunakan LED RGB: 4 Langkah
Video: TUTORIAL 4: Cara Menggunakan LED RGB pada Arduino 2024, November
Anonim
Deteksi Warna Menggunakan LED RGB
Deteksi Warna Menggunakan LED RGB

Pernahkah Anda menginginkan cara otomatis untuk mendeteksi warna suatu objek? Dengan menyinari cahaya dengan warna tertentu pada objek dan melihat seberapa banyak cahaya yang dipantulkan kembali, Anda dapat mengetahui apa warna objek tersebut. Misalnya, jika Anda menyinari lampu merah pada objek merah, cahaya itu akan dipantulkan kembali. Jika Anda menyinari cahaya biru pada objek merah, objek akan menyerap sebagian cahaya itu dan lebih sedikit akan dipantulkan kembali.

Langkah 1: Bagian yang Dibutuhkan

Bagian yang Dibutuhkan
Bagian yang Dibutuhkan

Saya menggunakan Mikrokontroler PIC 16F887, tetapi hampir semua dengan kemampuan modulasi lebar-pulsa akan bekerja. 1 RGB LED1 Mikrokontroler1 LED merah standar1 Resistor 1k ohm1 Fotoresistor (berubah resistansi tergantung pada jumlah cahaya yang menyinarinya)Beberapa kabelSaya hanya memerlukan mikrokontroler dan LED RGB untuk memiliki berbagai detektor warna, tetapi jika Anda hanya menginginkan rangkaian yang mendeteksi satu warna, Anda tidak memerlukan mikrokontroler - Anda hanya perlu LED terang dari warna yang ingin Anda deteksi. LED merah standar adalah "LED indikator" - menyala ketika warna yang tepat terdeteksi.

Langkah 2: Bangun Sirkuit

Bangun Sirkuit
Bangun Sirkuit
Bangun Sirkuit
Bangun Sirkuit

Skemanya agak sederhana, dan dalam bentuk umum, ditunjukkan di bawah ini. LED RGB ditenagai secara eksternal oleh sinyal PWM. Saya memasang pita listrik di sekitar fotoresistor sehingga cahaya sekitar tidak masuk - hanya cahaya langsung di atasnya yang akan terdeteksi.

Langkah 3: Kode

Kode ini ditulis untuk Microchip PIC 16F887, tapi mudah-mudahan Anda bisa mendapatkan gambaran umum. Saya menggunakan potensiometer bawaan pada papan pengembangan saya untuk memvariasikan spektrum warna LED RGB (dan itu tidak melewati seluruh spektrum karena saya tidak memiliki 3 modul PWM, tetapi cukup bagus) Termasuk komentar. #include #include #include "delay.c"#include #include #use delay(clock = 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;void my_setup_ccp1(int8 value){output_low(PIN_C2);CCP1CON = nilai;PWM1CON = 0;}void my_setup_ccp2(int8) {output_low(PIN_C1);CCP2CON = nilai;}//================================== batal utama (){//A4 = sumber daya 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_TIMER_cc);pWM1_SETUP_cc saya; my_setup_ccp2(CCP_PWM);setup_timer_2(T2_DIV_BY_1, 128, 1);//setup_compare(2, COMPARE_PWM|COMPARE_TIMER2); while(1){ // Mencegah PIC dari tidur.//SET PWM DUTY CYCLE output_high(PIN_A5); //Pin A3 adalah koneksi fotodioda if(input(PIN_A3) == 1) output_high(PIN_A4); else output_low(PIN_A4);//Baca nilai potensiometer untuk mengubah warna nilai LED = read_adc(); sakelar (nilai) { kasus 0: p1 = nilai; keluaran_rendah(PIN_C0); p2 = nilai; merusak; kasus 50: p1 = nilai; keluaran_tinggi(PIN_C0); p2 = nilai; merusak; kasus 100: p1 = nilai; keluaran_tinggi(PIN_C0); p2 = nilai; merusak; kasus 150: output_high(PIN_C0); p1 = 50; p2 = nilai; merusak; kasus 200: output_low(PIN_C0); p1 = 0; p2 = nilai; merusak; kasus 250: p1 = 0; p2 = nilai; keluaran_rendah(PIN_C0); merusak; } p1 = nilai; p2 = 128 - p1; set_pwm1_duty(p1); set_pwm2_duty(p2);}}

Langkah 4: Aplikasi

Aplikasi!
Aplikasi!

Detektor warna sederhana seperti ini dapat digunakan dalam robotika, atau untuk proyek keren seperti memisahkan lego berdasarkan warna, menyortir M&M, atau sebagai bantuan untuk buta warna. Semoga instruksi ini bermanfaat dalam meningkatkan proyek yang Anda pikirkan!:) LED bagus untuk banyak hal….

Direkomendasikan: