- Vaaditut komponentit:
- TCS3200-värianturi toimii
- TCS3200-värianturin pinout:
- Piirikaavio
- Koodin selitys
Tässä projektissa aiomme työskennellä innovatiivisen arduino-projektiidean kanssa, jossa voimme laskea paperirahojen setelit ja laskea niiden määrän tunnistamalla paperivaluutan Color Sensorilla ja Arduinolla. TCS230 -värisensoria käytetään valuutta-setelien havaitsemiseen ja Arduino UNO: n tietojen käsittelyyn ja jäljellä olevan saldon näyttämiseen 16x2 LCD: ssä.
Vaaditut komponentit:
- Arduino UNO
- TCS230 Värianturi
- IR-anturi
- Leipälauta
- 16 * 2 aakkosnumeerinen LCD-näyttö
- Johtojen liittäminen
TCS3200-värianturi toimii
TCS3200-väripainetunnistinta käytetään monien värien tunnistamiseen. Olemme aiemmin liittäneet TCS3200-värianturin Arduino- ja Raspberry pi -laitteisiin ja rakentaneet myös hyödyllisiä projekteja, kuten Värien lajittelukone.
TCS230-anturissa on sisäänrakennetut infrapuna-LEDit, joita käytetään valaisemaan kohde, jonka väri on tarkoitus havaita. Tämä varmistaa, että ulkoiseen ympäröivään valoon ei tule vaikutuksia esineeseen. Tämä anturi lukee 8 * 8-ryhmän fotodiodin, joka käsittää 16 valodiodia punaisilla suodattimilla, 16 sinisillä suodattimilla, 16 vihreillä suodattimilla ja 16 valodiodia ilman suodatinta. Kukin näiden kolmen ryhmän anturiryhmistä valitaan erikseen vaatimuksesta riippuen. Siksi se tunnetaan ohjelmoitavana anturina. Moduuli voidaan käyttää tunnistamaan tietty väri ja jättämään muut. Se sisältää suodattimia valintaa varten. On neljäs tila, jota kutsutaan suodattimettomaksi, jossa anturi havaitsee valkoisen valon.
TCS230-värianturin lähtösignaali on neliöaalto, jonka käyttöjakso on 50%, ja sen taajuus on verrannollinen valitun suodattimen valon voimakkuuteen.
TCS3200-värianturin pinout:
VDD - Anturin jännitteen syöttötappi. Se toimitetaan 5 V DC: n kanssa.
GND - Maadoitusväritunnistin
S0, S1 - Lähtötaajuuden skaalausvalintatulot
S2, S3- Valodiodityypin valintatulot
OUT- Värianturin ulostulotappi
OE- Salli nasta lähtötaajuudelle
Olemme myös käyttäneet tässä projektissa IR-anturia, jonka toiminta voidaan ymmärtää seuraavasta linkistä.
Piirikaavio
Alla on Arduino-rahalaskurin kytkentäkaavio:
Täällä olen tehnyt pienen rakenteen, kuten POS-valuutan pyyhkäisykone, käyttämällä pahvia. Tässä rakenteessa väri- ja IR-anturi on kiinnitetty pahviin kuten alla olevassa kuvassa.
Tässä infrapunatunnistinta käytetään valuutan havaitsemiseen korttipaikan sisällä, ja jos on muistiinpano, väri-anturi havaitsee muistiinpanon värin ja lähettää väriarvon Arduinolle. Ja Arduino laskee edelleen valuutan arvon setelin värin perusteella.
Koodin selitys
Täydellinen koodi ja esittelyvideo annetaan artikkelin lopussa. Tässä annetaan täydellisen koodin vaiheittainen selitys alla.
Lisää ensin kaikki kirjastot ohjelmaan. Täällä meidän tarvitsee vain LCD-kirjasto sisällyttää ohjelmaan. Ilmoita sitten kaikki koodissa käytetyt muuttujat.
#sisältää
Tulosta asennuksen () sisällä tervetuloviesti LCD-näytölle ja määritä kaikki tässä projektissa käytetyt digitaalisten nastojen dataohjeet. Aseta seuraavaksi värianturin ulostulotaajuuden skaalaus, tapauksessani se on asetettu 20%: ksi, joka voidaan asettaa antamalla HIGH-pulssi arvolle S0 ja LOW-pulssi arvolle S1.
void setup () {Sarja.alku (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Smart Wallet"); lcd.setCursor (0, 1); lcd.print ("Piirin yhteenveto"); viive (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); }
Lue äärettömän silmukan () sisällä kaikki antureiden dataulostulot. IR-anturin lähtö löytyy lukemalla A0-nasta ja lähtöväritaajuudet löytämällä kutsumalla yksittäiset toiminnot, jotka on kirjoitettu punaisiksi (), sinisiksi () ja vihreiksi (). Tulosta sitten ne kaikki sarjakuvanäytölle. Tätä tarvitaan, kun meidän on lisättävä uusi valuutta projektiimme.
int-anturi = digitalRead (A0); int punainen1 = punainen (); int sininen1 = sininen (); int vihreä1 = vihreä (); Serial.println (punainen1); Serial.println (sininen1); Serial.println (vihreä1); Sarja.println ("-----------------------------");
Kirjoita seuraavaksi kaikki ehdot värianturin lähtötaajuuden tarkistamiseksi vertailutaajuudella, jonka olemme asettaneet aiemmin. Jos se vastaa, vähennä määritetty summa lompakon saldosta.
if (punainen1> = 20 && punainen1 <= 25 && sininen1> = 30 && sininen1 <= 35 && vihreä1> = 30 && vihreä1 <= 35 && a == 0 && anturi == KORKEA) {a = 1; } else if (anturi == LOW && a == 1) {a = 0; if (yhteensä> = 10) {lcd.setCursor (0, 1); lcd.print ("10 rupiaa !!!"); yhteensä = yhteensä-10; viive (1500); lcd.clear (); }}
Tässä olemme asettaneet ehdot vain 10 rupialle ja 50 rupialle Huomautusvärille, voit asettaa enemmän ehtoja havaita enemmän ei. seteleitä.
Huomaa: Taajuuslähtö voi olla erilainen tapauksessasi riippuen ulkoisesta valaistuksesta ja anturin asetuksista. Joten on suositeltavaa tarkistaa valuuttasi lähtötaajuus ja asettaa viitearvo vastaavasti.
Alla oleva koodi näyttää käytettävissä olevan saldon lompakossa 16x2 nestekidenäytöllä.
lcd.setCursor (0, 0); lcd.print ("Yhteensä Bal:"); lcd.setCursor (11, 0); lcd.print (yhteensä); viive (1000);
Seuraava toiminto saa punaisen sisällön tulosteen väritaajuuden valuutassa. Vastaavasti voimme kirjoittaa muita toimintoja saadaksemme arvon sinisen ja vihreän värisisällölle.
int punainen () {digitalWrite (11, LOW); digitalWrite (12, LOW); taajuus = pulssi (OutPut, LOW); paluu taajuus; }
Joten Arduino-pohjainen rahalaskuri voidaan rakentaa helposti muutamalla komponentilla. Voimme muokata sitä edelleen integroimalla jonkin verran kuvankäsittelyä ja kameraa havaitsemaan valuutan kuvan avulla, jolloin se on tarkempi ja pystyy havaitsemaan minkä tahansa valuutan.