Inhaltsverzeichnis:

Farberkennung mit RGB-LED - Gunook
Farberkennung mit RGB-LED - Gunook

Video: Farberkennung mit RGB-LED - Gunook

Video: Farberkennung mit RGB-LED - Gunook
Video: RGB Farb Sensor TCS34725 am Arduino 2024, Juli
Anonim
Farberkennung mit RGB-LED
Farberkennung mit RGB-LED

Wollten Sie schon immer eine automatisierte Möglichkeit, die Farbe eines Objekts zu erkennen? Indem Sie Licht einer bestimmten Farbe auf das Objekt richten und sich ansehen, wie viel Licht zurückreflektiert wird, können Sie feststellen, welche Farbe das Objekt hat. Wenn Sie beispielsweise ein rotes Licht auf ein rotes Objekt richten, wird dieses Licht zurückreflektiert. Wenn Sie ein rotes Objekt mit blauem Licht beleuchten, wird das Objekt einen Teil dieses Lichts absorbieren und weniger davon zurückreflektiert.

Schritt 1: Benötigte Teile

Benötigte Teile
Benötigte Teile

Ich habe einen PIC 16F887-Mikrocontroller verwendet, aber fast jeder mit Pulsweitenmodulationsfunktion funktioniert. 1 RGB-LED1 Mikrocontroller1 Standard rote LED1 1k Ohm Widerstand1 Fotowiderstand (ändert den Widerstand je nach Lichteinfall)Einige DrähteIch brauche nur den Mikrocontroller und die RGB-LED, um eine breite Palette von Farbdetektoren zu haben, aber wenn Sie nur eine Schaltung wünschen, die erkennt eine Farbe, Sie benötigen keinen Mikrocontroller - Sie benötigen nur eine helle LED der Farbe, die Sie erkennen möchten. Die standardmäßige rote LED ist die "Anzeige-LED" - sie leuchtet, wenn die richtige Farbe erkannt wird.

Schritt 2: Bauen Sie die Schaltung auf

Baue die Schaltung
Baue die Schaltung
Baue die Schaltung
Baue die Schaltung

Das Schema ist ziemlich einfach und in allgemeiner Form unten gezeigt. Die RGB-LED wird extern durch ein PWM-Signal gespeist. Ich habe Isolierband um den Fotowiderstand gelegt, damit kein Umgebungslicht eindringt - nur das Licht direkt darüber wird erkannt.

Schritt 3: Der Code

Dieser Code wurde für einen Microchip PIC 16F887 geschrieben, aber hoffentlich können Sie sich einen Überblick verschaffen. Ich habe das eingebaute Potentiometer auf meinem Entwicklungsboard verwendet, um das Farbspektrum der RGB-LED zu variieren (und es geht nicht durch das gesamte Spektrum, da ich keine 3 PWM-Module habe, aber es ist gut genug) Kommentare enthalten. #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 Wert = 128;int p1 = 0;int p2 = 0;void my_setup_ccp1(int8 value){output_low(PIN_C2);CCP1CON = value;PWM1CON = 0;}void my_setup_ccp2(int8 value) {output_low(PIN_C1);CCP2CON = Wert;}//==================================void main (){//A4 = Stromquelle für 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_CP_PW1_set); my_setup_ccp2(CCP_PWM);setup_timer_2(T2_DIV_BY_1, 128, 1);//setup_compare(2, COMPARE_PWM|COMPARE_TIMER2); while(1){ // Verhindern, dass PIC in den Ruhezustand geht.//SET PWM DUTY CYCLE output_high(PIN_A5); // Pin A3 ist die Fotodiodenverbindung if (input (PIN_A3) == 1) output_high (PIN_A4); else output_low (PIN_A4); // Wert des Potentiometers lesen, um die Farbe des LED-Werts zu ändern = read_adc (); Schalter (Wert) { Fall 0: p1 = Wert; output_low (PIN_C0); p2 = Wert; brechen; Fall 50: p1 = Wert; output_high (PIN_C0); p2 = Wert; brechen; Fall 100: p1 = Wert; output_high (PIN_C0); p2 = Wert; brechen; Fall 150: output_high(PIN_C0); p1 = 50; p2 = Wert; brechen; Fall 200: output_low(PIN_C0); p1 = 0; p2 = Wert; brechen; Fall 250: p1 = 0; p2 = Wert; output_low (PIN_C0); brechen; } p1 = Wert; p2 = 128 – p1; set_pwm1_duty(p1); set_pwm2_duty(p2);}}

Schritt 4: Bewerbungen

Anwendungen!
Anwendungen!

Ein einfacher Farbdetektor wie dieser kann in der Robotik verwendet werden oder für coole Projekte wie das Trennen von Legos nach Farben, das Sortieren von M&Ms oder als Hilfe bei Farbenblindheit. Hoffentlich war dieses instructable hilfreich bei der Verbesserung eines Projekts, das Sie im Sinn hatten!:) LEDs sind für so viele Dinge gut….

Empfohlen: