In diesem Projekt werden wir den TCS3200-Farbsensor mit Arduino UNO verbinden. TCS3200 ist ein Farbsensor, der mit der richtigen Programmierung beliebig viele Farben erkennen kann. TCS3200 enthält RGB-Arrays (Red Green Blue). Wie in der Abbildung auf mikroskopischer Ebene gezeigt, kann man die quadratischen Kästchen im Auge des Sensors sehen. Diese quadratischen Kästchen sind Arrays der RGB-Matrix. Jede dieser Boxen enthält drei Sensoren. Einer dient zum Erfassen der ROTEN Lichtintensität, einer zum Erfassen der GRÜNEN Lichtintensität und der letzte zum Erfassen der BLAUEN Lichtintensität.
Jedes der Sensorarrays in diesen drei Arrays wird je nach Anforderung separat ausgewählt. Daher ist es als programmierbarer Sensor bekannt. Das Modul kann so ausgestattet werden, dass es die jeweilige Farbe erkennt und die anderen verlässt. Es enthält Filter für diesen Auswahlzweck. Es gibt einen vierten Modus, der kein Filtermodus ist. Ohne Filtermodus erkennt der Sensor weißes Licht.
Erforderliche Komponenten
Hardware: ARDUINO UNO, Netzteil (5 V), LED, JHD_162ALCD (16 * 2LCD), TCS3200-Farbsensor.
Software: ARDUINO IDE (ARDUINO jede Nacht).
Schaltplan und Arbeitserklärung
Im 16x2-LCD gibt es insgesamt 16 Pins, wenn eine Hintergrundbeleuchtung vorhanden ist. Wenn keine Hintergrundbeleuchtung vorhanden ist, gibt es 14 Pins. Man kann die Gegenlichtstifte mit Strom versorgen oder belassen. Nun in den 14 Stiften sind 8 Datenstifte (7-14 oder D0-D7), 2 Stromversorgungsstifte (1, 2 oder VSS & VDD oder GND & + 5 V), 3 rd Stift für die Kontraststeuerung (VEE-Kontrollen, wie dick die Zeichen sollten gezeigt) und 3 Steuerstifte (RS & RW & E)
In der Schaltung können Sie beobachten, dass ich nur zwei Steuerstifte genommen habe. Das Kontrastbit und READ / WRITE werden nicht oft verwendet, so dass sie gegen Masse kurzgeschlossen werden können. Dies versetzt das LCD in den höchsten Kontrast- und Lesemodus. Wir müssen nur die ENABLE- und RS-Pins steuern, um Zeichen und Daten entsprechend zu senden.
Die Verbindungen, die für LCD hergestellt werden, sind unten angegeben:
PIN1 oder VSS gegen Masse
PIN2 oder VDD oder VCC auf +5V
PIN3 oder VEE gegen Masse (bietet maximalen Kontrast am besten für Anfänger)
PIN4 oder RS (Registerauswahl) zu PIN8 von ARDUINO UNO
PIN5 oder RW (Lesen / Schreiben) nach Masse (versetzt das LCD in den Lesemodus, erleichtert die Kommunikation für den Benutzer)
PIN6 oder E (Aktivieren) bis PIN9 von ARDUINO UNO
PIN11 oder D4 bis PIN7 von ARDUINO UNO
PIN12 oder D5 bis PIN11 von ARDUINO UNO
PIN13 oder D6 bis PIN12 von ARDUINO UNO
PIN14 oder D7 bis PIN13 von ARDUINO UNO
Die Anschlüsse für den Farbsensor sind nachstehend aufgeführt:
VDD auf + 5V
GND zu BODEN
OE (Ausgabe aktivieren) auf GND
S0 bis UNO Pin 2
S1 bis UNO Pin 3
S2 bis UNO Pin 4
S3 bis UNO Pin 5
OUT zu UNO Pin 10
Die Farbe, die vom Farbsensor erfasst werden muss, wird über zwei Pins S2 und S3 ausgewählt. Mit dieser Logiksteuerung mit zwei Pins können wir dem Sensor mitteilen, welche Farblichtintensität gemessen werden soll.
Angenommen, wir müssen die ROTE Farbintensität erfassen, um beide Pins auf NIEDRIG zu setzen. Sobald dies erledigt ist, erkennt der Sensor die Intensität und sendet den Wert an das Steuerungssystem im Modul.
S2 |
S3 |
Fotodiodentyp |
L. |
L. |
rot |
L. |
H. |
Blau |
H. |
L. |
Löschen (kein Filter) |
H. |
H. |
Grün |
Das Steuerungssystem im Modul ist in der Abbildung dargestellt. Die vom Array gemessene Lichtintensität wird an den Strom-Frequenz-Wandler gesendet. Es gibt eine Rechteckwelle aus, deren Frequenz sich auf den von ARRAY gesendeten Strom bezieht.
Wir haben also ein System, das eine Rechteckwelle aussendet, deren Frequenz von der Lichtintensität der Farbe abhängt, die von S2 und S3 ausgewählt wird.
Die vom Modul gesendete Signalfrequenz kann je nach Verwendung moduliert werden. Wir können die Frequenzbandbreite des Ausgangssignals ändern.
S0 |
S1 |
Ausgangsfrequenzskalierung (f 0) |
L. |
L. |
Stromausfall |
L. |
H. |
2% |
H. |
L. |
20% |
H. |
H. |
100% |
Die Frequenzskalierung erfolgt durch zwei Bits S0 und S1. Der Einfachheit halber werden wir die Frequenzskalierung auf 20% begrenzen. Dies erfolgt durch Einstellen von S0 auf High und S1 auf LOW. Diese Funktion ist praktisch, wenn wir das Modul auf einem System mit niedrigem Takt verwenden.
Die Farbempfindlichkeit des Arrays ist in der folgenden Abbildung dargestellt.
Obwohl verschiedene Farben unterschiedliche Empfindlichkeit haben, macht es für einen normalen Gebrauch keinen großen Unterschied.
Die UNO sendet hier ein Signal an das Modul, um Farben zu erkennen, und die vom Modul empfangenen Daten werden auf dem daran angeschlossenen 16 * 2-LCD angezeigt.
Die UNO erkennt drei Farbintensitäten getrennt und zeigt sie auf dem LCD an.
Der Uno kann die Signalimpulsdauer erfassen, mit der wir die Frequenz der vom Modul gesendeten Rechteckwelle erhalten können. Mit der Frequenz können wir sie mit der Farbe am Sensor abgleichen.
|
Wie durch die obige Bedingung liest die UNO Pulsdauer auf 10 th Stift UNO und speichern sie in „Frequenz“ ganzzahliger Wert.
Wir werden dies für alle drei Farben zur Farberkennung tun. Alle drei Farbintensitäten werden durch Frequenzen auf dem 16x2-LCD angezeigt.