Оглавление:

Обнаружение цвета с помощью светодиода RGB: 4 шага
Обнаружение цвета с помощью светодиода RGB: 4 шага

Видео: Обнаружение цвета с помощью светодиода RGB: 4 шага

Видео: Обнаружение цвета с помощью светодиода RGB: 4 шага
Видео: 💡Делаем RGB контроллер и крутой свет для видео 2024, Июль
Anonim
Обнаружение цвета с помощью светодиода RGB
Обнаружение цвета с помощью светодиода RGB

Вы когда-нибудь хотели получить автоматизированный способ определения цвета объекта? Посветив на объект светом определенного цвета и посмотрев, сколько света отражается назад, вы можете определить, какого цвета объект. Например, если вы направите красный свет на красный объект, этот свет будет отражаться обратно. Если вы направите синий свет на красный объект, он поглотит часть этого света и меньше его будет отражаться обратно.

Шаг 1: Необходимые детали

Необходимые детали
Необходимые детали

Я использовал микроконтроллер PIC 16F887, но почти любой с возможностью широтно-импульсной модуляции будет работать. 1 светодиод RGB 1 Микроконтроллер 1 Стандартный красный светодиод 1 Резистор 1 кОм 1 Фоторезистор (меняет сопротивление в зависимости от количества света, попадающего на него) Некоторые провода Мне нужен только микроконтроллер и светодиод RGB, чтобы иметь широкий спектр детекторов цвета, но если вам нужна только схема, которая определяет один цвет, вам не нужен микроконтроллер - вам нужен только яркий светодиод того цвета, который вы хотите определить. Стандартный красный светодиод - это «индикаторный светодиод» - он загорается при обнаружении нужного цвета.

Шаг 2: Постройте схему

Постройте схему
Постройте схему
Постройте схему
Постройте схему

Схема довольно проста и в общем виде представлена ниже. Светодиод RGB получает внешнее питание от сигнала ШИМ. Я обматываю фоторезистор изолентой, чтобы не проникал посторонний свет - будет обнаружен только свет прямо над ним.

Шаг 3: Код

Этот код был написан для Microchip PIC 16F887, но, надеюсь, вы сможете понять общую идею. Я использовал встроенный потенциометр на моей плате для разработки, чтобы изменить цветовой спектр светодиода RGB (и он не проходит через весь спектр, потому что у меня нет 3 модулей PWM, но этого достаточно) Комментарии включены. #include #include #include "delay.c" #include #include #use delay (clock = 4000000) #FUSES INTRC, NOWDT, NOPUT, NOMCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, NOLVP # byte CCP171CON = byte CCP2CON = 0x1D # байт 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 value) {output_low (PIN_C1); CCP2CON = value;} // =================================== void main () {// A4 = источник питания для фотодиода output_high (PIN_A4); output_high (PIN_B1); setup_adc (ADC_CLOCK_INTERNAL); set_adc_channel (0); setup_adc_ports (sAN0); // Таймер / прерывание setupenable_interrupts_interrupts (INT_T_T) my_setup_ccp2 (CCP_PWM); setup_timer_2 (T2_DIV_BY_1, 128, 1); // setup_compare (2, COMPARE_PWM | COMPARE_TIMER2); while (1) {// Предотвратить переход PIC в спящий режим.// УСТАНОВИТЬ DUTY CYCLE PWM output_A5); // Вывод A3 - это подключение фотодиода if (input (PIN_A3) == 1) output_high (PIN_A4); else output_low (PIN_A4); // Считываем значение потенциометра, чтобы изменить цвет значения светодиода = read_adc (); переключатель (значение) {case 0: p1 = value; output_low (PIN_C0); p2 = значение; перерыв; case 50: p1 = значение; output_high (PIN_C0); p2 = значение; перерыв; case 100: p1 = значение; output_high (PIN_C0); p2 = значение; перерыв; корпус 150: output_high (PIN_C0); p1 = 50; p2 = значение; перерыв; case 200: output_low (PIN_C0); p1 = 0; p2 = значение; перерыв; case 250: p1 = 0; p2 = значение; output_low (PIN_C0); перерыв; } p1 = значение; p2 = 128 - p1; set_pwm1_duty (p1); set_pwm2_duty (p2);}}

Шаг 4: Приложения

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

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

Рекомендуемые: