Spisu treści:

Wykrywanie kolorów za pomocą diody LED RGB: 4 kroki
Wykrywanie kolorów za pomocą diody LED RGB: 4 kroki

Wideo: Wykrywanie kolorów za pomocą diody LED RGB: 4 kroki

Wideo: Wykrywanie kolorów za pomocą diody LED RGB: 4 kroki
Wideo: LED, czyli diody świecące - jak podłączać, aby ich NIE spalić? Kurs elektroniki od FORBOT [#12] » 2024, Lipiec
Anonim
Wykrywanie kolorów za pomocą diody LED RGB
Wykrywanie kolorów za pomocą diody LED RGB

Czy kiedykolwiek chciałeś zautomatyzowanego sposobu wykrywania koloru obiektu? Oświetlając obiekt światłem o określonym kolorze i patrząc, ile światła zostało odbite, można określić kolor obiektu. Na przykład, jeśli oświetlisz czerwony przedmiot czerwonym światłem, to światło zostanie odbite. Jeśli oświetlisz czerwony obiekt niebieskim światłem, obiekt pochłonie część tego światła, a mniej zostanie odbite.

Krok 1: Potrzebne części

Potrzebne części
Potrzebne części

Użyłem mikrokontrolera PIC 16F887, ale prawie każdy z możliwością modulacji szerokości impulsu będzie działał. 1 RGB LED1 Mikrokontroler1 Standardowa czerwona dioda LED1 Rezystor 1k ohm1 Fotorezystor (zmienia rezystancję w zależności od ilości padającego na niego światła)Niektóre przewody Potrzebuję tylko mikrokontrolera i diody RGB, aby mieć szeroką gamę detektorów kolorów, ale jeśli potrzebujesz tylko układu, który wykrywa jeden kolor, nie potrzebujesz mikrokontrolera - potrzebujesz tylko jasnej diody LED o kolorze, który chcesz wykryć. Standardowa czerwona dioda LED to „wskaźnik LED” - zapala się po wykryciu odpowiedniego koloru.

Krok 2: Zbuduj obwód

Zbuduj obwód
Zbuduj obwód
Zbuduj obwód
Zbuduj obwód

Schemat jest dość prosty iw ogólnej formie pokazano poniżej. Dioda LED RGB jest zasilana zewnętrznie sygnałem PWM. Owijam fotorezystor taśmą elektryczną, aby nie wpadało do niego światło otoczenia - tylko światło znajdujące się bezpośrednio nad nim zostanie wykryte.

Krok 3: Kodeks

Ten kod został napisany dla Microchip PIC 16F887, ale miejmy nadzieję, że możesz uzyskać ogólny pomysł. Użyłem wbudowanego potencjometru na mojej płytce rozwojowej do zmiany spektrum kolorów diody RGB (i nie przechodzi przez całe spektrum, ponieważ nie mam 3 modułów PWM, ale jest wystarczająco dobry). Komentarze w zestawie. #include #include #include "delay.c"#include #include #use delay(clock = 4000000)#FUSES INTRC, NOWDT, NOPUT, NOMCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, NOLVP#bajt CCP1CON = 0x17# byte CCP2CON = 0x1D#byte PWM1CON = 0x9Bint wartość = 128;int p1 = 0;int p2 = 0;void my_setup_ccp1(int8 value){output_low(PIN_C2);CCP1CON = value;PWM1CON = 0;}void my_setup_ccp2(int8) {output_low(PIN_C1);CCP2CON = wartość;}//====================================unieważnij główne (){//A4 = źródło zasilania fotodiodyoutput_high(PIN_A4);output_high(PIN_B1);setup_adc(ADC_CLOCK_INTERNAL);set_adc_channel(0);setup_adc_ports(sAN0);//Ustawienia timera/przerwaniaenable_interrupts(INT_setup_PWpmy); my_setup_ccp2(CCP_PWM);setup_timer_2(T2_DIV_BY_1, 128, 1);//setup_compare(2, COMPARE_PWM|COMPARE_TIMER2);while(1){ // Zapobiegaj uśpieniu PIC.//SET PWM CYCLE output_high(PIN_A5); //Pin A3 to połączenie fotodiody if(input(PIN_A3) == 1) output_high(PIN_A4); else output_low(PIN_A4);//Odczytaj wartość potencjometru, aby zmienić kolor diody = read_adc(); switch (wartość) { przypadek 0: p1 = wartość; wyjście_niskie (PIN_C0); p2 = wartość; przerwa; przypadek 50: p1 = wartość; output_high(PIN_C0); p2 = wartość; przerwa; przypadek 100: p1 = wartość; output_high(PIN_C0); p2 = wartość; przerwa; przypadek 150: output_high(PIN_C0); p1 = 50; p2 = wartość; przerwa; przypadek 200: output_low(PIN_C0); p1 = 0; p2 = wartość; przerwa; przypadek 250: p1 = 0; p2 = wartość; wyjście_niskie (PIN_C0); przerwa; } p1 = wartość; p2 = 128 - p1; set_pwm1_duty(p1); set_pwm2_duty(p2);}}

Krok 4: Aplikacje

Aplikacje!
Aplikacje!

Prosty wykrywacz kolorów, taki jak ten, może być używany w robotyce lub w fajnych projektach, takich jak oddzielanie klocków lego według kolorów, sortowanie M&Ms lub jako pomoc dla ślepoty barw. Mam nadzieję, że ta instrukcja była pomocna w ulepszeniu projektu, który miałeś na myśli!:) Diody są dobre do wielu rzeczy….

Zalecana: