Мазмұны:

RGB LED көмегімен түсті анықтау: 4 қадам
RGB LED көмегімен түсті анықтау: 4 қадам

Бейне: RGB LED көмегімен түсті анықтау: 4 қадам

Бейне: RGB LED көмегімен түсті анықтау: 4 қадам
Бейне: Диодтың RGB LED таспасы BIOM + ақ түсті жарықдиодты Премиум шолу және байланыс 2024, Шілде
Anonim
RGB светодиоды көмегімен түстерді анықтау
RGB светодиоды көмегімен түстерді анықтау

Сіз объектінің түсін анықтаудың автоматтандырылған әдісін алғыңыз келді ме? Нәрсеге белгілі бір түстің жарығын түсіріп, артқа қанша сәуле шағылатынын қарап, сіз заттың қандай түсті екенін біле аласыз. Мысалы, егер сіз қызыл затқа қызыл жарық түсірсеңіз, ол жарық кері шағылысады. Егер сіз қызыл затқа көк жарық берсеңіз, онда ол сәуленің бір бөлігін сіңіреді, ал аз бөлігі кері шағылысады.

1 -қадам: қажет бөлшектер

Қажетті бөлшектер
Қажетті бөлшектер

Мен PIC 16F887 микроконтроллерін қолдандым, бірақ импульсті ені модуляциялау мүмкіндігі бар кез келген дерлік жұмыс істейді. 1 RGB LED 1 Микроконтроллер1 Стандартты қызыл жарық диоды 1к Ом резисторы 1 Фоторезистор (қарсылықтың түсуіне байланысты қарсылықты өзгертеді) Кейбір сымдар Микроконтроллер мен RGB светодиодының түс детекторларының кең ауқымы болуы үшін қажет, бірақ егер сіз тек схеманы қажет етсеңіз. бір түсті анықтайды, сізге микроконтроллер қажет емес - сізге анықтағыңыз келетін түстің жарқын жарық диоды қажет. Стандартты қызыл жарық диоды - «индикаторлық жарық диоды» - ол дұрыс түс анықталған кезде жанады.

2 -қадам: Схеманы құрыңыз

Циклды құрыңыз
Циклды құрыңыз
Циклды құрыңыз
Циклды құрыңыз

Схема өте қарапайым және жалпы түрде төменде көрсетілген. RGB светодиоды PWM сигналымен қоректенеді, мен фоторезистордың айналасына электр таспасын саламын, сондықтан сыртқы жарық түспейді - тек оның үстіндегі жарық анықталады.

3 -қадам: Кодекс

Бұл код PIC 16F887 Microchip үшін жазылған, бірақ сіз жалпы түсінікті аласыз деп үміттенеміз. Мен RGB светодиодының түс спектрін өзгерту үшін кіріктірілген потенциометрді қолдандым (және ол барлық спектрден өтпейді, себебі менде 3 PWM модулі жоқ, бірақ бұл жеткілікті жақсы) Пікірлер. #include #include #include «delay.c» #include #include #use delay (сағат = 4000000) #FUSES INTRC, NOWDT, NOPUT, NOMCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, NOLVP #байт CCT1 байт CCP2CON = 0x1D#байт PWM1CON = 0x9Bint мәні = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1 (int8 мән) {output_low (PIN_C2); CCP1CON = мән; PWM1CON = 0;} жарамсыз my_setup_ccp2 {output_low (PIN_C1); CCP2CON = мән;} // ================================ void main () {// A4 = photodiodeoutput_high үшін қуат көзі (PIN_A4); output_high (PIN_B1); setup_adc (ADC_CLOCK_INTERNAL); set_adc_channel (0); setup_adc_ports (sAN0); // Timer/Interrupt setupenable_interrups_PP_PP_P_P_P_P_P_P_P_P_T_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_C_Z_P_T_T_C_C_C_C_C_C_P_T_C_C_C_C_C_C_C_C_C_T_ my_setup_ccp2; // A3 түйреуіші - фотодиод қосылымы, егер (кіріс (PIN_A3) == 1) шығыс_жоғары (PIN_A4); else output_low (PIN_A4); // LED мәнінің түсін өзгерту үшін потенциометрдің мәнін оқу = read_adc (); switch (мән) {0 жағдай: p1 = мән; output_low (PIN_C0); p2 = мән; үзіліс; 50 жағдай: p1 = мән; шығару_жоғары (PIN_C0); p2 = мән; үзіліс; жағдай 100: p1 = мән; output_high (PIN_C0); p2 = мән; үзіліс; 150 жағдай: шығару_жоғары (PIN_C0); p1 = 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 -ді сұрыптау немесе түс соқырлығына көмек ретінде салқын жобаларда қолдануға болады. Бұл нұсқаулық сіз ойлаған жобаны жақсартуға көмектесті деп үміттенемін!:) Светодиодтар көп нәрсеге жақсы ….

Ұсынылған: