Ihre eigene Farbsensor mit LEDs

8 Schritt:Schritt 1: Einführung und Teileliste Schritt 2: Starten Sie den Aufbau der Platine (Perf-board) Schritt 3: Die SMD Version I - Making the Board Schritt 4: SMD Version II - Making the Board Schritt 5: Testen und die grafische Darstellung der Ergebnisse Schritt 6: Prüfung und Kalibrierung der Farbsensor Schritt 7: Anwendungen Schritt 8: FEHLERBEHEBUNG UND FAZIT

Ihre eigene Farbsensor mit LEDs

Ihre eigene Farbsensor mit LEDs


Wussten Sie, dass Sie einen "billig", aber effektive Farbsensor mit einigen Basiskomponenten zu machen?
Diese super-einfach instructable führt Sie eigene Farbsensor mit einer Reihe von LEDs und eine LDR machen.
Ich habe es geschafft, eine übersichtlich, kompakt, erweitert und relativ dünnen Sensor (PCB Version) zu machen.
Diese instructable deckt zwei Arten von Sensor, die ich gemacht habe, ist der erste Sensor die Perf-board-Version und das zweite ist die verbesserte SMD-Version (2 cm x 2 cm x 0,5 cm).
Die Perf-board-Version ist extrem einfach zu machen, aber wenn Sie die SMD-Version möchten, würden Sie SMD-Löten Fähigkeiten (zum Lot SOT-23-Gehäuse-Transistoren) erforderlich.
Hinweis: Im Video sehen Sie eine Platine (Arduino Schild), die ich benutze sehen. Das Schild ist ein personalisiertes Schild für meine bevorstehende RGB Lampe. Das Verfahren, um es gebaut und andere Details werden in der kommenden Instructable abgedeckt werden. The Shield verwendet grundsätzlich einen CD4051-Multiplexer, um die PWM Pins zu minimieren.

Schritt 1: Einführung und Teileliste

  1. Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Diese Sensoren, die wir sind dabei, bauen kann als Ersatz in die TCS3200 Sensor verwendet werden. Obwohl die TCS3200 ist viel genauer als dieser Sensoren sind sie auch recht teuer (~ 7-10 $) als das, was wir werden machen (max 2 $).
    SMD-Version: Die SMD-Version benötigt:
    1. 2 x Red SMD (1206) - Sparkfun
    2. 2x Grün SMD (1206) - Sparkfun
    3. 2x Blau SMD (1206) - Sparkfun
    4. 2x Weiß SMD (1206) - Sparkfun
    5. 3cm x 3cm Doppelseitige Leiterplatten (Glasfaser Epoxy)
    6. 1x LDR (Lichtschranke) - Sparkfun
    7. 3x BC847 (SOT -23 -3) - Mouser
    8. 1x 10k (1206 SMD) Widerstand - Sparkfun
    9. 7-Pin Flachbandkabel
    10. Stiftleisten
    Perfboard Version:
    1. 1x RGB-LED (SMD / Durchgangsbohrung / Piranha) - SMD (Sparkfun) , Durchführungsloch (Sparkfun)
    2. 1x LDR (Fotozelle) - Sparkfun
    3. 1x 10K-Widerstand
    4. 1x 330-Ohm-Widerstand
    5. Perfboard - 3cm x 2cm
    6. 6-poligen Flachbandkabel
    7. Stiftleisten

Schritt 2: Starten Sie den Aufbau der Platine (Perf-board)

  1. Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Alle 9 Artikel anzeigen

    Beginnen Sie damit durch Löten des RGB-LED auf dem Brett
    Dann Löten Sie die LDR. Schließlich, wenn die Platine mit LDR und LED gelötet, schneiden Sie es entlang der Ränder der LDR und LED (lassen Sie etwas Platz für die Widerstände und Kopfzeilen).
    Nach dem Schneiden der Platine löten die Header an den Pins der LED (optional).
    Dazu wird ein 330 Ohm / 220 Ohm Widerstand von der gemeinsamen Pin der LED an die Erdungsschiene. Löten Sie dann die SMD 10K-Widerstand zwischen einem Pin des LDR und Vcc (+ 5V). Der andere Stift der LDR geht in Grund Bus.
    Löten Sie das Flachbandkabel an den Vorstand:
    Rot: LED Red pin
    Grün: LED grün pin
    Blue: LED blau Stift
    Orange: Vcc (+ 5V) -Bus
    Brown: Erdgeschoss
    Yellow: Analog - an der Kreuzung der 10K-Widerstand und der LDR-
    Schließlich löten Sie das andere Ende des Flachbandkabels auf Sockel
    Rot - Grün - Blau - Vcc - GND - Analog
    Beenden Sie das Brett durch Abdecken der LDR mit einem Stück 4mm Schrumpf (schwarz) Rohr.

Schritt 3: Die SMD Version I - Making the Board

  1. Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Die SMD-Sensor ist ziemlich schwierig, im Vergleich zu der perf-board-Ausführung aus.
    Drucken Sie die gegebenen Layout (.brd) auf einer glänzenden (Magazin) Papier. Schneiden Sie das Layout an den Rändern. Legen Sie eine der Layout auf dem doppelseitig mit Kupfer Clad Board. Markieren Sie die Kanten auf dem Board und entlang der Ränder entweder durch eine Bügelsäge oder einer Demel geschnitten (Die Ränder sind recht ungleichmäßig coz Ich habe eine Bügelsäge verwendet).
    Nachdem Sie eine geeignete Größe Bord, schrubben sie mit einem Stahl Gestrüpp und abwischen. Vorheizen Bord mit einem Bügeleisen und legen die Layouts auf beiden Seiten der Leiterplatte (Vorsicht über die Orientierung) sorgfältig.
    #Tip: Um die Layouts genau entsprechen, erste Bohrer zwei (oder mehr) Referenzbohrungen in der Leiterplatte und richten Sie die Bretter richtig mit den Löchern.
    Nachdem Sie haben die Layouts richtig ausgerichtet sind, Wärme sie mit eisernem ohne ihre Position zu stören.
    #Tip: Beim Schneiden der Platine, lassen Sie etwas mehr Platz für die Layouts einfügen und auf dem Brett mit Sekundenkleber. (Achten Sie darauf, Sekundenkleber auf den Gleisen oder an jedem Ort innerhalb der Grenzen des Vorstands gelten.
    Erhitzen Sie die Platine gleichmäßig für 5 ~ 6 Minuten. Eine Überhitzung zu vermeiden. Nach 5 Minuten, legen Sie die Platine in Wasser und lassen Sie das Papier einweichen für ca. 10 Minuten. Jetzt vorsichtig schälen Sie das überschüssige Papier aus dem Vorstand unter einem Strom von Wasser. Reiben Sie die Platine vorsichtig mit den Fingern, um mehr Papier vom Brett zu entfernen.
    Trocknen Sie das Brett und stellen Sie sicher, dass das Layout korrekt übertragen wurden. Korrekturen mit einer dünnen Spitze Permanentmarker. Nachdem sichergestellt ist, dass das Layout korrekt ist, legen Sie die Karte in einem flachen Kunststoffbehälter.
    Achtung: Dieser Vorgang sollte streng in einem gut belüfteten Bereich durchgeführt werden, und während das Ätzen der Platine, tragen Latexhandschuhe und eine Schutz Auge-Wear. Die Umsetzung von FeCl3 und Wasser ist stark exotherm und gibt giftige Dämpfe.
    Legen Sie einen Haufen von FeCl3 neben dem Brett. Bringen Sie kochendes Wasser und langsam an die Behälter (fügen verry kleine Menge Wasser, gerade genug, um das Brett vollständig bedeckt)
    Rühren Sie die Behälter ständig, bis der PCB wurde schließlich geätzt (dies kann bis zu 15 Minuten dauern). Nachdem die Leiterplatte geätzt wurde, entfernen Sie sie mit Kunststoff-Pinzette oder Zange. Die Lösung in ein anderes Gefäß (Haben Sie die Lösung abtropfen nicht ohne Neutralisation) sorgfältig zu übertragen.
    Waschen Sie die Platine gründlich und reiben Sie den Toner mit Stahl Gestrüpp und Aceton / Alkohol. Trocknen Sie das Brett und bohren sie (1 mm oder 0,8 mm Bits). Sand die Kanten, um einen besseren Blick PCB zu erreichen.

Schritt 4: SMD Version II - Making the Board

  1. Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Nach Beendigung der Platine ist, Tin es mit einem Meißelspitze und löten.
    Starten Löten der LEDs ersten (Sie erinnern sich, der Innenring ist für Boden und die "blue" Punkt auf der LED stellt Masseanschluss).
    Löten Sie dann die SOT-23-3 BC847 Transistoren. Löten Sie die 10K-Widerstand und dann löten die LDR.
    Stellen Sie sicher, dass die LDR ist fest und die Kappe mit einem 4mm Schrumpfschlauch.
    Löten Sie nun das Flachbandkabel (in beliebiger Reihenfolge). Das andere Ende des Flachbandkabels muss in der richtigen Reihenfolge gesendet werden
    Weiß - Rot - Grün - Blau - Vcc - GND - Analog
    Um es so aussehen wie "professionelle PCB" malen grün / rot mit einem wasserfesten Stift.
    Ihr Sensor ist bereit für den Test!

Schritt 5: Testen und die grafische Darstellung der Ergebnisse

  1. Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Ihre eigene Farbsensor mit LEDs

    Wenn Sie alle Sensoren fertig sind, stecken Sie sie in Ihrem Brotbrett und schließen Sie ihn an Ihren Arduino.
    Arduino | Sensor
    Pin 9 ------- R
    Pin 10 ------ G
    Stift 11 ------ B
    Gnd Gnd -------
    Vcc -------- Vcc
    A0 --------- Analog
    Legen Sie ein weißes Objekt vor dem Sensor und Führen Sie den angegebenen Code auf Arduino:


      int LED [3] = {9,10,11}, i, j;  // DECLARE RGB PINS
    
     Leere setup ()
     {
     
       Serial.begin (9600);
       for (i = 0; i <3; i ++) // set LED-Pins an OUTPUT
       pinMode (LED [i], output);
     }
    
     Leere Schleife ()
     {
      
       for (j = 0; j <3; j ++) // CYCLE PINS
       {
         for (i = 0; i <255; i ++) // Zykluswerte
         {
     
          analogWrite (LED [j], i);
          Serial.println (1024 analogRead (0));  // PRINT VALUES
          Verzögerung (100);
         }
     analogWrite (LED [j], 0);
     Verzögerung (100);
    
     }
     }
    

    Und führen Sie diesen Code in Bearbeitung:
      importieren processing.serial. *;
     
      Serien myport;  // Die serielle Schnittstelle
      schweben xPos = 20, prevtime = 0;  // Horizontale Position des Graphen
     
      Leere setup () {
      // Stellen Sie die Fenstergröße:
      Größe (1300, 700);        
     
      // Liste alle verfügbaren seriellen Ports
      println (Serial.list ());
      // Ich weiß, dass das erste Tor in der Serienliste auf meinem Mac
      // Ist immer mein Arduino, so dass ich zu öffnen Serial.list () [0].
      // Öffnen was auch immer Port ist der, die Sie verwenden.
      myport = new Serien (this, Serial.list () [1], 9600);
      // Keine serialEvent generate (), wenn Sie einen Zeilenumbruch zu erhalten:
      myPort.bufferUntil ('\ n');
      // Setze inital Hintergrund:
      Hintergrund (255);
      }
      Leere draw () {
      // Alles passiert im serialEvent ()
      }
     
      Leere serialEvent (Serial myport) {
      // Den ASCII-String:
      String inString = myPort.readStringUntil ('\ n');
     
      if (inString! = null) {
      // Schneiden Sie Leerzeichen:
      inString = trim (inString);
      // Konvertieren in einen int und Karte auf dem Bildschirm Höhe:
      schweben InByte = float (inString); 
     
      InByte = map (InByte, 0, 1023, 0, Höhe);
     
      // zeichne die Linie:
      Hub (255,0,0);
      Linie (xPos, Höhe, xPos, Höhe - InByte);
    
      // Am Rand des Bildschirms, gehen Sie zurück zum Anfang:
      if (xPos> = Breite)
      {
        xPos = 20;
        Hintergrund (255);
      }
      sonst
     xPos + = 0,7;
      }
      }
    

    Ändern Sie die Codes und Verzögerungswerte, werden die Grafiken ändern
    Weitere Verzögerung gibt genauere Graphen
    Der Graph zeigt deutlich, dass die Variation der Helligkeit wrt die PWM-Werte nicht gleich für R, G, B-LEDs und damit zu einer kalibrierten benötigen.

Schritt 6: Prüfung und Kalibrierung der Farbsensor

  1. Ihre eigene Farbsensor mit LEDs

    Jetzt kommt der Code, die analysiert und kalibriert jede Farbe nach den Werten, die zurückgeworfen werden.
     / * Color Sensor Code - electro18
     Mehr Details finden Sie über das Projekt unter: http://www.instructables.com/id/Your-Own-Color-Sensor-using-LEDs 
     Dieser Code ist Open-Source und wird von http://www.instructables.com/member/electro18/ erstellt
     Es veranschaulicht die Verwendung von LEDs und LDRs als Farbsensor
    
     Schritte:
    
     Legen Sie einen weißen Bildschirm vor dem Sensor
     Schalten Sie den arduino
     Lassen Sie es für eine Weile zu kalibrieren
     Sobald es kalibriert ist, werden die Farben RGB wird in regelmäßigen Abständen blinken
     Die prozentuale Zusammensetzung der bestimmten Farbe auf dem Monitor angezeigt werden serielle
     Öffnen Sie die serielle Monitor für die Fehlersuche ang, um die Werte zu überprüfen 
    
     * /
    
    
     int Sensor MinVal, Val [3], colArray [3] = {9,10,11}, gesamt;
    
     schweben Prozent [3];
    
     int i, readRGB [3], readMax [3], Domin;  // Variablen deklarieren
    
     Lang calibtime, prevtime;  // RECORD die Zeit abgelaufen
    
     Leere setup ()
     {
      
      Serial.begin (9600); 
    
        for (i = 0; i <3; i ++)
         {
         pinMode (colArray [i], output);  // Die Ausgangspins SET
         }
        
         kalibrieren ();  // RUN Kalibrieren FUNCTION
    
     }
    
     Leere Schleife ()
     {
    
       Gesamt = 0;
    
        for (i = 0; i <3; i ++) // Check Werte in einer LOOP
       {
          prevtime = millis ();
          while (millis () - prevtime <1000) // Verzögerung zu vermeiden
          {
            analogWrite (colArray [i], Val [i]);  // Schreiben Sie die kalibrierten Werte
            readRGB [i] = 1024 - analogRead (0);
            Verzögerung (50);                                 
          }
      
       digital (colArray [i], 0);
       
       prevtime = millis ();  // RESET TIME
     
       Gesamt = Gesamt + readRGB [i];
      
       }
    
    
       for (i = 0; i <3; i ++)
         {
    	 Prozent [i] = readRGB [i] * 100.0 / total;  // PRINT IN FORM VON PROZENT
             Serial.print (Prozent [i]);
    	 Serial.print ("%");
         }
        
             Serial.println ("");
             Verzögerung (1000);
     
     }
    
    /////////////////////////////////##############################################################################################////////////
      
       Leere kalibrieren () // CALIBRATE FUNCTION
       {
       
           for (i = 0; i <3; i ++)
           {
              while (millis () - calibtime <1000) // FLASH jeder Farbe AT MAX 1 Sekunde
              {
                  analogWrite (colArray [i], 255);
                  readMax [i] = 1024 analogRead (0);  // RECORD Max-Werte
              }                                              
       
        analogWrite (colArray [i], 0);
        Serial.println (readMax [i]);
        Verzögerung (10);
       
        calibtime = millis ();
       
      }
       
        if (readMax [0] <readMax [1] && readMax [0] <readMax [2]) // den Minimalwert aus ARRAY ERHALTEN
       
           MINVAL = readMax [0];
         
          sonst 
          {
     
            if (readMax [1] <readMax [0] && readMax [1] <readMax [2])
           
            MINVAL = readMax [1];
          
      
           sonst
        
           MINVAL = readMax [2];
        
        }
      
      
         for (i = 0; i <3; i ++)
       {
      
            analogWrite (colArray [i], 10);
            Sensor = 1024 - analogRead (0);  // Kalibrierung zu starten
            Verzögerung (100);
       
         while (Sensor - MINVAL <= -1 || Sensor - MINVAL> = 1) // Die Differenz zwischen Stromwert und THRESHOLD ERHALTEN
            {
              Sensor = 1024 - analogRead (0);
             
              if (Sensor> MINVAL) // erhöhen oder verringern Sie den Wert, um die Helligkeit EQUALIZE
                  Val [i] -;
                 
                  sonst
                  Val [i] ++;
                 
                  Serial.print (1024 analogRead (0));
                  Serial.print ("");
                  Serial.println (MINVAL);
       
                  Verzögerung (50);
       
                  Val [i] = constrain (Val [i], 0,255);  // Schränken den Wert B / W 0 - 255
                  analogWrite (colArray [i], Val [i]);
            }
     
      analogWrite (colArray [i], 0);
      Verzögerung (50);
     
      }
     
       }
       
       
    

    Arbeiten des Codes:
    SCHRITTE:
    1. Legen Sie ein Weiß nicht glänzende Objekt vor dem Sensor
    2. Schalten Sie Ihr Arduino
    3. Der Sensor Autokalibrierungssequenz starten
    4. Es werden alle drei Farben blinken ersten, dann wird es alle Farben auszugleichen
    5. Der Kalibrierungsvorgang abgeschlossen ist, wenn es um Zyklus RGB Sequenz beginnt
    6. Legen Sie jedes Objekt, dessen Farbe Sie analysieren möchten
    7. Öffnen Sie die serielle Monitor für das Erhalten der Werte in% Format
    Erläuterung:
    Grundsätzlich ist der Sensor blinkt jede Farbe und zeichnet die Max-Werte, wenn ein weißes Objekt vor ihm platziert.
    Er stellt fest, das Licht, das zurück reflektiert und vergleicht alle Werte.
    Der Minimalwert wird als Schwellenwert festgelegt und dann versucht es, alle Farben auszugleichen (R, G, B)
    Nachdem die Kalibrierung durchgeführt wurde, beginnt das Programm die Schleife, die die Farbe unterscheiden. Es macht den Job durch die reflektierte Farbe von der Oberfläche und dann konvertieren Sie diese Werte in einer systematischen Form.
    Die Farbentwicklung wider sagt dem Prozentsatz der jeder Farbe in der jeweiligen Farbe.

Schritt 7: Anwendungen


  1. Kürzlich habe ich diesen Sensor verwendet, um eine Lampe Chameleon zu machen.
    Diese Lampe verwendet eine Farbsensor, um die Farbe von ihm ist Basis erfassen und replizieren sie mit RGB-LEDs. Es ist interessant zu sehen, wie einfach und billig Elektronik verwendet werden, um etwas Außergewöhnliches zu machen. Und die Lampe funktionierte ganz gut (wenn auch unerwartet: D)
    Dennoch gibt es unendlich Möglichkeiten, wie dieser Sensor verwendet werden.

Schritt 8: FEHLERBEHEBUNG UND FAZIT


  1. Fehlersuche und Vorsichtsmaßnahmen:
    1. Stellen Sie sicher, dass die LED blinken
    2. Umgebungslicht kann mit dem Sensor beeinträchtigen und zu falschen Messwerten
    3. Um den Sensor zu kalibrieren, können Sie eine vollkommen weiß und nicht-glänzende Oberfläche benötigen.
    4. Verwenden Sie geeignete Strombegrenzungswiderstände für LED
    Fazit:
    Dieses Projekt ist ein Beispiel dafür, wie ein paar einfache Komponenten können miteinander verbunden werden, um etwas einzigartig und faszinierend zu bilden.
    Dieser Sensor kann in Robotern verwendet werden, für das Sortieren von Objekten unterschiedlicher Farben usw ....
    Fragen, Anregungen und Kritik sind willkommen :)
    Wenn Sie feststellen, mein Instructable interessante dann hinterlassen Sie bitte eine Bewertung :)