- Nepieciešamās sastāvdaļas:
- TCS3200 krāsu sensors darbojas
- TCS3200 krāsu sensora pinout:
- Ķēdes shēma
- Kods Paskaidrojums
Šajā projektā mēs strādāsim pie novatoriskas arduino projekta idejas, kur mēs varam saskaitīt papīra valūtas piezīmes un aprēķināt to daudzumu, nojaušot papīra valūtu, izmantojot Color Sensor un Arduino. TCS230 krāsu sensors tiks izmantots valūtas piezīmju noteikšanai un, Arduino UNO datu apstrādei un atlikušās atlikuma parādīšanai 16x2 LCD ekrānā.
Nepieciešamās sastāvdaļas:
- Arduino UNO
- TCS230 Krāsu sensors
- IR sensors
- Maizes dēlis
- 16 * 2 burtciparu LCD
- Vadu savienošana
TCS3200 krāsu sensors darbojas
TCS3200 krāsu sensors tiek izmantots, lai uztvertu plašu krāsu gammu. Iepriekš mēs saskarnē TCS3200 krāsu sensoru savienojām ar Arduino un Raspberry pi, kā arī izveidojām dažus noderīgus projektus, piemēram, Color sorting machine.
TCS230 sensorā ir iebūvētas infrasarkanās gaismas diodes, kuras tiek izmantotas objekta, kura krāsa ir jāatklāj, iedegšanai. Tas nodrošina, ka ārējā apkārtējā gaisma neietekmē objektu. Šis sensors nolasa fotodiodu ar 8 * 8 bloku, kas sastāv no 16 fotodiodēm ar sarkaniem filtriem, 16 ar ziliem filtriem, 16 ar zaļiem filtriem un 16 fotodiodēm bez filtra. Katrs no šo trīs bloku sensoru blokiem tiek izvēlēts atsevišķi atkarībā no prasības. Tāpēc tas ir pazīstams kā programmējams sensors. Moduli var attēlot, lai sajustu konkrēto krāsu un atstātu pārējos. Tajā ir filtri šim atlases mērķim. Ir ceturtais režīms, ko sauc par “ bez filtra režīmu”, kurā sensors nosaka balto gaismu.
Krāsu sensora TCS230 izejas signāls ir kvadrātveida vilnis ar 50% darba ciklu, un tā frekvence ir proporcionāla izvēlētā filtra gaismas intensitātei.
TCS3200 krāsu sensora pinout:
VDD - sensora sprieguma padeves tapa. Tas tiek piegādāts ar 5V DC.
GND - Krāsu sensora zemes atslēga
S0, S1 - izejas frekvences mērogošanas izvēles ieejas
S2, S3- Foto-diodes veida izvēles ieejas
OUT - krāsu sensora izvades tapa
OE- iespējot tapu izejas frekvencei
Šajā projektā esam izmantojuši arī IR sensoru, kura darbību var saprast, izmantojot šo saiti.
Ķēdes shēma
Zemāk ir Arduino naudas skaitītāja shēma:
Šeit esmu izveidojis nelielu struktūru, piemēram, POS valūtas vilkšanas mašīnu, izmantojot kartonus. Šajā struktūrā krāsu sensors un IR sensors ir piestiprināti ar kartonu, kā parādīts attēlā zemāk.
Šeit infrasarkano sensoru izmanto, lai noteiktu valūtas klātbūtni slotā, un, ja ir piezīme, tad krāsu sensors noteiks piezīmes krāsu un nosūtīs krāsas vērtību Arduino. Un Arduino tālāk aprēķina valūtas vērtību, pamatojoties uz piezīmes krāsu.
Kods Paskaidrojums
Pilnīgs kods kopā ar demonstrācijas video ir norādīts raksta beigās. Šeit ir sniegts pakāpenisks visa koda skaidrojums.
Vispirms iekļaujiet programmā visas bibliotēkas. Šeit mums ir nepieciešama tikai LCD bibliotēkas iekļaušana programmā. Pēc tam deklarējiet visus kodā izmantotos mainīgos.
# iekļaut
Iestatījuma iekšpusē () izdrukājiet sveiciena ziņojumu uz LCD un definējiet visus šajā projektā izmantoto digitālo tapu datu virzienus. Pēc tam iestatiet krāsu sensora izejas frekvences mērogošanu, manā gadījumā tas ir iestatīts uz 20%, ko var iestatīt, piešķirot HIGH impulsu S0 un LOW impulsu S1.
void setup () {Sērijas.sākt (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Viedais maks"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); kavēšanā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); }
Bezgalīgās cilpas iekšpusē () nolasiet visus sensoru datus. Infrasarkanā sensora izvadi var atrast, nolasot A0 tapu, un izejas krāsu frekvences var atrast, izsaucot atsevišķas funkcijas, kas rakstītas kā sarkana (), zila () un zaļa (). Pēc tam izdrukājiet tos visus uz sērijas monitora. Tas ir nepieciešams, kad mums jāpievieno jauna valūta mūsu projektam.
int sensors = digitalRead (A0); int sarkans1 = sarkans (); int zils1 = zils (); int zaļš1 = zaļš (); Seriālais.println (sarkans1); Seriāls.println (zils1); Seriālais.println (zaļš1); Serial.println ("-----------------------------");
Pēc tam uzrakstiet visus nosacījumus, lai pārbaudītu krāsu sensora izejas frekvenci ar iepriekš iestatīto atsauces frekvenci. Ja tas sakrīt, tad atskaita norādīto summu no seifa atlikuma.
ja (sarkans1> = 20 && sarkans1 <= 25 && zils1> = 30 && zils1 <= 35 && zaļš1> = 30 && zaļš1 <= 35 && a == 0 && sensors == AUGSTS) {a = 1; } else if (sensors == LOW && a == 1) {a = 0; if (kopā> = 10) {lcd.setCursor (0, 1); lcd.print ("10 rūpijas !!!"); kopā = kopā-10; kavēšanās (1500); lcd.clear (); }}
Šeit mēs esam iestatījuši nosacījumus tikai 10 rūpijām un 50 rūpiju piezīmju krāsām, varat iestatīt vairāk nosacījumu, lai noteiktu vairāk nē. valūtas banknotes.
Piezīme: atkarībā no ārējā apgaismojuma un sensora iestatījuma jūsu gadījumā frekvences izeja var būt atšķirīga. Tāpēc ieteicams pārbaudīt savas valūtas izvades biežumu un attiecīgi iestatīt atsauces vērtību.
Zemāk redzamais kods parādīs pieejamo atlikumu seifā 16x2 LCD ekrānā.
lcd.setCursor (0, 0); lcd.print ("Kopējais bal:"); lcd.setCursor (11, 0); lcd.print (kopā); kavēšanās (1000);
Šī funkcija iegūs sarkanā satura izvades krāsu biežumu valūtā. Līdzīgi mēs varam uzrakstīt citas funkcijas, lai iegūtu vērtību zilās un zaļās krāsas saturam.
int sarkans () {digitalWrite (11, LOW); digitalWrite (12, LOW); frekvence = pulseIn (OutPut, LOW); atgriešanās biežums; }
Tātad šādi Arduino bāzes naudas skaitītāju var viegli izveidot, izmantojot dažus komponentus. Mēs varam to vēl vairāk modificēt, integrējot kādu attēlu apstrādi un kameru, lai noteiktu valūtu, izmantojot attēlu, tādā veidā tas būs precīzāks un varēs noteikt jebkuru valūtu.