Innholdsfortegnelse:

Fargedeteksjon ved bruk av RGB LED: 4 trinn
Fargedeteksjon ved bruk av RGB LED: 4 trinn

Video: Fargedeteksjon ved bruk av RGB LED: 4 trinn

Video: Fargedeteksjon ved bruk av RGB LED: 4 trinn
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Juli
Anonim
Fargedeteksjon ved bruk av RGB LED
Fargedeteksjon ved bruk av RGB LED

Har du noen gang ønsket en automatisk måte å oppdage fargen på et objekt? Ved å skinne lys av en bestemt farge på objektet og se på hvor mye lys som reflekteres tilbake, kan du fortelle hvilken farge objektet har. For eksempel, hvis du skinner et rødt lys på et rødt objekt, vil det lyset bli reflektert tilbake. Hvis du skinner et blått lys på et rødt objekt, vil objektet absorbere noe av det lyset og mindre av det vil bli reflektert tilbake.

Trinn 1: Nødvendige deler

Nødvendige deler
Nødvendige deler

Jeg brukte en PIC 16F887 mikrokontroller, men nesten alle med pulsbreddemoduleringsevne vil fungere. 1 RGB LED1 Mikrokontroller 1 Standard rød LED 1 1 k ohm motstand 1 Fotoresistor (endrer motstand avhengig av mengden lys som lyste på den) Noen ledninger Jeg trenger bare mikrokontrolleren og RGB LED for å ha et bredt spekter av fargedetektorer, men hvis du bare vil ha en krets som oppdager en farge, du trenger ikke en mikrokontroller - du trenger bare en lysende LED av fargen du vil oppdage. Den vanlige røde LED -en er "indikator -LED" - den lyser når riktig farge oppdages.

Trinn 2: Bygg kretsen

Bygg kretsen
Bygg kretsen
Bygg kretsen
Bygg kretsen

Skjematikken er ganske enkel, og er generelt vist nedenfor. RGB -LED -en drives eksternt av et PWM -signal. Jeg legger elektrisk tape rundt fotoresistoren slik at omgivelseslys ikke kommer inn - bare lyset rett over det vil bli oppdaget.

Trinn 3: Koden

Denne koden ble skrevet for en Microchip PIC 16F887, men forhåpentligvis kan du få den generelle ideen. Jeg brukte det innebygde potensiometeret på utviklingsbordet mitt for å variere fargespekteret til RGB LED (og det går ikke gjennom hele spekteret fordi jeg ikke har 3 PWM-moduler, men det er bra nok) Kommentarer inkludert. #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 verdi = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1 (int8 verdi) {output_low (PIN_C2); CCP1CON = verdi; PWM1CON = 0;} ugyldig my_setup_cc2 {output_low (PIN_C1); CCP2CON = verdi;} // ========================================= ugyldig hovedtype () {// A4 = strømkilde for fotodiodeoutput_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_); my_setup_ccp2 (CCP_PWM); setup_timer_2 (T2_DIV_BY_1, 128, 1); // setup_compare (2, COMPARE_PWM | COMPARE_TIMER2); mens (1) {// Forhindre at PIC går i dvale.//SET PWM DUTY CYCLE output_high (PIN_5;) // Pin A3 er fotodiodeforbindelsen hvis (input (PIN_A3) == 1) output_high (PIN_A4); annet output_low (PIN_A4); // Les verdien av potensiometeret for å endre fargen på LED -verdien = read_adc (); switch (verdi) {case 0: p1 = verdi; output_low (PIN_C0); p2 = verdi; gå i stykker; sak 50: p1 = verdi; output_high (PIN_C0); p2 = verdi; gå i stykker; sak 100: p1 = verdi; output_high (PIN_C0); p2 = verdi; gå i stykker; sak 150: output_high (PIN_C0); pl = 50; p2 = verdi; gå i stykker; sak 200: output_low (PIN_C0); p1 = 0; p2 = verdi; gå i stykker; sak 250: p1 = 0; p2 = verdi; output_low (PIN_C0); gå i stykker; } p1 = verdi; p2 = 128 - p1; set_pwm1_duty (p1); set_pwm2_duty (p2);}}

Trinn 4: Søknader

Applikasjoner!
Applikasjoner!

En enkel fargedetektor som denne kan brukes i robotikk, eller for kule prosjekter som å skille legoer etter farge, sortere M & M, eller som et hjelpemiddel for fargeblindhet. Forhåpentligvis var denne instruktøren nyttig for å forbedre et prosjekt du hadde i tankene!:) LED er bra for så mange ting….

Anbefalt: