- Požadované komponenty:
- Farebný snímač TCS3200 pracuje
- Pinout farebného snímača TCS3200:
- Schéma zapojenia
- Vysvetlenie kódu
V tomto projekte budeme pracovať na inovatívnej myšlienke projektu arduino, kde môžeme spočítať papierové bankovky a vypočítať ich množstvo snímaním papierovej meny pomocou Color Sensor a Arduino. Farebný snímač TCS230 sa použije na detekciu bankoviek a Arduino UNO na spracovanie údajov a zobrazenie zostávajúceho zostatku na displeji 16x2 LCD.
Požadované komponenty:
- Arduino UNO
- Farebný snímač TCS230
- IR senzor
- Nepál
- 16 * 2 alfanumerický LCD
- Pripojenie drôtov
Farebný snímač TCS3200 pracuje
Farebný snímač TCS3200 sa používa na snímanie širokej škály farieb. Predtým sme prepojili farebný snímač TCS3200 s procesormi Arduino a Raspberry pi a vytvorili sme aj niektoré užitočné projekty, ako napríklad triediaci stroj farieb.
Senzor TCS230 má zabudované infračervené LED diódy, ktoré sa používajú na rozsvietenie objektu, ktorého farba má byť detekovaná. To zaisťuje, že na predmet nebudú pôsobiť žiadne vplyvy vonkajšieho okolitého svetla. Tento snímač sníma fotodiódu s poľom 8 * 8, ktorá obsahuje 16 fotodiód s červenými filtrami, 16 s modrými filtrami, 16 so zelenými filtrami a 16 fotodiód bez filtra. Každé zo skupín snímačov v týchto troch poliach sa vyberá osobitne v závislosti od požiadavky. Preto je známy ako programovateľný snímač. Modul môže byť vybavený na snímanie konkrétnej farby a na opustenie ostatných. Obsahuje filtre na tento účel výberu. Existuje štvrtý režim s názvom „režim bez filtra“, v ktorom senzor detekuje biele svetlo.
Výstupný signál farebného snímača TCS230 je štvorcová vlna s 50% pracovným cyklom a jeho frekvencia je úmerná intenzite svetla zvoleného filtra.
Pinout farebného snímača TCS3200:
VDD - kolík napájacieho napätia snímača. Je dodávaný s 5V DC.
GND - uzemňovací referenčný kolík farebného snímača
S0, S1 - výber vstupov na zmenu mierky výstupnej frekvencie
S2, S3 - vstupy pre výber typu fotodiódy
OUT - výstupný kolík farebného snímača
OE- Povoľte kolík pre výstupnú frekvenciu
V tomto projekte sme tiež použili IR senzor, ktorého fungovanie je možné pochopiť pomocou nasledujúceho odkazu.
Schéma zapojenia
Ďalej je uvedená schéma zapojenia počítadla peňazí Arduino:
Tu som pomocou kartónov vyrobil malú štruktúru ako stroj na posúvanie meny POS. V tejto štruktúre sú farebný snímač a IR snímač pripevnené ku kartónu, ako je to znázornené na obrázku nižšie.
Tu sa infračervený senzor používa na snímanie prítomnosti meny vo vnútri slotu a ak je v ňom poznámka, potom farebný snímač zistí farbu poznámky a odošle hodnotu farby do Arduina. A Arduino ďalej počíta hodnotu meny na základe farby bankovky.
Vysvetlenie kódu
Celý kód spolu s ukážkovým videom je uvedený na konci článku. Ďalej je uvedené postupné vysvetlenie celého kódu.
Najskôr zahrňte všetky knižnice do programu. Tu potrebujeme, aby bola do programu zahrnutá iba LCD knižnica. Potom deklarujte všetky premenné použité v kóde.
#include
Vo vnútri setup () vytlačte uvítaciu správu na LCD displeji a definujte všetky dátové smery digitálnych pinov použitých v tomto projekte. Ďalej nastavte zmenu výstupnej frekvencie farebného snímača, v mojom prípade je nastavená na 20%, ktorú je možné nastaviť tak, že sa HIGH impulz nastaví na S0 a LOW impulz na S1.
void setup () {Serial.begin (9600); lcd.začiatok (16, 2); lcd.setCursor (0, 0); lcd.print ("Inteligentná peňaženka"); lcd.setCursor (0, 1); lcd.print ("Prehľad okruhov"); meškanie (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); }
Vo vnútri nekonečnej slučky () načítajte všetky dátové výstupy zo senzorov. Výstup z infračerveného snímača nájdete po prečítaní kolíka A0 a výstupné farebné frekvencie nájdete po zavolaní jednotlivých funkcií napísaných ako červená (), modrá () a zelená (). Potom všetky vytlačte na sériovom monitore. To je potrebné, keď potrebujeme do nášho projektu pridať novú menu.
int senzor = digitalRead (A0); int red1 = red (); int modrá1 = modrá (); int zelená1 = zelená (); Serial.println (red1); Serial.println (modrá1); Serial.println (zelená1); Serial.println ("-----------------------------");
Ďalej napíšte všetky podmienky na kontrolu výstupnej frekvencie farebného snímača s referenčnou frekvenciou, ktorú sme nastavili predtým. Ak sa zhoduje, potom odpočíta určenú sumu zo zostatku v peňaženke.
if (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && senzor == VYSOKÝ) {a = 1; } else if (sensor == LOW && a == 1) {a = 0; if (total> = 10) {lcd.setCursor (0, 1); lcd.print („10 rupií !!!“); celkom = celkom-10; oneskorenie (1 500); lcd.clear (); }}
Tu sme nastavili iba podmienky pre farbu 10 rupií a 50 rupií Note, môžete nastaviť viac podmienok a zistiť tak viac č. bankoviek.
Poznámka: Frekvenčný výstup sa vo vašom prípade môže líšiť v závislosti od nastavenia externého osvetlenia a snímača. Preto sa odporúča skontrolovať výstupnú frekvenciu vašej meny a podľa toho nastaviť referenčnú hodnotu.
Nasledujúci kód zobrazí dostupný zostatok v peňaženke na displeji 16 x 2.
lcd.setCursor (0, 0); lcd.print ("Celková bal:"); lcd.setCursor (11, 0); lcd.tlač (celkom); oneskorenie (1 000);
Nasledujúca funkcia získa výstupnú farebnú frekvenciu červeného obsahu v mene. Podobne môžeme písať ďalšie funkcie, aby sme získali hodnotu pre obsah modrej a zelenej farby.
int red () {digitalWrite (11, LOW); digitalWrite (12, LOW); frekvencia = pulseIn (OutPut, LOW); frekvencia návratu; }
Takto je možné ľahko zostaviť počítadlo peňazí založené na Arduine pomocou niekoľkých komponentov. Môžeme ho ďalej upraviť integráciou určitého spracovania obrazu a fotoaparátu na zisťovanie meny pomocou obrázka, takže bude presnejší a bude schopný zistiť každú menu.