INHOUDSOPGAWE:

Kleuropsporing met behulp van RGB LED: 4 stappe
Kleuropsporing met behulp van RGB LED: 4 stappe

Video: Kleuropsporing met behulp van RGB LED: 4 stappe

Video: Kleuropsporing met behulp van RGB LED: 4 stappe
Video: 10 Coolest SCIENCE TOY GADGETS That Will BLOW YOUR MIND 2024, Julie
Anonim
Kleuropsporing met behulp van RGB LED
Kleuropsporing met behulp van RGB LED

Het u al ooit 'n outomatiese manier gehad om die kleur van 'n voorwerp op te spoor? Deur die lig van 'n sekere kleur op die voorwerp te laat skyn en te kyk hoeveel lig daardeur weerkaats word, kan u sien watter kleur die voorwerp is. As u byvoorbeeld 'n rooi lig op 'n rooi voorwerp skyn, word die lig weerkaats. As u 'n blou lig op 'n rooi voorwerp skyn, absorbeer die voorwerp 'n deel van die lig en minder daarvan word weerkaats.

Stap 1: Onderdele benodig

Onderdele benodig
Onderdele benodig

Ek het 'n PIC 16F887-mikrokontroleerder gebruik, maar byna almal met 'n polswydte-modulasie-vermoë sal werk. 1 RGB LED1 Mikrokontroller 1 Standaard rooi LED 1 1 k ohm weerstand 1 Fotoresistor (verander weerstand afhangende van die hoeveelheid lig wat daarop skyn) Sommige drade Ek benodig slegs die mikrokontroleerder en RGB LED om 'n wye reeks kleurdetektore te hê, maar as u net 'n stroombaan wil hê ontdek een kleur, u het nie 'n mikrobeheerder nodig nie - u benodig slegs 'n helder LED van die kleur wat u wil opspoor. Die standaard rooi LED is die "aanwyser -LED" - dit brand wanneer die regte kleur opgespoor word.

Stap 2: Bou die stroombaan

Bou die stroombaan
Bou die stroombaan
Bou die stroombaan
Bou die stroombaan

Die skema is redelik eenvoudig en word in die algemene vorm hieronder getoon. Die RGB -LED word ekstern aangedryf deur 'n PWM -sein. Ek sit elektriese band om die fotoresistor sodat omringende lig nie binnedring nie - slegs die lig direk daarbo sal opgespoor word.

Stap 3: Die kode

Hierdie kode is geskryf vir 'n Microchip PIC 16F887, maar hopelik kan u die algemene idee kry. Ek het die ingeboude potensiometer op my ontwikkelbord gebruik om die kleurspektrum van die RGB LED te verander (en dit gaan nie deur die hele spektrum nie, want ek het nie 3 PWM-modules nie, maar dit is goed genoeg) Opmerkings ingesluit. #include #include #include "delay.c" #include #include #use delay (clock = 4000000) #FUSES INTRC, NOWDT, NOPUT, NOMCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, NOLVP #byte CCP1CON = 0x17 # byte CCP2CON = 0x1D#byte PWM1CON = 0x9Bint waarde = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1 (int8 waarde) {output_low (PIN_C2); CCP1CON = waarde; PWM1CON = 0;} ongeldig my_setup_cc2 {output_low (PIN_C1); CCP2CON = waarde;} // ============================================ leeg hoof () {// A4 = kragbron vir fotodiodeoutput_high (PIN_A4); output_high (PIN_B1); setup_adc (ADC_CLOCK_INTERNAL); set_adc_channel (0); setup_adc_ports (sAN0); // Timer/Interrupt setupenable_interrupts (INT_TIMER ()) my_setup_ccp2 (CCP_PWM); setup_timer_2 (T2_DIV_BY_1, 128, 1); // setup_compare (2, COMPARE_PWM | COMPARE_TIMER2); terwyl (1) {// Voorkom dat PIC gaan slaap.//SET PWM DUTY CYCLE output_high (PIN_); // Pin A3 is die fotodiodeverbinding as (input (PIN_A3) == 1) output_high (PIN_A4); anders output_low (PIN_A4); // Lees die waarde van die potensiometer om die kleur van die LED -waarde te verander = read_adc (); skakelaar (waarde) {geval 0: p1 = waarde; output_low (PIN_C0); p2 = waarde; breek; saak 50: p1 = waarde; output_high (PIN_C0); p2 = waarde; breek; geval 100: p1 = waarde; output_high (PIN_C0); p2 = waarde; breek; saak 150: output_high (PIN_C0); p1 = 50; p2 = waarde; breek; saak 200: output_low (PIN_C0); p1 = 0; p2 = waarde; breek; saak 250: p1 = 0; p2 = waarde; output_low (PIN_C0); breek; } p1 = waarde; p2 = 128 - p1; stel_pwm1_plig (p1); stel_pwm2_plig (p2);}}

Stap 4: Aansoeke

Aansoeke!
Aansoeke!

'N Eenvoudige kleurdetektor soos hierdie kan in robotika gebruik word, of vir cool projekte, soos die skeiding van lego's volgens kleur, sortering van M & M's, of as hulpmiddel vir kleurblindheid. Hopelik was hierdie instruksies nuttig om 'n projek wat u in gedagte gehad het, te verbeter!:) LED's is goed vir soveel dinge …

Aanbeveel: