Farbsensor TCS3200 Arduino anschließen & verwenden

Der Arduino TCS230 / TCS3200 Farberkennungssensor ist in der Lage, 4 Farben zu erkennen und wandelt die Intensität des Farbspektrums in ein Signal mit unterschiedlichen Frequenzen um. Schauen wir uns das Gerät des RGB-Farberkennungssensors an, den Schaltplan zum Arduino und präsentieren Beispiele für die Verwendung des Sensors mit der Ausgabe der Objektfarbinformationen an den Monitorport der Arduino IDE.




Bestandteile:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • TCS3200 / TCS230 Farbsensor Arduino
  • LEDs und Widerstände
  • Breadboard
  • Dupont-Kabel

In der RGB-Farbpalette kann jede Farbe als eine Kombination der drei Hauptfarben Rot (Red), Grün (Green) und Blau (Blue) dargestellt werden. Daher ist es notwendig, das rote, blaue und grüne Spektrum zu messen, um die Farbe zu bestimmen. Als Sensorelement im Farbsensor Arduino wird ein TCS230-Chip verwendet, der aus einem 8×8-Fotodioden-Array besteht – 16 Fotodioden pro drei Farben und 16 Fotodioden ohne Filter.

Farbsensor TCS320 Arduino pinout, datasheet

Farbsensor TCS3200 Arduino pinout, datasheet

Merkmale des Farbsensor TCS320 (datasheet)

  • Versorgungsspannung: 2,7 – 5,5 V
  • Hochauflösende Umwandlung von Lichtintensität in Frequenz

Der Sensor dient zur Erkennung des Farbtons eines Objekts in einem Abstand von bis zu 10 mm und verfügt über vier LEDs auf dem Sensor, um die Messstelle zu beleuchten. Auf der Rückseite des Sensors befinden sich zwei Pads mit vier Kontakten. Der TCS230 / TCS2300 wird über diese Kontakte mit dem Arduino-Mikrocontroller verbunden. Die Pins „S0“ und „S1“ dienen zur Skalierung der Pulsfrequenz am „OUT“-Ausgang des Sensors.

Wie man einen TCS320 an einen Arduino anschließt

Wie man einen TCS320 an einen Arduino anschließt

Kalibrieren Sie den TCS230-Sensor bei guten Lichtverhältnissen und in gleichem Abstand zur Objektoberfläche. Wenn sich das Licht oder der Abstand zum Objekt ändert, können alle Einstellungen zurückgesetzt werden. Beachten Sie, dass der Sensor Rot leicht erkennt, aber nicht gut zwischen Blau und Grün unterscheiden kann. Um die Informationen an den Arduino IDE-Port auszugeben, bauen Sie die Schaltung zusammen und laden Sie das Code.

Programm für Farberkennung mit TCS230 Arduino




#define s2  2
#define s3  3
#define out 4

byte red = 0;
byte green = 0;
byte blue = 0;

void setup() {
  Serial.begin(9600);
 
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  pinMode(out, INPUT);
} 
 
void loop() { 
  color();

  Serial.print(" RED: " + String(red));
  Serial.print(" GREEN: " + String(green));
  Serial.println(" BLUE: " + String(blue));
 
  delay(500);
}
 
void color() {
  digitalWrite(s2, LOW);
  digitalWrite(s3, LOW);
  red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

  digitalWrite(s3, HIGH);
  blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

  digitalWrite(s2, HIGH);
  green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); 
}
  • Die Prozedur void color() wird zur Abfrage des Farbsensors verwendet;
  • Die Prozedur void loop() gibt die empfangenen Daten an den Monitor der seriellen Schnittstelle der Arduino IDE aus.

Wie man einen TCS230 und LED an einen Arduino

Wie man einen TCS230 und LED an einen Arduino

Wenn Sie das Programm in den Mikrocontroller laden und die serielle Schnittstelle öffnen, sehen Sie die Werte für jede der drei RGB Farben. Die Meldung gibt an, welche Farbe vom Sensor erkannt wurde, wenn der Sensor in die Nähe der Probe gebracht wird. Wenn die Farbmeldung nicht mit der tatsächlichen Farbe übereinstimmt, müssen Sie die Werte in der bedingten if-Anweisung ändern, um die richtigen RGB-Werte zu erhalten.

Programm für Farbsensor TCS320 und LED mit Arduino

#define s2  2
#define s3  3
#define out 4

byte red = 0;
byte green = 0;
byte blue = 0;

void setup() {
  Serial.begin(9600);
 
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
 
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  pinMode(out, INPUT);
} 
 
void loop() { 
  color();

  Serial.print(" RED: " + String(red));
  Serial.print(" GREEN: " + String(green));
  Serial.println(" BLUE: " + String(blue));

 if(red > 60 && blue > 90 && green > 90) {
   Serial.println("RED COLOR");
   digitalWrite(10, HIGH);
   digitalWrite(11, LOW);
   digitalWrite(12, LOW);
 }

 if(red > 60 && blue > 90 && green > 90) {
   Serial.println("GREEN COLOR");
   digitalWrite(10, LOW);
   digitalWrite(11, HIGH);
   digitalWrite(12, LOW);
 }

 if(red > 60 && blue > 90 && green > 90) {
   Serial.println("BLUE COLOR");
   digitalWrite(10, LOW);
   digitalWrite(11, LOW);
   digitalWrite(12, HIGH);
 }
 
  delay(500);
}
 
void color() {
  digitalWrite(s2, LOW);
  digitalWrite(s3, LOW);
  red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

  digitalWrite(s3, HIGH);
  blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

  digitalWrite(s2, HIGH);
  green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); 
}
  • Je nach Farbe des Objekts leuchtet eine bestimmte LED auf;
  • Mithilfe zusätzlicher if-Anweisungen im Programm color sensor können Sie mehr als drei Farben festlegen, die definiert werden sollen.

Schlussfolgerung. Die Farberkennung hat viele reale Anwendungen und kann sehr nützlich sein, wenn sie mit einer kostengünstigen Lösung wie der Arduino Nano Mikrocontroller durchgeführt werden kann. Das TCS2300-Farberkennungssensormodul wird in Arduino-Projekten nützlich sein, in denen eine Farberkennung erforderlich ist, z. B. für den Farbabgleich, die Farbsortierung, die Erkennung von Teststreifenfarben usw.

5/5 - (1 vote)


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert