Satura rādītājs:

Krāsu noteikšana, izmantojot RGB LED: 4 soļi
Krāsu noteikšana, izmantojot RGB LED: 4 soļi

Video: Krāsu noteikšana, izmantojot RGB LED: 4 soļi

Video: Krāsu noteikšana, izmantojot RGB LED: 4 soļi
Video: Диодная RGB LED лента BIOM + white LED Premium обзор и подключение 2024, Jūlijs
Anonim
Krāsu noteikšana, izmantojot RGB LED
Krāsu noteikšana, izmantojot RGB LED

Vai esat kādreiz vēlējies automatizētu veidu, kā noteikt objekta krāsu? Spīdot uz objekta noteiktas krāsas gaismu un aplūkojot, cik daudz gaismas tiek atstarots atpakaļ, jūs varat noteikt, kādā krāsā objekts ir. Piemēram, ja sarkanajam objektam iedegas sarkana gaisma, šī gaisma tiks atstarota atpakaļ. Ja uz sarkana objekta spīdēsit zilu gaismu, objekts absorbēs daļu no šīs gaismas un mazāk tās tiks atstarots atpakaļ.

1. darbība. Nepieciešamās detaļas

Nepieciešamas detaļas
Nepieciešamas detaļas

Es izmantoju PIC 16F887 mikrokontrolleru, taču gandrīz jebkurš ar impulsa platuma modulācijas iespēju darbosies. 1 RGB LED1 mikrokontrolleris1 standarta sarkans LED1 1k ohm rezistors nosaka vienu krāsu, jums nav nepieciešams mikrokontrolleris - jums ir nepieciešama tikai spilgta gaismas diodes krāsa, kuru vēlaties noteikt. Standarta sarkanā gaismas diode ir "indikatora gaismas diode" - tā iedegas, kad tiek konstatēta pareizā krāsa.

2. solis: izveidojiet ķēdi

Izveidojiet ķēdi
Izveidojiet ķēdi
Izveidojiet ķēdi
Izveidojiet ķēdi

Shēma ir diezgan vienkārša, un tā vispārējā formā ir parādīta zemāk. RGB LED ārēji baro PWM signāls. Es ap fotorezistoru ievietoju elektrisko lenti, lai apkārtējā gaisma neiekļūtu - tiks atklāta tikai gaisma tieši virs tās.

3. darbība: kods

Šis kods tika rakstīts mikroshēmai PIC 16F887, bet, cerams, jūs varat iegūt vispārēju priekšstatu. Es izmantoju iebūvēto potenciometru savā izstrādes panelī, lai mainītu RGB LED krāsu spektru (un tas neiet cauri visam spektram, jo man nav 3 PWM moduļu, bet tas ir pietiekami labi). #include #include #include "delay.c" #include #include #use delay (pulkstenis = 4000000) #FUSES INTRC, NOWDT, NOPUT, NOMCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, NOLVP #baits CCP1CON = 0x17 baits CCP2CON = 0x1D#baits PWM1CON = 0x9Bint vērtība = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1 (int8 vērtība) {output_low (PIN_C2); CCP1CON = vērtība; PWM1CON = 0;} void my_setup_cc2) {output_low (PIN_C1); CCP2CON = vērtība;} // ==================================== void main () {// A4 = strāvas avots fotodiodes izvades_augstumam (PIN_A4); output_high (PIN_B1); setup_adc (ADC_CLOCK_INTERNAL); set_adc_channel (0); setup_adc_ports (sAN0); // Taimeris/Pārtraukt iestatīšanu iespējojami_interpusi (INP) my_setup_ccp2 (CCP_PWM); setup_timer_2 (T2_DIV_BY_1, 128, 1); // setup_compare (2, COMPARE_PWM | COMPARE_TIMER2); bet (1) {// Novērst PIC aizmigšanu. // Pin A3 ir fotodiodes savienojums, ja (ievade (PIN_A3) == 1) output_high (PIN_A4); else output_low (PIN_A4); // Lasīt potenciometra vērtību, lai mainītu LED vērtības krāsu = read_adc (); slēdzis (vērtība) {gadījums 0: p1 = vērtība; output_low (PIN_C0); p2 = vērtība; pārtraukums; 50. gadījums: p1 = vērtība; output_high (PIN_C0); p2 = vērtība; pārtraukums; gadījums 100: p1 = vērtība; output_high (PIN_C0); p2 = vērtība; pārtraukums; 150. gadījums: output_high (PIN_C0); p1 = 50; p2 = vērtība; pārtraukums; gadījums 200: output_low (PIN_C0); p1 = 0; p2 = vērtība; pārtraukums; 250. gadījums: p1 = 0; p2 = vērtība; output_low (PIN_C0); pārtraukums; } p1 = vērtība; p2 = 128 - p1; set_pwm1_duty (p1); set_pwm2_duty (p2);}}

4. solis: lietojumprogrammas

Pieteikumi!
Pieteikumi!

Šādu vienkāršu krāsu detektoru var izmantot robotikā vai foršos projektos, piemēram, lego atdalīšanai pēc krāsas, M & M šķirošanai vai palīglīdzeklim krāsu akluma gadījumā. Cerams, ka šī pamācība palīdzēja uzlabot jūsu iecerēto projektu!:) Gaismas diodes ir piemērotas tik daudzām lietām….

Ieteicams: