- Reikalingi komponentai
- „Arduino“ monetų rūšiavimo struktūros kūrimas
- Grandinės schema
- „Arduino“ programavimas
- „Arduino“ monetų skaitiklio veikimas
Anksčiau mes pastatėme „Arduino“ pagrindu pagamintą popieriaus valiutų skaičiavimo mašiną, naudodami spalvų jutiklį. Dabar šiame projekte mes statome „ Arduino“ skaičiavimo mašiną, naudojančią IR jutiklius. Šis aparatas skaičiuoja ir rūšiuoja monetas skirtingose dalyse naudodamas infraraudonųjų spindulių jutiklį. Čia sudaroma vieta, kur IR jutikliai dedami skirtingoms monetoms suvokti, o „Arduino UNO“ naudojamas duomenims apdoroti ir parodyti bendrą skaičiaus vertę 16x2 LCD ekrane.
Reikalingi komponentai
- „Arduino UNO“
- IR jutiklis
- Bandomoji Lenta
- 16 * 2 raidinis skaitmeninis LCD ekranas
- I2C modulis 16x2 (1602) raidiniam ir skaitmeniniam LCD
- Laidų sujungimas
„Arduino“ monetų rūšiavimo struktūros kūrimas
1 žingsnis: Paimkite kartono lakštą ir pažymėkite skirtingus monetų dydžius, kaip parodyta žemiau esančiame paveikslėlyje. Tada atsargiai supjaustykite pažymėtas dalis. Šias porcijas reikia pjauti tiksliai; kitaip projektas gali neveikti tobulai.
2 žingsnis: Įdėkite aukščiau išdėstytą konstrukciją į nuolydžio struktūrą, kaip parodyta paveikslėlyje žemiau. Atlikę susitarimą, patikrinkite jį įkišdami į nuolydį skirtingas monetas, kad įsitikintumėte, jog išdėstymas puikiai veikia. Jei moneta įkišama netinkamai, šiek tiek padidinkite skylės dydį pagal monetą ir patikrinkite, kol operacija bus sėkminga.
3 žingsnis: Padėkite IR jutiklius šalia atskirų monetų išvesties kelio. Labai svarbu tinkamai nustatyti jutiklius ir juos sukalibruoti naudojant jų potenciometrą. Tada dar kartą įdėkite monetas, kad patikrintumėte jutiklio veikimą. Sužinokite daugiau apie IR jutiklio grandinę čia.
Grandinės schema
Žemiau yra „Arduino“ skaičiavimo mašinos grandinės schema:
IR jutikliai dedami skirtinguose monetų rūšiavimo mašinos išvesties keliuose, kad būtų galima pajusti monetas. Kai moneta įdedama į šį „Arduino“ monetų skaitiklį, ji patenka į tam skirtą kelią pagal mechaninį dizainą, o atitinkamas IR jutiklis jaučia monetą ir suteikia „Arduino“ HIGH išvesties vertę, kurią gali nuskaityti analogiški „Arduino“ kaiščiai. IR jutiklis, suteikiantis AUKŠTĄ vertę, nusprendžia monetos vertę, pvz., Rupijos 2/5/10.
Čia 16x2 raidinis ir skaitmeninis LCD yra susietas su „Arduino“ naudojant I2C modulį, kad būtų parodytas į dėžutę įdėtų monetų skaičius. Šį LCD taip pat galima tiesiogiai prijungti prie „Arduino“ nenaudojant „I2C“ modulio, tačiau tam reikia daugiau jungčių. Taigi, kad būtų paprasčiau, kartu su LCD naudojamas I2C modulis, kuriame LCD prijungimui prie „Arduino“ naudojamas tik 2 kaiščiai, ty SCL, SDA. „Arduino“ maitinimui naudojamas 12 VDC, 1 AMP kintamosios srovės adapteris, kurį galima tiesiogiai prijungti prie „Arduino“ maitinimo lizdo.
Po šiek tiek pataisymų, visa „ Arduino“ pagrindu sukurtų monetų rūšiavimo programa bus nustatyta žemiau:
„Arduino“ programavimas
Po sėkmingų aparatūros ryšių, atėjo laikas programuoti „Arduino“. Visas „Arduino“ kodas pateikiamas šios pamokos apačioje. Pakopinis kodo paaiškinimas pateiktas žemiau:
Pirmiausia į programą reikia įtraukti visas reikalingas bibliotekas. Čia mano atveju, aš įtraukti " LiquidCrystal_I2C.h" biblioteką, naudojant I2C sąsaja LCD ir " Wire.h " naudojant I2C funkcionalumą Arduino.
# įtraukti
Sąrankos viduje () yra parašytos LCD komandos sveikinimo pranešimui rodyti LCD.
lcd.init (); lcd.backlight (); lcd.setCursor (0,0); lcd.print ("ARDUINO PAGRINDAS"); lcd.setCursor (0,1); lcd.print ("MONETŲ RŪŠIAVIMAS"); vėlavimas (2000); lcd.clear ();
„Inside loop“ () funkcija „ analogRead“ naudojama infraraudonųjų spindulių jutiklio reikšmėms nuskaityti iš skirtingų „Arduino“ analoginių kanalų ir išsaugoti jas skirtinguose kintamuosiuose.
int s1 = analogasRead (A0); int s2 = analoginis skaitymas (A1); int s3 = analogasRead (A2);
Tada žemiau pateiktas kodas yra užrašomas, kad būtų galima suvokti monetas ir padidinti monetų skaitiklio reikšmes. Čia naudojama vėliavos vertė f1, kad būtų išvengta kelių monetų skaičiavimų.
jei (s1> = 200 && f1 == 0) {f1 = 1; } else if (s1 <200 && f1 == 1) {f1 = 0; c1 ++; }
Galiausiai, skaičiavimo vertės yra rodomos LCD, naudojant toliau pateiktas komandas.
lcd.setCursor (0,0); lcd.print ("RS10 RS2 RS5"); lcd.setCursor (1,1); lcd.print (c1); lcd.setCursor (7,1); lcd.print (c2); lcd.setCursor (14,1); lcd.print (c3);
„Arduino“ monetų skaitiklio veikimas
Atlikę pilną sąranką ir įkėlę kodą, įjunkite 12 V nuolatinės srovės maitinimo šaltinį. Pirma, LCD ekrane bus rodomas pasveikinimo pranešimas, o po kelių sekundžių LCD bus rodomas ekranas su visų turimų monetų skaičiumi. Pradžioje jis rodys nulį, nes dar neįdėjome monetų.
Tada įdėkite bet kokią monetą (Rs. 2/5/10) mašinos viršuje, kur parašyta „ Įdėkite monetą “. Dabar pamatysite, kad monetų skaičius turi būti atnaujintas LCD. Tada įdėkite kelias skirtingos vertės monetas ir patikrinkite atitinkamų monetų skaičių LCD ekrane.
Visas kodas kartu su vaizdo įrašu pateikiamas žemiau.