Cuprins:

Detectarea culorii folosind LED RGB: 4 pași
Detectarea culorii folosind LED RGB: 4 pași

Video: Detectarea culorii folosind LED RGB: 4 pași

Video: Detectarea culorii folosind LED RGB: 4 pași
Video: Lumini ambientale RGB (multicolore) cu telecomanda pentru masina - Unboxing si Review 2024, Iulie
Anonim
Detectarea culorii folosind LED RGB
Detectarea culorii folosind LED RGB

Ați dorit vreodată un mod automat de a detecta culoarea unui obiect? Strălucind o lumină de o anumită culoare pe obiect și uitându-vă la câtă lumină este reflectată înapoi, puteți spune ce culoare are obiectul. De exemplu, dacă străluciți o lumină roșie pe un obiect roșu, acea lumină va fi reflectată înapoi. Dacă străluciți o lumină albastră pe un obiect roșu, obiectul va absorbi o parte din acea lumină și mai puțin din ea va fi reflectată înapoi.

Pasul 1: Piese necesare

Piese necesare
Piese necesare

Am folosit un microcontroler PIC 16F887, dar aproape orice va avea o capacitate de modulare a lățimii pulsului. 1 LED RGB 1 Microcontroler 1 LED roșu standard 1 rezistor de 1 k ohm 1 Fotorezistor (schimbă rezistența în funcție de cantitatea de lumină strălucită pe el) Unele fire Am nevoie doar de microcontroler și LED RGB pentru a avea o gamă largă de detectoare de culoare, dar dacă doriți doar un circuit care detectează o culoare, nu aveți nevoie de un microcontroler - aveți nevoie doar de un LED luminos al culorii pe care doriți să o detectați. LED-ul roșu standard este „LED-ul indicator” - se aprinde atunci când este detectată culoarea potrivită.

Pasul 2: Construiți circuitul

Construiește circuitul
Construiește circuitul
Construiește circuitul
Construiește circuitul

Schema este destul de simplă și, în formă generală, este prezentată mai jos. LED-ul RGB este alimentat extern de un semnal PWM. Am pus bandă electrică în jurul fotorezistorului, astfel încât lumina ambientală să nu pătrundă - doar lumina direct deasupra acestuia va fi detectată.

Pasul 3: Codul

Acest cod a fost scris pentru un microcip PIC 16F887, dar sperăm că puteți obține ideea generală. Am folosit potențiometrul încorporat pe placa de dezvoltare pentru a varia spectrul de culori al LED-ului RGB (și nu trece prin întregul spectru, deoarece nu am 3 module PWM, dar este suficient de bun) Comentarii incluse. #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 # octet CCP2CON = 0x1D # octet PWM1CON = 0x9Bint value = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1 (int8 value) {output_low (PIN_C2); CCP1CON = value; PWM1CON = 0;} void my_setup_ccp {output_low (PIN_C1); CCP2CON = valoare;} // =================================== void main () {// A4 = sursă de alimentare pentru fotodiodoutput_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); în timp ce (1) {// Prevenirea accesului PIC la somn.//SET PWM DUTY CYCLE output_high (PIN_A) // Pinul A3 este conexiunea fotodiodă dacă (input (PIN_A3) == 1) output_high (PIN_A4); else output_low (PIN_A4); // Citiți valoarea potențiometrului pentru a schimba culoarea valorii LED = read_adc (); comutator (valoare) {caz 0: p1 = valoare; output_low (PIN_C0); p2 = valoare; pauză; caz 50: p1 = valoare; output_high (PIN_C0); p2 = valoare; pauză; cazul 100: p1 = valoare; output_high (PIN_C0); p2 = valoare; pauză; cazul 150: output_high (PIN_C0); p1 = 50; p2 = valoare; pauză; cazul 200: output_low (PIN_C0); p1 = 0; p2 = valoare; pauză; cazul 250: p1 = 0; p2 = valoare; output_low (PIN_C0); pauză; } p1 = valoare; p2 = 128 - p1; set_pwm1_duty (p1); set_pwm2_duty (p2);}}

Pasul 4: Aplicații

Aplicații!
Aplicații!

Un detector de culoare simplu ca acesta poate fi utilizat în robotică sau pentru proiecte interesante, cum ar fi separarea legosurilor după culoare, sortarea M & Ms sau ca un ajutor pentru daltonism. Sperăm că acest instructable a fost de ajutor în îmbunătățirea unui proiect pe care l-ați avut în vedere!:) LED-urile sunt bune pentru atât de multe lucruri ….

Recomandat: