Czujnik Koloru oparty na Arduino wykorzystujący czujnik koloru TCS230
w tym projekcie zamierzamy połączyć czujnik koloru tcs3200 z Arduino UNO. TCS3200 to czujnik koloru, który może wykryć dowolną liczbę kolorów za pomocą odpowiedniego programowania. TCS3200 zawiera tablice RGB (Czerwony Zielony Niebieski). Jak pokazano na rysunku na poziomie mikroskopowym można zobaczyć kwadratowe pudełka wewnątrz oka na czujniku. Te kwadratowe pola są tablicami macierzy RGB. Każde z tych pudełek zawiera trzy czujniki, jeden służy do wykrywania intensywności światła czerwonego, jeden do wykrywania intensywności światła zielonego, a ostatni do wykrywania intensywności światła niebieskiego.
każda z matryc czujników w tych trzech matrycach jest wybierana oddzielnie w zależności od wymagań. Stąd jest znany jako programowalny czujnik. Moduł może być wyposażony w celu wyczucia konkretnego koloru i pozostawienia innych. Zawiera filtry do tego celu wyboru. Istnieje tryb forth, który nie jest trybem filtra. Bez trybu filtrowania czujnik wykrywa białe światło.
wymagane komponenty
Sprzęt: ARDUINO UNO, zasilacz (5v), LED,jhd_162alcd (16*2lcd), czujnik koloru TCS3200.
oprogramowanie: Arduino IDE (Arduino nightly).
schemat obwodu i Wyjaśnienie pracy
w wyświetlaczu LCD 16×2 jest 16 pinów, jeśli jest podświetlenie, jeśli nie ma podświetlenia, będzie 14 pinów. Można zasilać lub zostawiać Szpilki podświetlenia. Teraz w 14 pinach znajduje się 8 pinów danych (7-14 lub D0-D7), 2 piny Zasilające (1&2 lub VSS&VDD lub GND&+5V), 3 pin do kontroli kontrastu (VEE-kontroluje, jak grube mają być wyświetlane znaki) i 3 piny kontrolne (RS&RW&E)
w obwodzie można zauważyć, że mam tylko wziął dwa kołki sterujące. Bit kontrastu i odczyt / zapis nie są często używane, więc mogą być zwarte do masy. To stawia wyświetlacz LCD w najwyższym kontraście i trybie odczytu. Musimy tylko kontrolować piny ENABLE i rs, aby odpowiednio wysyłać znaki i dane.
poniżej podano połączenia wykonane dla LCD:
PIN1 lub VSS do masy
PIN2 lub VDD lub VCC do +5V Zasilania
PIN3 lub VEE do masy (daje maksymalny kontrast najlepszy dla początkujących)
PIN4 lub RS (wybór rejestru) do PIN8 ARDUINO UNO
PIN5 lub RW (Odczyt/Zapis) do masy (
pin6 lub e (enable) TOPIN9 Arduino UNO
PIN11 lub D4 Na PIN7 Arduino UNO
pin12 lub d5 na PIN11 Arduino UNO
PIN13 lub D6 na PIN12 Arduino Uno
PIN14 lub D7 na pin13 arduino uno
połączenia które są wykonane dla czujnika koloru są podane poniżej:
VDD do +5V
GND do masy
OE (Output Enable) do GND
S0 do uno pin 2
S1 do uno pin 3
S2 do uno pin 4
S3 to uno pin 5
out to UNO PIN 10
kolor, który musi być wykrywany przez czujnik koloru, jest wybierany przez dwa piny S2 i S3. Za pomocą tych dwóch pinów sterowania logicznego możemy powiedzieć czujnikowi, które natężenie światła koloru ma być mierzone.
powiedzmy, że musimy wyczuć intensywność koloru czerwonego, musimy ustawić oba piny na niskie. Po wykonaniu tej czynności czujnik wykrywa intensywność i wysyła wartość do systemu sterowania wewnątrz modułu.
S2 |
S3 |
Typ fotodiody |
L |
L |
Czerwony |
L |
H |
Niebieski |
H |
L |
Wyczyść (bez filtra) |
H |
H |
Zielony |
układ sterowania wewnątrz modułu jest pokazany na rysunku. Natężenie światła mierzone przez tablicę jest przesyłane do prądu do przetwornicy częstotliwości. Emituje falę kwadratową, której częstotliwość jest związana z prądem wysyłanym przez ARRAY.
mamy więc system, który wysyła falę kwadratową, której częstotliwość zależy od natężenia światła koloru wybranego przez S2 i S3.
częstotliwość sygnału wysyłanego przez moduł może być modulowana w zależności od zastosowania. Możemy zmienić pasmo częstotliwości sygnału wyjściowego.
S0 |
S1 |
skalowanie częstotliwości wyjściowej (f0) |
L |
L |
Power Down |
L |
H |
2% |
H |
L |
20% |
H |
H |
100% |
skalowanie częstotliwości odbywa się za pomocą dwóch bitów S0 i S1. Dla wygody ograniczymy skalowanie częstotliwości do 20%. Odbywa się to poprzez ustawienie S0 na wysoki i S1 na niski. Funkcja ta przydaje się, gdy korzystamy z modułu w systemie z niskim zegarem.
czułość tablicy na kolor jest pokazana na poniższym rysunku.
chociaż różne kolory mają różną czułość, dla normalnego użytkowania NIE zrobi to dużej różnicy.
UNO tutaj wysyła sygnał do modułu w celu wykrycia kolorów, a dane odbierane przez moduł są wyświetlane na podłączonym do niego wyświetlaczu LCD 16*2.
Uno wykrywa trzy intensywności kolorów oddzielnie i pokazuje je na wyświetlaczu LCD.
Uno może wykryć czas trwania impulsu sygnału, dzięki któremu możemy uzyskać częstotliwość fali kwadratowej wysyłanej przez moduł. Z podaną częstotliwością możemy dopasować ją do koloru na czujniku.
- int frequency = pulseIn (10, LOW);