
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
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
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
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
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:
Cum se face o sonerie fără atingere, detectarea temperaturii corpului, GY-906, 433 MHz folosind Arduino: 3 pași

Cum se face o sonerie fără atingere, detectarea temperaturii corpului, GY-906, 433 MHz Folosind Arduino: Astăzi vom face o sonerie fără atingere, aceasta va detecta temperatura corpului. În situația actuală, este foarte important să știm dacă temperatura corpului cuiva este mai mare decât în mod normal, atunci când cineva se bate. Acest proiect va afișa lumină roșie dacă detectează
Detectarea culorilor în Python folosind OpenCV: 8 pași

Detectarea culorilor în Python folosind OpenCV: Bună ziua! Această instrucțiune este utilizată pentru a ghida despre cum să extrageți o culoare specifică dintr-o imagine din python utilizând biblioteca openCV. Dacă sunteți nou în această tehnică, atunci nu vă faceți griji, la sfârșitul acestui ghid veți putea să vă programați propria culoare
Urmărirea obiectelor bazate pe detectarea culorii: 10 pași

Urmărirea obiectelor bazate pe detectarea culorilor: Povestea Am făcut acest proiect pentru a învăța procesarea imaginilor folosind Raspberry PI și CV deschis. Pentru a face acest proiect mai interesant, am folosit două servomotoare SG90 și am montat camera pe acesta. Un motor folosit pentru a se deplasa orizontal și al doilea motor folosit pentru a se deplasa vertical
Detectarea obiectelor cu Dragonboard 410c sau 820c folosind OpenCV și Tensorflow .: 4 pași

Detectarea obiectelor W / Dragonboard 410c sau 820c folosind OpenCV și Tensorflow .: Acest instructable descrie cum să instalați OpenCV, Tensorflow și cadrele de învățare automată pentru Python 3.5 pentru a rula aplicația de detectare a obiectelor
Tranziția culorii pe POP-X2 GLCD folosind un buton: 6 pași

Tranziția culorii pe POP-X2 GLCD Utilizarea unui buton: Practic, acest proiect prezintă o caracteristică a unei plăci de control pe care îmi place să o folosesc. Placa POP-X2, fabricată de INEX, are un GLCD încorporat, un buton, porturi I / O și componente similare celorlalte plăci de controler. Vă rugăm să verificați manualul tabloului pentru