- Szükséges alkatrészek:
- TCS3200 színes érzékelő működik
- A TCS3200 színes érzékelő kivezetése:
- Kördiagramm
- Kód Magyarázat
Ebben a projektben egy innovatív arduino projektötleten fogunk dolgozni, ahol megszámlálhatjuk a papírvaluta-bankjegyeket és kiszámíthatjuk azok összegét, a papírvaluta érzékelésével a Color Sensor és Arduino segítségével. A TCS230 színes érzékelőt a pénznemek felismerésére, az Arduino UNO-t az adatok feldolgozására és a fennmaradó egyenleg 16x2 LCD-n történő megjelenítésére használják.
Szükséges alkatrészek:
- Arduino UNO
- TCS230 Színérzékelő
- IR érzékelő
- Kenyérlemez
- 16 * 2 alfanumerikus LCD
- Vezetékek csatlakoztatása
TCS3200 színes érzékelő működik
A TCS3200 színérzékelőt a színek széles skálájának érzékelésére használják. Korábban összekötöttük a TCS3200 színérzékelőt az Arduino és a Raspberry pi programmal, és építettünk néhány hasznos projektet, például a Color válogató gépet.
A TCS230 érzékelő beépített infravörös LED-ekkel világít az objektumra, amelynek színét észlelni kell. Ez biztosítja, hogy a külső környező fény ne érintse az objektumot. Ez az érzékelő egy 8 * 8 tömbből álló fotodiódát olvas le, amely 16 fotodiódából áll, piros szűrőkből, 16 kék szűrőkből, 16 zöld szűrőkből, 16 zöld szűrőkből és 16 fotodiódából, amelyekben nincs szűrő. A három tömb mindegyik érzékelő tömbje külön-külön kerül kiválasztásra a követelményektől függően. Ezért programozható érzékelőként ismert. A modul megjeleníthető az adott szín érzékeléséhez és a többiek elhagyásához. Szűrőket tartalmaz a kiválasztás céljára. Van egy negyedik mód, az úgynevezett „ nincs szűrő mód”, amelyben az érzékelő fehér fényt érzékel.
A TCS230 színes érzékelő kimenő jele négyszög hullám, 50% -os munkaciklussal, és frekvenciája arányos a kiválasztott szűrő fényerősségével.
A TCS3200 színes érzékelő kivezetése:
VDD - Az érzékelő feszültségellátó csapja. 5 V DC-vel szállítják.
GND - Színes érzékelő földelt referenciatűje
S0, S1- Kimeneti frekvencia méretezés kiválasztó bemenetek
S2, S3- Photo-dióda típus kiválasztó bemenetek
OUT- egy színes érzékelő kimeneti csapja
OE- Tű engedélyezése a kimeneti frekvenciához
Ebben a projektben egy IR szenzort is használtunk, amelynek működését a következő hivatkozás értheti meg.
Kördiagramm
Az alábbiakban az Arduino Money Counter kapcsolási rajza látható:
Itt készítettem egy olyan kis szerkezetet, mint egy POS pénznemcsúsztató gép, kartonok segítségével. Ebben a struktúrában egy színérzékelőt és egy IR-érzékelőt rögzítenek a kartonnal, mint az alábbi képen látható.
Itt az IR szenzort használják a pénznem jelenlétének érzékelésére a nyíláson belül, és ha van jegyzet, akkor a színérzékelő érzékeli a Note színét és elküldi a színértéket az Arduino-nak. Az Arduino pedig tovább számolja a valutaértéket a bankjegy színe alapján.
Kód Magyarázat
A cikk végén egy teljes kód és egy bemutató videó található. Itt a teljes kód lépésenkénti magyarázata található.
Először vonja be az összes könyvtárat a programba. Itt csak az LCD könyvtárra van szükségünk, hogy szerepeljen a programban. Ezután deklarálja a kódban használt összes változót.
#include
A telepítésen belül () nyomtassa ki az üdvözlő üzenetet az LCD-re, és határozza meg a projektben használt digitális csapok összes adatirányát. Ezután állítsa be a színérzékelő kimeneti frekvencia méretezését, esetemben ez 20% -ra van állítva, amelyet úgy állíthatunk be, hogy a HIGH impulzust S0-nak, a LOW impulzust pedig S1-nek adjuk.
void setup () {Soros.kezdés (9600); lcdbegin (16, 2); lcd.setCursor (0, 0); lcd.print ("Intelligens pénztárca"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); késés (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); }
A végtelen hurokban () olvassa el az érzékelők összes adatkimenetét. Az IR-érzékelő kimenete az A0 tű leolvasásával, a kimeneti szín frekvenciái pedig az egyes funkciók meghívásával írhatók piros (), kék () és zöld () formában. Ezután nyomtassa ki mindegyiket a soros monitorra. Erre akkor van szükség, ha új pénznemet kell hozzáadni a projektünkhöz.
int érzékelő = digitalRead (A0); int piros1 = piros (); int kék1 = kék (); int zöld1 = zöld (); Soros.println (piros1); Soros.println (kék1); Soros.println (zöld1); Soros.println ("-----------------------------");
Ezután írja be az összes feltételt, hogy ellenőrizze a színérzékelő kimeneti frekvenciáját a korábban beállított referenciafrekvenciával. Ha egyezik, akkor vonja le a megadott összeget a pénztárca egyenlegéből.
if (piros1> = 20 && piros1 <= 25 && kék1> = 30 && kék1 <= 35 && zöld1> = 30 && zöld1 <= 35 && a == 0 és& érzékelő == MAGAS) {a = 1; } else if (érzékelő == LOW && a == 1) {a = 0; if (összesen> = 10) {lcd.setCursor (0, 1); lcd.print ("10 rúpia !!!"); összesen = összesen-10; késés (1500); lcd.clear (); }}
Itt csak 10 rúpia és 50 rúpia jegy színeire állítottuk be a feltételeket, további feltételeket állíthat be, hogy több nem. bankjegyek.
Megjegyzés: A frekvencia kimenete az Ön esetében eltérő lehet, a külső megvilágítástól és az érzékelő beállításától függően. Ezért ajánlott ellenőrizni a pénznem kimeneti frekvenciáját, és ennek megfelelően beállítani a referenciaértéket.
Az alábbi kód megmutatja a tárcában rendelkezésre álló egyenleget a 16x2 LCD-n.
lcd.setCursor (0, 0); lcd.print ("Összes bal:"); lcd.setCursor (11, 0); lcd.print (összesen); késés (1000);
A következő függvény a vörös tartalom kimeneti színfrekvenciáját kapja meg a pénznemben. Hasonlóképpen más funkciókat is írhatunk, hogy értéket kapjunk a kék és a zöld szín tartalmához.
int piros () {digitalWrite (11, LOW); digitalWrite (12, LOW); frekvencia = impulzusIn (OutPut, LOW); visszatérési gyakoriság; }
Tehát egy Arduino alapú pénzszámláló így könnyen felépíthető néhány alkatrész felhasználásával. További módosításokat végezhetünk azzal, hogy integrálunk néhány képfeldolgozót és kamerát a pénznem pénznemének érzékelésére a kép segítségével, így pontosabb lesz és képes lesz bármilyen pénznem felismerésére.