- Reikalingi komponentai:
- TCS3200 spalvų jutiklis veikia
- TCS3200 spalvų jutiklio kištukas:
- Grandinės schema
- Kodo paaiškinimas
Šiame projekte ketiname dirbti su novatoriška „arduino“ projekto idėja, kur mes galime suskaičiuoti popierines valiutų kupiūras ir apskaičiuoti jų sumą, pajutę popieriaus valiutą naudodami „ Color Sensor“ ir „Arduino“. TCS230 spalvų jutiklis bus naudojamas valiutinių banknotų aptikimui, o „Arduino UNO“ - duomenų apdorojimui ir likusio balanso rodymui 16x2 LCD ekrane.
Reikalingi komponentai:
- „Arduino UNO“
- TCS230 spalvų jutiklis
- IR jutiklis
- Bandomoji Lenta
- 16 * 2 raidinis skaitmeninis LCD ekranas
- Laidų sujungimas
TCS3200 spalvų jutiklis veikia
TCS3200 spalvų jutiklis naudojamas pajusti platų spalvų spektrą. Anksčiau mes sujungėme TCS3200 spalvų jutiklį su „Arduino“ ir „Raspberry pi“, taip pat sukūrėme keletą naudingų projektų, pvz., „Color sorting machine“.
TCS230 jutiklis turi įmontuotus infraraudonųjų spindulių šviesos diodus, kurie naudojami objekto, kurio spalva turi būti aptikta, apšvietimui. Tai užtikrina, kad išorinė aplinkinė šviesa nepaveiks objekto. Šis jutiklis nuskaito 8 * 8 matricos fotodiodą, kurį sudaro 16 fotodiodų su raudonais, 16 su mėlynais, 16 su žaliais filtrais ir 16 fotodiodų be jokio filtro. Kiekvienas iš šių trijų matricų jutiklių matricų parenkamas atskirai, atsižvelgiant į reikalavimus. Taigi jis yra žinomas kaip programuojamas jutiklis. Modulis gali būti naudojamas norint pajusti tam tikrą spalvą ir palikti kitus. Jame yra filtrai tam pasirinkimo tikslui. Yra ketvirtasis režimas, vadinamas „ be filtro režimu“, kai jutiklis aptinka baltą šviesą.
Spalvoto jutiklio TCS230 išėjimo signalas yra kvadratinė banga, kurios darbo ciklas yra 50%, o jo dažnis yra proporcingas pasirinkto filtro šviesos intensyvumui.
TCS3200 spalvų jutiklio kištukas:
VDD - jutiklio įtampos tiekimo kaištis. Jis tiekiamas su 5 V nuolatine srove.
GND- Spalvoto jutiklio žemės atskaitos kaištis
S0, S1- Išėjimo dažnio mastelio parinkimo įėjimai
S2, S3- Foto-diodų tipo pasirinkimo įėjimai
OUT - Spalvoto jutiklio išvesties kaištis
OE- Įjungti išvesties dažnio kaištį
Šiame projekte taip pat naudojome IR jutiklį, kurio veikimą galima suprasti naudojant šią nuorodą.
Grandinės schema
Žemiau yra „ Arduino“ pinigų skaitiklio grandinės schema:
Čia aš padariau mažą struktūrą, pavyzdžiui, POS valiutos perbraukimo mašiną, naudodamas kartonus. Šioje struktūroje spalvų jutiklis ir IR jutiklis yra pritvirtinti prie kartono, kaip parodyta paveikslėlyje žemiau.
IR jutiklis naudojamas valiutos buvimui lizdo viduje pajusti, o jei yra užrašas, tada spalvų jutiklis aptiks užrašo spalvą ir nusiųs spalvos reikšmę „Arduino“. Ir „Arduino“ toliau apskaičiuoja valiutos vertę pagal užrašo spalvą.
Kodo paaiškinimas
Visas kodas kartu su demonstraciniu vaizdo įrašu pateikiamas straipsnio pabaigoje. Čia pateikiamas laipsniškas viso kodo paaiškinimas.
Pirmiausia į programą įtraukite visas bibliotekas. Čia mums reikia tik, kad į programą būtų įtraukta LCD biblioteka. Tada deklaruokite visus kode naudojamus kintamuosius.
# įtraukti
Sąrankos viduje () išspausdinkite pasveikinimo pranešimą į LCD ir apibrėžkite visas šiame projekte naudojamas skaitmeninių kaiščių duomenų kryptis. Tada nustatykite spalvų jutiklio išėjimo dažnio mastelį, mano atveju, jis yra nustatytas 20%, kurį galima nustatyti suteikiant HIGH impulsą S0 ir LOW impulsą S1.
negaliojanti sąranka () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print („Išmanioji piniginė“); lcd.setCursor (0, 1); lcd.print („Grandinės santrauka“); vėlavimas (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); }
Begalinėje kilpoje () perskaitykite visus jutiklių duomenis. Infraraudonųjų spindulių jutiklio išvestį galima rasti perskaičius A0 kaištį, o išvesties spalvų dažnius galima rasti iškviečiant atskiras funkcijas, parašytas raudona (), mėlyna () ir žalia (). Tada atspausdinkite juos visus ant nuoseklaus monitoriaus. Tai reikalinga, kai turime įtraukti naują valiutą į savo projektą.
int jutiklis = digitalRead (A0); int raudonas1 = raudonas (); int mėlyna1 = mėlyna (); int žalia1 = žalia (); Serial.println (raudona1); Serial.println (mėlyna1); Serial.println (žalia1); Serial.println ("-----------------------------");
Tada parašykite visas sąlygas, kad patikrintumėte spalvų jutiklio išvesties dažnį su etaloniniu dažniu, kurį mes nustatėme anksčiau. Jei jis sutampa, tada išskaičiuokite nurodytą sumą iš piniginės likučio.
if (raudona1> = 20 && raudona1 <= 25 && mėlyna1> = 30 && mėlyna1 <= 35 && žalia1> = 30 ir& žalia1 <= 35 && a == 0 ir& jutiklis == AUKŠTA) {a = 1; } else if (jutiklis == LOW && a == 1) {a = 0; if (iš viso> = 10) {lcd.setCursor (0, 1); lcd.print ("10 rupijų !!!"); viso = viso-10; vėlavimas (1500); lcd.clear (); }}
Čia mes nustatėme tik 10 rupijų ir 50 rupijų užrašo spalvos sąlygas, galite nustatyti daugiau sąlygų, kad aptiktumėte daugiau ne. valiutos kupiūrų.
Pastaba: dažnio išvestis jūsų atveju gali būti skirtinga, atsižvelgiant į išorinį apšvietimą ir jutiklio nustatymą. Taigi rekomenduojama patikrinti valiutos išvesties dažnį ir atitinkamai nustatyti pamatinę vertę.
Žemiau pateiktas kodas parodys piniginėje likutį 16x2 LCD ekrane.
lcd.setCursor (0, 0); lcd.print ("Total Bal:"); lcd.setCursor (11, 0); lcd.print (iš viso); vėlavimas (1000);
Ši funkcija gaus raudonos spalvos išvesties spalvų dažnį valiuta. Panašiai galime parašyti kitas funkcijas, kad gautume mėlynos ir žalios spalvos turinio vertę.
int raudona () {digitalWrite (11, LOW); „digitalWrite“ (12, LOW); dažnis = pulseIn (OutPut, LOW); grįžimo dažnis; }
Taigi taip galima lengvai sukurti „ Arduino“ pagrįstą pinigų skaitiklį naudojant kelis komponentus. Mes galime jį toliau modifikuoti integruodami tam tikrą vaizdo apdorojimą ir fotoaparatą, kad atpažintume valiutą naudojant vaizdą, tokiu būdu jis bus tikslesnis ir galės aptikti bet kurią valiutą.