- Wymagane komponenty:
- Czujnik koloru TCS3200 działa
- Pinout czujnika koloru TCS3200:
- Schemat obwodu
- Objaśnienie kodu
W tym projekcie będziemy pracować nad innowacyjnym pomysłem na projekt arduino, w którym możemy policzyć banknoty papierowe i obliczyć ich ilość, wyczuwając walutę papierową za pomocą czujnika koloru i Arduino. Czujnik koloru TCS230 posłuży do wykrywania banknotów, a Arduino UNO do przetwarzania danych i wyświetlania pozostałego salda na wyświetlaczu LCD 16x2.
Wymagane komponenty:
- Arduino UNO
- Czujnik koloru TCS230
- Czujnik podczerwieni
- Płytka prototypowa
- 16 * 2 alfanumeryczny wyświetlacz LCD
- Podłączanie przewodów
Czujnik koloru TCS3200 działa
Czujnik koloru TCS3200 służy do wykrywania szerokiej gamy kolorów. Wcześniej połączyliśmy czujnik koloru TCS3200 z Arduino i Raspberry pi, a także stworzyliśmy kilka przydatnych projektów, takich jak maszyna do sortowania kolorów.
Czujnik TCS230 posiada wbudowane diody podczerwieni, które służą do oświetlania obiektu, którego kolor ma być wykrywany. Zapewnia to brak wpływu zewnętrznego światła otoczenia na obiekt. Ten czujnik odczytuje fotodiodę z matrycy 8 * 8, która składa się z 16 fotodiod z czerwonymi filtrami, 16 z niebieskimi filtrami, 16 z zielonymi i 16 fotodiodami bez żadnego filtra. Każda z tablic czujników w tych trzech tablicach jest wybierana oddzielnie w zależności od wymagań. Dlatego jest znany jako programowalny czujnik. Moduł można opisać, aby wyczuwać określony kolor i pozostawić pozostałe. Zawiera filtry do tego celu wyboru. Istnieje czwarty tryb zwany „trybem bez filtra”, w którym czujnik wykrywa białe światło.
Sygnał wyjściowy czujnika koloru TCS230 to fala prostokątna z 50% wypełnieniem, a jej częstotliwość jest proporcjonalna do natężenia światła wybranego filtra.
Pinout czujnika koloru TCS3200:
VDD- Pin zasilania napięciem czujnika. Jest zasilany napięciem 5 V DC.
GND - Styk odniesienia masy czujnika koloru
S0, S1- Wejścia wyboru skalowania częstotliwości wyjściowej
S2, S3- Wejścia wyboru typu fotodiody
OUT- Styk wyjściowy czujnika koloru
OE- Włącz pin dla częstotliwości wyjściowej
W tym projekcie wykorzystaliśmy również czujnik podczerwieni, którego działanie można zrozumieć, klikając poniższy link.
Schemat obwodu
Poniżej znajduje się schemat obwodu licznika pieniędzy Arduino:
Tutaj stworzyłem małą strukturę, taką jak maszyna do przesuwania walut POS przy użyciu kartonów. W tej konstrukcji czujnik koloru i czujnik podczerwieni są przymocowane do tektury, jak pokazano na poniższym obrazku.
Tutaj czujnik podczerwieni służy do wykrywania obecności waluty w gnieździe i jeśli jest notatka, czujnik koloru wykryje kolor notatki i wyśle wartość koloru do Arduino. Arduino dodatkowo oblicza wartość waluty na podstawie koloru banknotu.
Objaśnienie kodu
Kompletny kod wraz z filmem demonstracyjnym znajduje się na końcu artykułu. Tutaj krokowe wyjaśnienie pełnego kodu jest podane poniżej.
Najpierw uwzględnij wszystkie biblioteki w programie. Tutaj potrzebujemy tylko biblioteki LCD, która ma być włączona do programu. Następnie zadeklaruj wszystkie zmienne użyte w kodzie.
#zawierać
W programie setup () wydrukuj wiadomość powitalną na wyświetlaczu LCD i zdefiniuj wszystkie kierunki danych pinów cyfrowych używanych w tym projekcie. Następnie ustaw skalowanie częstotliwości wyjściowej czujnika koloru, w moim przypadku jest ustawione na 20%, co można ustawić, podając impuls WYSOKI do S0 i NISKI impuls do S1.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Inteligentny portfel"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); opóźnienie (2000); lcd.clear (); pinMode (2, OUTPUT); // S0 pinMode (3, OUTPUT); // S1 pinMode (11, OUTPUT); // S2 pinMode (12, OUTPUT); // S3 pinMode (13, INPUT); // OUT digitalWrite (2, WYSOKI); digitalWrite (3, NISKI); }
Wewnątrz nieskończonej pętli () odczytaj wszystkie dane wyjściowe z czujników. Sygnał wyjściowy z czujnika podczerwieni można znaleźć, odczytując styk A0, a wyjściowe częstotliwości kolorów można znaleźć, wywołując poszczególne funkcje zapisane jako czerwony (), niebieski () i zielony (). Następnie wydrukuj je wszystkie na monitorze szeregowym. Jest to potrzebne, gdy musimy dodać nową walutę do naszego projektu.
czujnik int = digitalRead (A0); int red1 = red (); int blue1 = blue (); int green1 = green (); Serial.println (czerwony1); Serial.println (niebieski1); Serial.println (zielony1); Serial.println ("-----------------------------");
Następnie zapisz wszystkie warunki, aby sprawdzić częstotliwość wyjściową czujnika koloru z częstotliwością odniesienia, którą ustawiliśmy wcześniej. Jeśli pasuje, odejmuje określoną kwotę z salda w portfelu.
if (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == HIGH) {a = 1; } else if (czujnik == LOW && a == 1) {a = 0; if (łącznie> = 10) {lcd.setCursor (0, 1); lcd.print ("10 rupii !!!"); suma = suma-10; opóźnienie (1500); lcd.clear (); }}
Tutaj ustawiliśmy warunki tylko dla 10 rupii i 50 rupii. Kolor Uwaga, możesz ustawić więcej warunków, aby wykryć więcej nie. banknotów.
Uwaga: Wyjście częstotliwościowe może się różnić w twoim przypadku w zależności od oświetlenia zewnętrznego i konfiguracji czujnika. Dlatego zaleca się sprawdzenie częstotliwości wyjściowej waluty i odpowiednie ustawienie wartości odniesienia.
Poniższy kod pokaże dostępne saldo w portfelu na wyświetlaczu LCD 16x2.
lcd.setCursor (0, 0); lcd.print ("Saldo łącznie:"); lcd.setCursor (11, 0); lcd.print (łącznie); opóźnienie (1000);
Następująca funkcja pobierze wyjściową częstotliwość kolorów zawartości czerwieni w walucie. Podobnie możemy napisać inne funkcje, aby uzyskać wartość zawartości koloru niebieskiego i zielonego.
int red () {digitalWrite (11, LOW); digitalWrite (12, NISKI); częstotliwość = PulseIn (OutPut, LOW); częstotliwość powrotu; }
W ten sposób można łatwo zbudować licznik pieniędzy oparty na Arduino, używając kilku komponentów. Możemy go dalej modyfikować, integrując przetwarzanie obrazu i kamerę w celu wykrywania waluty za pomocą obrazu, dzięki czemu będzie dokładniejszy i będzie w stanie wykryć każdą walutę.