- Zahtevane komponente:
- TCS3200 barvni senzor deluje
- Pinout barvnega senzorja TCS3200:
- Shema vezja
- Razlaga kode
V tem projektu bomo delali na inovativni ideji za projekt arduino, kjer bomo lahko šteli bankovce v papirni valuti in izračunali njihovo količino, tako da bomo zaznali papirnato valuto s pomočjo Color Sensor in Arduino. Za zaznavanje bankovcev bo uporabljen barvni senzor TCS230, za obdelavo podatkov in prikaz preostalega stanja na LCD 16x2 pa Arduino UNO.
Zahtevane komponente:
- Arduino UNO
- TCS230 Barvni senzor
- IR senzor
- Breadboard
- 16 * 2 alfanumerični LCD
- Povezovanje žic
TCS3200 barvni senzor deluje
Barvni senzor TCS3200 se uporablja za zaznavanje široke palete barv. Pred tem smo barvni senzor TCS3200 povezali z Arduino in Raspberry pi, izdelali pa smo tudi nekaj uporabnih projektov, kot je stroj za sortiranje barv.
Senzor TCS230 ima vgrajene infrardeče LED, ki se uporabljajo za osvetlitev predmeta, katerega barvo je treba zaznati. To zagotavlja, da zunanja okoliška svetloba ne bo vplivala na predmet. Ta senzor odčitava fotodiodo v matriki 8 * 8, ki obsega 16 fotodiod z rdečimi filtri, 16 z modrimi filtri, 16 z zelenimi filtri in 16 fotodiod brez filtra. Vsak od senzorskih nizov v teh treh nizih je izbran ločeno, odvisno od zahteve. Zato je znan kot programabilni senzor. Modul je lahko opremljen tako, da zazna določeno barvo in zapusti ostale. Vsebuje filtre za ta izbirni namen. Obstaja četrti način, imenovan „način brez filtra“, v katerem senzor zazna belo svetlobo.
Izhodni signal barvnega senzorja TCS230 je kvadratni val s 50% delovnim ciklom in njegova frekvenca je sorazmerna z jakostjo svetlobe izbranega filtra.
Pinout barvnega senzorja TCS3200:
VDD - Napajalni zatič senzorja. Dobavljen je s 5V DC.
GND - Ozemljitveni referenčni zatič barvnega senzorja
S0, S1 - vhodi za izbiro merjenja izhodne frekvence
S2, S3 - vhodi za izbiro tipa foto-diode
OUT - izhodni zatič barvnega senzorja
OE - Omogoči zatič za izhodno frekvenco
V tem projektu smo uporabili tudi IR senzor, katerega delovanje lahko razumemo na naslednji povezavi.
Shema vezja
Spodaj je diagram vezja za števec denarja Arduino:
Tukaj sem naredil majhno strukturo, kot je stroj za pomikanje valut POS, z uporabo kartona. V tej strukturi sta barvni senzor in IR senzor pritrjena na karton, kot je prikazano na spodnji sliki.
Tu se IR senzor uporablja za zaznavanje prisotnosti valute v reži in če je opomba, bo barvni senzor zaznal barvo note in barvno vrednost poslal v Arduino. In Arduino nadalje izračuna vrednost valute glede na barvo bankovca.
Razlaga kode
Popolna koda skupaj s predstavitvenim videoposnetkom je podana na koncu članka. Tu je spodaj podana postopna razlaga celotne kode.
Najprej v program vključite vse knjižnice. Tu potrebujemo le knjižnico LCD, ki bo vključena v program. Nato navedite vse spremenljivke, uporabljene v kodi.
#include
Znotraj nastavitve () natisnite pozdravno sporočilo na LCD in določite vse podatkovne smeri digitalnih zatičev, uporabljenih v tem projektu. Nato nastavite skaliranje izhodne frekvence barvnega senzorja, v mojem primeru je nastavljeno na 20%, kar lahko nastavite tako, da HIGH impulz nastavite na S0 in LOW impulz na S1.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Pametna denarnica"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); zamuda (2000); lcd.clear (); pinMode (2, IZHOD); // S0 pinMode (3, IZHOD); // S1 pinMode (11, IZHOD); // S2 pinMode (12, IZHOD); // S3 pinMode (13, VHOD); // IZHOD digitalWrite (2, VISOKO); digitalWrite (3, LOW); }
Znotraj neskončne zanke () preberite vse izhodne podatke senzorjev. Izhod iz IR-senzorja lahko najdemo tako, da odčitamo pin A0, izhodne barvne frekvence pa lahko poiščemo tako, da pokličemo posamezne funkcije, napisane kot rdeča (), modra () in zelena (). Nato jih natisnite na serijski monitor. To je potrebno, ko moramo svojemu projektu dodati novo valuto.
int senzor = digitalRead (A0); int rdeč1 = rdeč (); int blue1 = blue (); int green1 = green (); Serial.println (rdeča1); Serial.println (modra1); Serial.println (zelena1); Serial.println ("-----------------------------");
Nato napišite vse pogoje za preverjanje izhodne frekvence barvnega senzorja z referenčno frekvenco, ki smo jo nastavili prej. Če se ujema, določeni znesek odšteje od stanja denarnice.
če (rdeča1> = 20 && rdeča1 <= 25 && modra1> = 30 && modra1 <= 35 && zelena1> = 30 && zelena1 <= 35 && a == 0 && senzor == VISOKO) {a = 1; } sicer če (senzor == LOW && a == 1) {a = 0; if (skupaj> = 10) {lcd.setCursor (0, 1); lcd.print ("10 rupij !!!"); skupaj = skupaj-10; zamuda (1500); lcd.clear (); }}
Tu smo nastavili pogoje samo za 10 rupij in 50 rupij Opomba, lahko nastavite več pogojev, da zaznate več ne. bankovcev.
Opomba: Frekvenčni izhod je lahko v vašem primeru drugačen, odvisno od zunanje osvetlitve in nastavitve senzorja. Zato je priporočljivo preveriti izhodno frekvenco vaše valute in ustrezno nastaviti referenčno vrednost.
Spodnja koda prikazuje razpoložljivo stanje v denarnici na LCD zaslonu 16x2.
lcd.setCursor (0, 0); lcd.print ("Skupaj Bal:"); lcd.setCursor (11, 0); lcd.print (skupaj); zamuda (1000);
Naslednja funkcija bo dobila izhodno frekvenco barv rdeče vsebine v valuti. Podobno lahko napišemo druge funkcije, da dobimo vrednost za vsebino modre in zelene barve.
int red () {digitalWrite (11, LOW); digitalWrite (12, LOW); frekvenca = pulseIn (OutPut, LOW); povratna frekvenca; }
Torej, tako lahko z nekaj komponentami enostavno sestavite števec denarja na osnovi Arduina. Nadalje ga lahko spremenimo z vključitvijo nekaj obdelave slik in fotoaparata za zaznavanje valute s pomočjo slike, tako bo natančnejša in bo lahko zaznala katero koli valuto.