Inhoudsopgave:

Kleurdetectie met RGB LED: 4 stappen
Kleurdetectie met RGB LED: 4 stappen

Video: Kleurdetectie met RGB LED: 4 stappen

Video: Kleurdetectie met RGB LED: 4 stappen
Video: Kleurdetectie SPECTRO - Sensor Instruments | Sensor Partners 2024, Juli-
Anonim
Kleurdetectie met RGB LED
Kleurdetectie met RGB LED

Heb je ooit een geautomatiseerde manier gewild om de kleur van een object te detecteren? Door licht van een bepaalde kleur op het object te schijnen en te kijken hoeveel licht er wordt teruggekaatst, kun je zien welke kleur het object heeft. Als je bijvoorbeeld een rood licht op een rood voorwerp schijnt, wordt dat licht teruggekaatst. Als je een blauw licht op een rood object schijnt, zal het object een deel van dat licht absorberen en zal er minder van worden teruggekaatst.

Stap 1: benodigde onderdelen

Onderdelen nodig
Onderdelen nodig

Ik heb een PIC 16F887 Microcontroller gebruikt, maar bijna elke microcontroller met pulsbreedtemodulatie zal werken. 1 RGB LED1 Microcontroller1 Standaard rode LED1 Weerstand van 1k ohm1 Fotoweerstand (verandert de weerstand afhankelijk van de hoeveelheid licht die erop valt)Sommige dradenIk heb alleen de microcontroller en RGB LED nodig om een breed scala aan kleurdetectoren te hebben, maar als je alleen een circuit wilt dat detecteert één kleur, je hebt geen microcontroller nodig - je hebt alleen een heldere LED nodig van de kleur die je wilt detecteren. De standaard rode LED is de "indicator LED" - deze licht op wanneer de juiste kleur wordt gedetecteerd.

Stap 2: Bouw het circuit

Bouw het circuit
Bouw het circuit
Bouw het circuit
Bouw het circuit

Het schema is vrij eenvoudig en wordt in algemene vorm hieronder weergegeven. De RGB-LED wordt extern gevoed door een PWM-signaal. Ik heb isolatietape rond de fotoweerstand aangebracht, zodat er geen omgevingslicht binnenkomt - alleen het licht er direct boven wordt gedetecteerd.

Stap 3: De code

Deze code is geschreven voor een Microchip PIC 16F887, maar hopelijk krijg je het algemene idee. Ik heb de ingebouwde potentiometer op mijn ontwikkelbord gebruikt om het kleurenspectrum van de RGB-LED te variëren (en het gaat niet door het hele spectrum omdat ik geen 3 PWM-modules heb, maar het is goed genoeg) Opmerkingen inbegrepen. #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;}void my_setup_ccp2(int8 waarde) {output_low(PIN_C1);CCP2CON = waarde;}//=================================== ongeldig hoofd (){//A4 = stroombron voor 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_CPTIMER2);p my_setup_ccp2(CCP_PWM);setup_timer_2(T2_DIV_BY_1, 128, 1);//setup_compare(2, COMPARE_PWM|COMPARE_TIMER2);terwijl(1){ // Voorkom dat PIC in de sluimerstand gaat.//SET PWM DUTY CYCLE output_high (PIN_A5); // Pin A3 is de fotodiode-verbinding if (input (PIN_A3) == 1) output_high (PIN_A4); else output_low(PIN_A4);//Lees de waarde van de potentiometer om de kleur van de LED-waarde te veranderen = read_adc(); schakelaar (waarde) { geval 0: p1 = waarde; output_low(PIN_C0); p2 = waarde; pauze; geval 50: p1 = waarde; output_high (PIN_C0); p2 = waarde; pauze; geval 100: p1 = waarde; output_high (PIN_C0); p2 = waarde; pauze; geval 150: output_high (PIN_C0); p1 = 50; p2 = waarde; pauze; geval 200: output_low(PIN_C0); p1 = 0; p2 = waarde; pauze; geval 250: p1 = 0; p2 = waarde; output_low(PIN_C0); pauze; } p1 = waarde; p2 = 128 - p1; set_pwm1_duty(p1); set_pwm2_duty(p2);}}

Stap 4: Aanvragen

Toepassingen!
Toepassingen!

Zo'n simpele kleurendetector kan worden gebruikt in robotica, of voor coole projecten zoals lego's op kleur scheiden, M&M's sorteren of als hulpmiddel bij kleurenblindheid. Hopelijk was dit instructable nuttig bij het verbeteren van een project dat je in gedachten had!:) LED's zijn voor zoveel dingen goed….

Aanbevolen: