Оглавление:
Видео: Обнаружение цвета с помощью светодиода RGB: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:55
Вы когда-нибудь хотели получить автоматизированный способ определения цвета объекта? Посветив на объект светом определенного цвета и посмотрев, сколько света отражается назад, вы можете определить, какого цвета объект. Например, если вы направите красный свет на красный объект, этот свет будет отражаться обратно. Если вы направите синий свет на красный объект, он поглотит часть этого света и меньше его будет отражаться обратно.
Шаг 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 или как помощь при дальтонизме. Надеюсь, это руководство помогло улучшить задуманный вами проект!:) Светодиоды хороши для очень многих вещей….
Рекомендуемые:
Как использовать фотоэлемент для изменения цвета светодиода RGB: 3 шага
Как использовать фотоэлемент для изменения цвета светодиода RGB: для моего проекта Arduino, часть 01, моя первоначальная идея заключалась в том, чтобы использовать датчик температуры для включения и выключения светодиода, но, увы, мой датчик температуры еще не появился, что оставило меня в покое. выбрал из датчиков, имеющихся в стартовом наборе Elegoo, и интересно, если
Управление яркостью светодиода с помощью потенциометра с помощью Arduino: 3 шага
Управление яркостью светодиода с помощью потенциометра с помощью Arduino: в этом проекте мы будем управлять яркостью светодиода с помощью переменного сопротивления, обеспечиваемого потенциометром. Это очень простой проект для новичка, но он научит вас многим вещам о работе потенциометра и светодиода, которые необходимы для выполнения адва
Асинхронное обнаружение препятствий с помощью ультразвука: 4 шага
Асинхронное обнаружение препятствий с помощью ультразвука: для развлечения я создаю робота, которого хочу автономно перемещать внутри дома. Это долгая работа, и я делаю ее шаг за шагом. Этот поучительный акцент на обнаружении препятствий с помощью Arduino Mega. Ультразвуковые датчики HC-SR04 против HY-SRF05 дешевы и
Обнаружение цвета в Python с использованием OpenCV: 8 шагов
Обнаружение цвета в Python с использованием OpenCV: Здравствуйте! Это руководство используется в качестве руководства по извлечению определенного цвета из изображения в Python с использованием библиотеки openCV. Если вы новичок в этой технике, не волнуйтесь, в конце этого руководства вы сможете запрограммировать свой собственный цвет
Обнаружение опухолей головного мозга с помощью МРТ с помощью Matlab: 6 шагов
Обнаружение опухоли головного мозга с помощью МРТ с помощью Matlab: Авторы: Мадхумита Каннан, Генри Нгуен, Эшли Уррутия Авила, Мей Джин Этот код MATLAB представляет собой программу для определения точного размера, формы и местоположения опухоли, обнаруженной на снимках МРТ головного мозга пациента. Эта программа изначально предназначена для работы с детектором опухолей