- Potrebne komponente:
- TCS3200 senzor u boji radi
- Pinout TCS3200 senzora u boji:
- Kružni dijagram
- Objašnjenje koda
U ovom ćemo projektu raditi na inovativnoj ideji projekta arduino, gdje možemo računati novčanice papirnate valute i izračunati njihov iznos, senzibiranjem papirnate valute pomoću Color Sensor i Arduino. TCS230 senzor u boji koristit će se za otkrivanje novčanica, a Arduino UNO za obradu podataka i prikaz preostalog stanja na LCD zaslonu 16x2.
Potrebne komponente:
- Arduino UNO
- TCS230 senzor u boji
- IR senzor
- Breadboard
- 16 * 2 alfanumerički LCD
- Spajanje žica
TCS3200 senzor u boji radi
 
TCS3200 senzor u boji koristi se za prepoznavanje širokog raspona boja. Prethodno smo povezali TCS3200 senzor u boji s Arduinom i Raspberry pi, a napravili smo i neke korisne projekte poput stroja za sortiranje u boji.
TCS230 senzor ima ugrađene infracrvene LED diode koje se koriste za osvjetljavanje predmeta čija će se boja detektirati. To osigurava da na objekt neće utjecati vanjska svjetlost koja ga okružuje. Ovaj senzor očitava niz fotodioda od 8 * 8, koji se sastoji od 16 fotodioda s crvenim filtrima, 16 s plavim filtrima, 16 sa zelenim filtrima i 16 fotodioda bez ikakvog filtra. Svaki od polja senzora u ova tri niza odabire se zasebno, ovisno o zahtjevu. Stoga je poznat i kao programabilni senzor. Modul se može prikazati tako da osjeti određenu boju i napusti ostale. Sadrži filtre za tu svrhu odabira. Postoji četvrti način rada koji se naziva „način rada bez filtra“ u kojem senzor otkriva bijelu svjetlost.
Izlazni signal senzora u boji TCS230 kvadratni je val s radnim ciklusom od 50% i njegova je frekvencija proporcionalna intenzitetu svjetlosti odabranog filtra.

Pinout TCS3200 senzora u boji:

VDD - Osigurač napona na osjetniku. Opskrbljen je s 5V DC.
GND - Referentni pin uzemljenja senzora u boji
S0, S1 - ulazi za odabir skaliranja izlazne frekvencije
S2, S3- Ulazi za odabir tipa foto-diode
OUT - Izlazni klin senzora u boji
OE- Omogući pin za izlaznu frekvenciju
U ovom smo projektu koristili i IR senzor čiji rad možemo razumjeti na sljedećoj poveznici.
Kružni dijagram
Ispod je shema spojeva za Arduino brojač novca:

Ovdje sam izradio malu strukturu poput automata za pomicanje POS valuta pomoću kartona. U ovoj su strukturi senzori u boji i IR senzori učvršćeni s kartonom kao što je prikazano na donjoj slici.

Ovdje se IR senzor koristi za otkrivanje prisutnosti valute unutar utora, a ako postoji bilješka, tada će senzor boje prepoznati boju Notea i poslati vrijednost boje Arduinu. A Arduino nadalje izračunava vrijednost valute na temelju boje note.
Objašnjenje koda
Kompletni kôd zajedno s demonstracijskim videozapisom dan je na kraju članka. Ovdje je detaljno objašnjenje kompletnog koda dano u nastavku.
Prvo, uključite sve knjižnice u program. Ovdje nam treba samo LCD knjižnica koja će biti uključena u program. Zatim deklarirajte sve varijable korištene u kodu.
#include
Unutar postavljanja () ispišite poruku dobrodošlice na LCD i definirajte sve podatkovne upute digitalnih igla korištenih u ovom projektu. Dalje, postavite skaliranje izlazne frekvencije senzora u boji, u mom slučaju je postavljeno na 20% što se može postaviti davanjem VISOKOG pulsa na S0 i NISKOG impulsa na S1.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Pametni novčanik"); lcd.setCursor (0,1); lcd.print ("Circuit Digest"); kašnjenje (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, VISOKO); digitalWrite (3, LOW); }
Unutar beskonačne petlje () pročitajte sve izlaze podataka sa senzora. Izlaz iz IR senzora može se pronaći očitavanjem A0 pina, a izlazne frekvencije boja mogu se pronaći pozivanjem pojedinačnih funkcija napisanih kao crvena (), plava () i zelena (). Zatim ih sve ispišite na serijski monitor. To je potrebno kada u naš projekt moramo dodati novu valutu.
int senzor = digitalRead (A0); int crveno1 = crveno (); int blue1 = blue (); int green1 = green (); Serial.println (crveni1); Serial.println (plava1); Serial.println (zeleni1); Serial.println ("-----------------------------");
Zatim napišite sve uvjete za provjeru izlazne frekvencije senzora u boji s referentnom frekvencijom koju smo prethodno postavili. Ako se podudara, navedeni iznos oduzima od stanja novčanika.
ako je (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == HIGH) {a = 1; } inače ako (senzor == LOW && a == 1) {a = 0; if (ukupno> = 10) {lcd.setCursor (0,1); lcd.print ("10 rupija !!!"); ukupno = ukupno-10; kašnjenje (1500); lcd.clear (); }}
Ovdje smo postavili uvjete samo za boju 10 rupija i 50 rupija, možete postaviti više uvjeta za otkrivanje više ne. novčanica.

Napomena: Izlaz frekvencije može se razlikovati u vašem slučaju, ovisno o vanjskom osvjetljenju i postavkama senzora. Stoga se preporučuje provjeriti izlaznu učestalost vaše valute i u skladu s tim postaviti referentnu vrijednost.

Kôd u nastavku prikazat će dostupno stanje u novčaniku na LCD zaslonu 16x2.
lcd.setCursor (0, 0); lcd.print ("Total Bal:"); lcd.setCursor (11, 0); lcd.print (ukupno); kašnjenje (1000);
Sljedeća funkcija dobit će izlaznu učestalost boja crvenog sadržaja u valuti. Slično tome, možemo napisati druge funkcije da bismo dobili vrijednost za sadržaj plave i zelene boje.
int red () {digitalWrite (11, LOW); digitalWrite (12, LOW); frekvencija = pulseIn (OutPut, LOW); povratna frekvencija; }
Dakle, ovo je način na koji se brojilo novca zasnovano na Arduinu može lako napraviti pomoću nekoliko komponenti. Možemo ga dalje modificirati integriranjem neke obrade slike i kamere za otkrivanje valute pomoću slike, na taj će način biti precizniji i moći će otkriti bilo koju valutu.

