- Vereiste componenten:
- TCS3200 kleursensor werkt
- Pinout van TCS3200-kleursensor:
- Schakelschema
- Code Uitleg
In dit project gaan we werken aan een innovatief Arduino-projectidee, waarbij we de papieren bankbiljetten kunnen tellen en hun bedrag kunnen berekenen door de papiervaluta te detecteren met behulp van Color Sensor en Arduino. De TCS230-kleurensensor wordt gebruikt voor het detecteren van de bankbiljetten en Arduino UNO voor het verwerken van de gegevens en het weergeven van het resterende saldo op een 16x2 LCD.
Vereiste componenten:
- Arduino UNO
- TCS230 Kleurensensor
- IR-sensor
- Breadboard
- 16 * 2 Alfanumeriek LCD
- Verbindingsdraden
TCS3200 kleursensor werkt
De TCS3200-kleurensensor wordt gebruikt om een breed scala aan kleuren waar te nemen. We hebben eerder de TCS3200-kleurensensor gekoppeld aan Arduino en Raspberry pi, en we hebben ook een aantal nuttige projecten gebouwd, zoals een kleursorteermachine.
De TCS230-sensor heeft ingebouwde infrarood-LED's die worden gebruikt om het object waarvan de kleur moet worden gedetecteerd, te verlichten. Dit zorgt ervoor dat er geen invloeden van extern omgevingslicht op het object komen. Deze sensor leest een fotodiode van 8 * 8 array, die bestaat uit 16 fotodiodes met rode filters, 16 met blauwe filters, 16 met groene filters en 16 fotodiodes zonder filter. Elk van de sensorarrays in deze drie arrays wordt afzonderlijk geselecteerd, afhankelijk van de vereisten. Daarom staat het bekend als een programmeerbare sensor. De module kan worden gebruikt om de specifieke kleur aan te voelen en de andere te verlaten. Het bevat filters voor dat selectiedoeleinden. Er is een vierde modus genaamd ' geen filtermodus' waarin de sensor wit licht detecteert.
Het uitgangssignaal van de TCS230 kleurensensor is een blokgolf met een duty cycle van 50% en de frequentie is evenredig met de lichtintensiteit van het geselecteerde filter.
Pinout van TCS3200-kleursensor:
VDD- Voedingspin van sensor. Het wordt geleverd met 5V DC.
GND - Aardingsreferentiepin van een kleurensensor
S0, S1 - Selectie van uitgangsfrequentieschaling ingangen
S2, S3- Selectie van het fotodiode-type
OUT- Uitgangspen van een kleurensensor
OE- Enable pin voor output frequentie
We hebben in dit project ook een IR-sensor gebruikt, waarvan de werking kan worden begrepen via de volgende link.
Schakelschema
Hieronder ziet u het schakelschema voor de Arduino Money Counter:
Hier heb ik een kleine structuur gemaakt zoals een POS-valuta-veegmachine met behulp van karton. In deze structuur zijn een kleurensensor en een IR-sensor bevestigd met het karton, zoals weergegeven in de onderstaande afbeelding.
Hier wordt de IR-sensor gebruikt om de aanwezigheid van valuta in de sleuf te detecteren en als er een notitie is, zal de kleurensensor de kleur van de notitie detecteren en de kleurwaarde naar Arduino sturen. En Arduino berekent verder de valutawaarde op basis van de kleur van het biljet.
Code Uitleg
De volledige code en een demovideo vindt u aan het einde van het artikel. Hieronder wordt de stapsgewijze uitleg van de volledige code gegeven.
Neem eerst alle bibliotheken op in het programma. Hier hebben we alleen de LCD-bibliotheek nodig om in het programma te worden opgenomen. Declareer vervolgens alle variabelen die in de code worden gebruikt.
# omvatten
Druk in setup () het welkomstbericht af op het LCD-scherm en definieer alle datarichtingen van digitale pinnen die in dit project worden gebruikt. Stel vervolgens de uitgangsfrequentieschaling van de kleursensor in, in mijn geval is deze ingesteld op 20%, wat kan worden ingesteld door een HOGE puls aan S0 en een LAGE puls aan S1 te geven.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Smart Wallet"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); vertraging (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, LOW); }
Lees binnen de oneindige lus () alle gegevensuitvoer van de sensoren. De output van de IR-sensor kan worden gevonden door de A0-pin te lezen en de output-kleurfrequenties kunnen worden gevonden door de afzonderlijke functies op te roepen die zijn geschreven als rood (), blauw () en groen (). Druk ze vervolgens allemaal af op de seriële monitor. Dit is nodig wanneer we een nieuwe valuta aan ons project moeten toevoegen.
int sensor = digitalRead (A0); int red1 = rood (); int blue1 = blauw (); int green1 = groen (); Serial.println (red1); Serial.println (blue1); Serial.println (green1); Serial.println ("-----------------------------");
Schrijf vervolgens alle voorwaarden op om de uitgangsfrequentie van de kleursensor te controleren met de referentiefrequentie die we eerder hebben ingesteld. Als het overeenkomt, wordt het opgegeven bedrag afgetrokken van het saldo van de portemonnee.
if (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == HIGH) {a = 1; } else if (sensor == LOW && a == 1) {a = 0; if (totaal> = 10) {lcd.setCursor (0, 1); lcd.print ("10 Rupees !!!"); totaal = totaal-10; vertraging (1500); lcd.clear (); }}
Hier hebben we alleen de voorwaarden ingesteld voor 10 roepies en 50 roepies Opmerking kleur, je kunt meer voorwaarden instellen om meer nee te detecteren. van bankbiljetten.
Opmerking: de frequentie-uitgang kan in uw geval verschillen, afhankelijk van de externe verlichting en sensoropstelling. Het wordt dus aanbevolen om de uitvoerfrequentie van uw valuta te controleren en de referentiewaarde dienovereenkomstig in te stellen.
De onderstaande code toont het beschikbare saldo in de portemonnee op het 16x2 LCD-scherm.
lcd.setCursor (0, 0); lcd.print ("Total Bal:"); lcd.setCursor (11, 0); lcd.print (totaal); vertraging (1000);
De volgende functie krijgt de uitvoerkleurfrequentie van rode inhoud in de valuta. Evenzo kunnen we andere functies schrijven om waarde te krijgen voor de inhoud van blauwe en groene kleuren.
int red () {digitalWrite (11, LOW); digitalWrite (12, LOW); frequentie = pulseIn (OutPut, LOW); terugkeer frequentie; }
Dit is dus hoe een op Arduino gebaseerde geldmeter eenvoudig kan worden gebouwd met behulp van een paar componenten. We kunnen het verder aanpassen door een aantal beeldverwerking en camera te integreren om de valuta met behulp van de afbeelding te detecteren, op die manier zal het nauwkeuriger zijn en elke valuta kunnen detecteren.