Съдържание:

Откриване на цвят с помощта на RGB LED: 4 стъпки
Откриване на цвят с помощта на RGB LED: 4 стъпки

Видео: Откриване на цвят с помощта на RGB LED: 4 стъпки

Видео: Откриване на цвят с помощта на RGB LED: 4 стъпки
Видео: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Ноември
Anonim
Откриване на цвят с помощта на RGB LED
Откриване на цвят с помощта на RGB LED

Искали ли сте някога автоматизиран начин за откриване на цвета на обект? Като осветявате обекта с определен цвят и гледате колко светлина се отразява обратно, можете да определите какъв цвят е обектът. Например, ако осветете червена светлина върху червен предмет, тази светлина ще се отрази обратно. Ако осветете синя светлина върху червен предмет, обектът ще абсорбира част от тази светлина и по -малко от нея ще се отрази обратно.

Стъпка 1: Необходими части

Необходими части
Необходими части

Използвах микроконтролер PIC 16F887, но почти всеки с възможност за модулация с широчина на импулса ще работи. 1 RGB LED1 Микроконтролер 1 Стандартен червен LED1 1k ohm резистор 1 Фоторезистор (променя съпротивлението в зависимост от количеството светлина, излъчвана върху него) Някои проводници Имам нужда само от микроконтролера и RGB LED, за да има широка гама от цветни детектори, но ако искате само верига, която открива един цвят, нямате нужда от микроконтролер - имате нужда само от ярък светодиод с цвета, който искате да откриете. Стандартният червен светодиод е "индикаторният светодиод" - той светва, когато бъде открит правилния цвят.

Стъпка 2: Изградете веригата

Изградете веригата
Изградете веригата
Изградете веригата
Изградете веригата

Схемата е доста проста и в общ вид е показана по -долу. RGB светодиодът се захранва външно от PWM сигнал. Поставих електрическа лента около фоторезистора, така че околната светлина да не влиза - само светлината точно над нея ще бъде засечена.

Стъпка 3: Кодът

Този код е написан за Microchip PIC 16F887, но се надяваме, че можете да получите общата представа. Използвах вградения потенциометър на дъската си за разработка, за да променя цветовия спектър на RGB LED (и той не преминава през целия спектър, защото нямам 3 PWM модула, но е достатъчно добър) Включени са коментари. #include #include #include "delay.c" #include #include #use delay (clock = 4000000) #FUSES INTRC, NOWDT, NOPUT, NOMCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, NOLVP #байт CCP1CON байт CCP2CON = 0x1D#байт PWM1CON = 0x9Bint стойност = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1 (int8 стойност) {output_low (PIN_C2); CCP1CON = стойност; PWM1CON = 0;} void my_setup {output_low (PIN_C1); CCP2CON = стойност;} // =================================== void main () {// A4 = източник на захранване за фотодиоден изход_висш (PIN_A4); изход_висок (PIN_B1); setup_adc (ADC_CLOCK_INTERNAL); set_adc_channel (0); my_setup_ccp2 (CCP_PWM); setup_timer_2 (T2_DIV_BY_1, 128, 1); // setup_compare (2, COMPARE_PWM | COMPARE_TIMER2); while (1) {// Предотвратяване на PIC да премине в режим на заспиване. // Pin A3 е фотодиодната връзка if (input (PIN_A3) == 1) output_high (PIN_A4); else output_low (PIN_A4); // Прочетете стойността на потенциометъра за промяна на цвета на LED стойността = read_adc (); ключ (стойност) {случай 0: p1 = стойност; output_low (PIN_C0); p2 = стойност; прекъсване; случай 50: p1 = стойност; output_high (PIN_C0); p2 = стойност; прекъсване; случай 100: p1 = стойност; output_high (PIN_C0); p2 = стойност; прекъсване; случай 150: output_high (PIN_C0); р1 = 50; p2 = стойност; прекъсване; случай 200: output_low (PIN_C0); p1 = 0; p2 = стойност; прекъсване; случай 250: p1 = 0; p2 = стойност; output_low (PIN_C0); прекъсване; } p1 = стойност; p2 = 128 - p1; set_pwm1_duty (p1); set_pwm2_duty (p2);}}

Стъпка 4: Приложения

Приложения!
Приложения!

Един прост цветен детектор като този може да се използва в роботиката или за готини проекти като разделяне на легота по цвят, сортиране на M&M или като помощно средство за слепота на цветовете. Надяваме се, че тази инструкция е била полезна за подобряване на проект, който сте имали предвид!:) Светодиодите са добри за толкова много неща….

Препоръчано: