- Nødvendige komponenter:
- TCS3200 farvesensor fungerer
- Pinout af TCS3200 farvesensor:
- Kredsløbsdiagram
- Kode Forklaring
I dette projekt skal vi arbejde på en innovativ arduino-projektide, hvor vi kan tælle papirvalutasedlerne og beregne deres beløb ved at registrere papirvalutaen ved hjælp af Color Sensor og Arduino. TCS230 farvesensor vil blive brugt til at detektere valuta sedler og Arduino UNO til behandling af data og vise den resterende saldo på 16x2 LCD.
Nødvendige komponenter:
- Arduino UNO
- TCS230 Farvesensor
- IR-sensor
- Brødbræt
- 16 * 2 Alfanumerisk LCD
- Tilslutning af ledninger
TCS3200 farvesensor fungerer
TCS3200-farvesensoren bruges til at mærke en bred vifte af farver. Vi har tidligere interfacet TCS3200 farvesensor med Arduino og Raspberry pi, og vi har også bygget nogle nyttige projekter som farvesorteringsmaskine.
TCS230-sensoren har indbyggede infrarøde lysdioder, der bruges til at tænde objektet, hvis farve skal detekteres. Dette sikrer, at der ikke er nogen påvirkning af eksternt omgivende lys på objektet. Denne sensor læser en fotodiode på 8 * 8 array, som består af 16 fotodioder med røde filtre, 16 med blå filtre, 16 med grønne filtre og 16 fotodioder uden noget filter. Hver af sensorarrays i disse tre arrays vælges separat afhængigt af kravet. Derfor er det kendt som en programmerbar sensor. Modulet kan præsenteres for at mærke den særlige farve og for at forlade de andre. Den indeholder filtre til det valgte formål. Der er en fjerde tilstand kaldet ' intet filtertilstand', hvor sensoren registrerer hvidt lys.
Udgangssignalet fra TCS230-farvesensoren er en firkantbølge med en 50% -cyklus, og dens frekvens er proportional med lysintensiteten for det valgte filter.
Pinout af TCS3200 farvesensor:
VDD- Spændingsforsyningsstift på sensoren. Den leveres med 5V DC.
GND- Jordreferencestift på en farvesensor
S0, S1- Valg af indgang til valg af skaleringsfrekvens
S2, S3 - Valg af indgange til fotodiode
OUT- Udgangsstift på en farvesensor
OE- Aktiver pin til udgangsfrekvens
Vi har også brugt en IR-sensor i dette projekt, hvis arbejde kan forstås ved følgende link.
Kredsløbsdiagram
Nedenfor er kredsløbsdiagrammet til Arduino Money Counter:
Her har jeg lavet en lille struktur som en POS-valutaswiping-maskine ved hjælp af pap. I denne struktur er en farvesensor og en IR-sensor fastgjort med pap som vist på billedet nedenfor.
Her bruges IR-sensoren til at registrere tilstedeværelsen af valuta inde i slotten, og hvis der er en note, vil farvesensoren registrere farven på noten og sende farveværdien til Arduino. Og Arduino beregner yderligere valutaens værdi baseret på noteens farve.
Kode Forklaring
Komplet kode sammen med en demo-video findes i slutningen af artiklen. Her gives den trinvise forklaring af den komplette kode nedenfor.
Først skal du inkludere alle bibliotekerne i programmet. Her behøver vi kun LCD-biblioteket for at blive inkluderet i programmet. Erklær derefter alle de variabler, der er brugt i koden.
#omfatte
Inde i opsætning () skal du udskrive velkomstmeddelelsen på LCD og definere alle dataretninger for digitale ben, der bruges i dette projekt. Indstil derefter udgangsfrekvensskalering af farvesensoren, i mit tilfælde er den indstillet til 20%, som kan indstilles ved at give HØJ puls til S0 og LAV puls til S1.
ugyldig opsætning () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Smart Wallet"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); forsinkelse (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, HIGH); digitalWrite (3, LAV); }
Inde i uendelig sløjfe () skal du læse alle dataudgangene fra sensorerne. Outputtet fra IR-sensoren kan findes ved at læse A0-stiften, og outputfarvefrekvenser kan findes ved at kalde de enkelte funktioner skrevet som rød (), blå () og grøn (). Udskriv dem alle derefter på den serielle skærm. Dette er nødvendigt, når vi har brug for at tilføje en ny valuta til vores projekt.
int-sensor = digitalRead (A0); int rød1 = rød (); int blue1 = blå (); int grøn1 = grøn (); Serial.println (rød1); Serial.println (blå1); Serial.println (grøn1); Serial.println ("-----------------------------");
Skriv derefter alle betingelserne for at kontrollere udgangsfrekvensen for farvesensoren med den referencefrekvens, som vi tidligere har indstillet. Hvis det matcher, trækker du det angivne beløb fra tegnebogens saldo.
hvis (rød1> = 20 && rød1 <= 25 && blå1> = 30 && blå1 <= 35 && grøn1> = 30 && grøn1 <= 35 && a == 0 && sensor == HØJ) {a = 1; } ellers hvis (sensor == LAV && a == 1) {a = 0; hvis (total> = 10) {lcd.setCursor (0, 1); lcd.print ("10 Rupees !!!"); total = total-10; forsinkelse (1500); lcd.clear (); }}
Her har vi kun indstillet betingelserne for 10 Rupees og 50 Rupees Bemærk farve, du kan indstille flere betingelser for at opdage mere nr. af pengesedler.
Bemærk: Frekvensoutputtet kan være forskelligt i dit tilfælde afhængigt af den eksterne belysning og sensoropsætningen. Så det anbefales at kontrollere outputfrekvensen for din valuta og indstille referenceværdien i overensstemmelse hermed.
Nedenstående kode viser den tilgængelige saldo i tegnebogen på 16x2 LCD.
lcd.setCursor (0, 0); lcd.print ("Samlet balance:"); lcd.setCursor (11, 0); lcd.print (total); forsinkelse (1000);
Den følgende funktion får outputfarvefrekvensen for rødt indhold i valutaen. På samme måde kan vi skrive andre funktioner for at få værdi for blå og grøn farveindhold.
int rød () {digitalWrite (11, LAV); digitalWrite (12, LAV); frekvens = pulseIn (OutPut, LOW); returfrekvens }
Så det er sådan, en Arduino-baseret pengetæller let kan bygges ved hjælp af få komponenter. Vi kan ændre det yderligere ved at integrere noget billedbehandling og kamera for at registrere valutaen ved hjælp af billedet, på den måde bliver det mere nøjagtigt og vil være i stand til at opdage enhver valuta.