Obsah:

Detekcia farieb pomocou RGB LED: 4 kroky
Detekcia farieb pomocou RGB LED: 4 kroky

Video: Detekcia farieb pomocou RGB LED: 4 kroky

Video: Detekcia farieb pomocou RGB LED: 4 kroky
Video: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, November
Anonim
Detekcia farieb pomocou RGB LED
Detekcia farieb pomocou RGB LED

Už ste niekedy chceli automatizovaný spôsob zisťovania farby objektu? Svietením svetla určitej farby na predmet a pohľadom na to, koľko svetla sa odrazí späť, môžete zistiť, akú farbu má predmet. Ak napríklad na červený predmet posvietite červeným svetlom, toto svetlo sa odrazí späť. Ak na červený predmet posvietite modrým svetlom, objekt absorbuje časť tohto svetla a menej sa odrazí späť.

Krok 1: Potrebné diely

Potrebné diely
Potrebné diely

Použil som mikrokontrolér PIC 16F887, ale takmer každý s možnosťou modulácie pulznej šírky bude fungovať. 1 RGB LED1 Mikrokontrolér1 Štandardná červená LED1 1 ohm odpor detekuje jednu farbu, nepotrebujete mikrokontrolér - potrebujete iba jasnú LED farbu, ktorú chcete detekovať. Štandardná červená LED je „indikačná LED“- rozsvieti sa, keď je detekovaná správna farba.

Krok 2: Vybudujte obvod

Vybudujte obvod
Vybudujte obvod
Vybudujte obvod
Vybudujte obvod

Schéma je pomerne jednoduchá a vo všeobecnej forme je uvedená nižšie. RGB LED je externe napájaná signálom PWM. Okolo fotorezistora som umiestnil elektrickú pásku, aby sa nedostalo okolité svetlo - detekuje sa iba svetlo priamo nad ním.

Krok 3: Kód

Tento kód bol napísaný pre Microchip PIC 16F887, ale dúfajme, že získate všeobecnú predstavu. Vstavaný potenciometer na vývojovej doske som použil na zmenu farebného spektra RGB LED (a neprechádza celým spektrom, pretože nemám 3 moduly PWM, ale je to dosť dobré). #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 hodnota = 128; int p1 = 0; int p2 = 0; neplatné my_setup_ccp1 (hodnota int8) {output_low (PIN_C2); CCP1CON = hodnota; PWM1CON = 0;} neplatná moja_setup_ccp2 {output_low (PIN_C1); CCP2CON = hodnota;} // ========================================== neplatné hlavné () {// A4 = zdroj energie pre 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_TIM2); INT_TIM2 my_setup_ccp2 (CCP_PWM); setup_timer_2 (T2_DIV_BY_1, 128, 1); // setup_compare (2, COMPARE_PWM | COMPARE_TIMER2); while (1) {// Zabránenie prechodu PIC do režimu spánku. //SET PWM DUTY CYCLE output_high (PIN) // Pin A3 je pripojenie fotodiódy if (vstup (PIN_A3) == 1) output_high (PIN_A4); else output_low (PIN_A4); // Načítanie hodnoty potenciometra na zmenu farby hodnoty LED = read_adc (); prepínač (hodnota) {prípad 0: p1 = hodnota; output_low (PIN_C0); p2 = hodnota; prestávka; prípad 50: p1 = hodnota; output_high (PIN_C0); p2 = hodnota; prestávka; prípad 100: p1 = hodnota; output_high (PIN_C0); p2 = hodnota; prestávka; prípad 150: output_high (PIN_C0); p1 = 50; p2 = hodnota; prestávka; prípad 200: output_low (PIN_C0); p1 = 0; p2 = hodnota; prestávka; prípad 250: p1 = 0; p2 = hodnota; output_low (PIN_C0); prestávka; } p1 = hodnota; p2 = 128 - p1; set_pwm1_duty (p1); set_pwm2_duty (p2);}}

Krok 4: Aplikácie

Aplikácie!
Aplikácie!

Jednoduchý detektor farieb, ako je tento, je možné použiť v robotike alebo na skvelé projekty, ako je oddelenie lega podľa farby, triedenie M & M alebo ako pomoc pre farbosleposť. Našťastie tento návod bol nápomocný pri vylepšovaní projektu, ktorý ste mali na mysli!:) LED diódy sú dobré na toľko vecí ….

Odporúča: