Auch lesen!
Startseite / Werkzeuge / Arduino / Farbsensor mit TCS3200D Objektiv für Arduino

Farbsensor mit TCS3200D Objektiv für Arduino

Diese kleinen sensor Objektiv-TCS3200D ist in der Lage wahrzunehmen Farben und senden Sie sie an den Arduino. Obwohl nicht sehr zuverlässig, Es schien sehr cool. Es hat auch eine Version ohne Objektiv.

570feb7116d85_IMG_20160414_160510

Hat 4 LED montiert an Bord.

570feb730cecc_IMG_20160414_160516

Die Anschlüsse sind: S0, S1, S2, S3, GND, VCC, OUT und LED.

570feb751d7d3_IMG_20160414_160524

Es ist ein Cover, das Objektiv zu schützen.

570feb771e264_IMG_20160414_160536

Sehen Sie, wie die Verbindung mit dem Arduino war.

570feb653fa95_IMG_20160414_160107

Ich habe die 3,3 V Spannung der Arduino verbinden die leds. Es war eine sehr gute Helligkeit.

570feb66707a2_IMG_20160414_160139

In diesem Bild bin ich versucht, das Blau des mein Hefter lesen.

570feb67a23fd_IMG_20160414_160153

Die Ergebnisse für blau sind nicht sehr gut, aber ich kann sehen, dass das blau etwas größer ist.

570feb6879495_IMG_20160414_160203

Apropos, Ich lasse hier das Programm für diejenigen, die zu verwendenden:

Int s2Pin = 7;
Int s3Pin = 8;
Int outPin = 4;

privatevoid einrichten() {
  pinMode(s2Pin, AUSGABE);
  pinMode(s3Pin, AUSGABE);
  pinMode(outPin, EINGABE);
  Beginnen Sie serielle.(9600);
}

Int readOutputPulse(Int-polig) {
  Int Anzahl = 0;
  Weile ((digitalRead(POLIG) == 1) & (Graf < 32640)) {
    Graf   ;
  }
  If (Graf == 32640) Count   2 zurück;
  Graf = 0;  Weile ((digitalRead(POLIG) == 0) & (Graf < 32640)) {
    Graf   ;
  }
  Rückgabe Anzahl;
}

Int readRed() {
  Int PulseWidth = 0;
  Int ColorStrength = 0;
  digitalWrite(s2Pin, LOW); 
  digitalWrite(s3Pin, LOW);
  Verzögerung(100);
  Pulsewidth = ReadOutputPulse(outPin);
  ColorStrength = (Pulsewidth/128);
  ColorStrength = (255 - colorStrength);
  zurück colorStrength;
}

Int readGreen() {
  Int PulseWidth = 0;
  Int ColorStrength = 0;
  digitalWrite(s2Pin, HOCH); 
  digitalWrite(s3Pin, HOCH);
  Verzögerung(100);
  Pulsewidth = ReadOutputPulse(outPin);
  ColorStrength = (Pulsewidth/128);
  ColorStrength = (255 - colorStrength);
  zurück colorStrength;
}

Int readBlue() {
  Int PulseWidth = 0;
  Int ColorStrength = 0;
  digitalWrite(s2Pin, LOW); 
  digitalWrite(s3Pin, HOCH);
  Verzögerung(100);
  Pulsewidth = ReadOutputPulse(outPin);
  ColorStrength = (Pulsewidth/128);
  ColorStrength = (256 - colorStrength);
  zurück colorStrength;
}

privatevoid Schleife() {
  Serielle .print("R:");
  System.out.println serielle(readRed());
  Serielle .print("G:");
  System.out.println serielle(readGreen());
  Serielle .print("(B):");
  System.out.println serielle(readBlue());
  System.out.println serielle("");
  Verzögerung(500);
}

Jetzt lese ich einen weißen Bildschirm auf dem computer.

570feb6f21b80_IMG_20160414_160356

Ein Roter Bildschirm. Überprüfen Sie, ob der Sensor empfindlicher auf diese Farbe als alle anderen.

570feb6a1b811_IMG_20160414_160226

Ein green-screen:

570feb6d3fb12_IMG_20160414_160318

Und blauen.

570feb6bbce1c_IMG_20160414_160245

Obwohl empfindlicher auf rot als blau oder grün, die Sensor-Werke. Vielleicht ist einigen Kalibrierung notwendig, besser arbeiten. Ich lasse unten Link für Versionen mit Objektiv (EBay) und ohne Objektiv (DX):

Mit Linsen – http://www.ebay.com/sch/i.html?_nkw=tcs3200d+lens&_sacat=0

Ohne Objektiv – http://www.DX.com/p/Gy-31-tcs230-tcs3200-Color-Sensor-Recognition-Module-Blue-Black-216, 448

Über Adriano

Adriano
Prof., Ingenieur und Käufer von Produkten verrückt China.

Ein Kommentar

  1. Hallo Adriano,

    Vielen Dank für Sie hilfreich Artikel.
    Über den Code. Es scheint einige Zeichen zu fehlen?

    Während ((digitalRead(STIFT) == 1) & (Graf < 32640)) {
    Graf ;

    Should this be "count++;"?

    Und was ist mit diesem Stück: Ob (Graf == 32640) Rückgabe Anzahl 2;
    What's between "count" and "2"?

Hinterlasse eine Antwort

Ihre e-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *

*