- Požadované komponenty:
- TCS3200 Color Sensor Working
- Pinout barevného senzoru TCS3200:
- Kruhový diagram
- Vysvětlení kódu
V tomto projektu budeme pracovat na inovativní myšlence projektu arduino, kde můžeme spočítat papírové bankovky a vypočítat jejich množství pomocí snímání papírové měny pomocí Color Sensor a Arduino. Barevný senzor TCS230 bude použit pro detekci bankovek a Arduino UNO pro zpracování dat a zobrazení zbývajícího zůstatku na 16x2 LCD.
Požadované komponenty:
- Arduino UNO
- Barevný senzor TCS230
- IR senzor
- Nepájivá deska
- 16 * 2 alfanumerický LCD
- Připojení vodičů
TCS3200 Color Sensor Working
Barevný snímač TCS3200 se používá k snímání široké škály barev. Dříve jsme propojili barevný snímač TCS3200 s Arduino a Raspberry pi a také jsme postavili několik užitečných projektů, jako je třídicí stroj barev.
Senzor TCS230 má zabudované infračervené LED diody, které se používají k osvětlení objektu, jehož barva má být detekována. Tím je zajištěno, že nedojde k žádným nárazům vnějšího okolního světla na objekt. Tento senzor čte fotodiodu s polem 8 * 8, která se skládá ze 16 fotodiod s červenými filtry, 16 s modrými filtry, 16 se zelenými filtry a 16 fotodiod bez filtru. Každé ze senzorových polí v těchto třech polích je vybráno samostatně v závislosti na požadavku. Proto je známý jako programovatelný senzor. Modul může být vybaven pro snímání konkrétní barvy a pro opuštění ostatních. Obsahuje filtry pro tento účel výběru. Existuje čtvrtý režim zvaný „režim bez filtru“, ve kterém senzor detekuje bílé světlo.
Výstupní signál barevného snímače TCS230 je obdélníková vlna s 50% pracovním cyklem a jeho frekvence je úměrná intenzitě světla vybraného filtru.
Pinout barevného senzoru TCS3200:
VDD - kolík napájení snímače. Je dodáván s 5V DC.
GND - uzemňovací referenční kolík barevného snímače
S0, S1 - výběr vstupů pro změnu měřítka výstupní frekvence
S2, S3 - vstupy pro výběr typu fotodiody
OUT - Výstupní kolík barevného senzoru
OE- Povolte kolík pro výstupní frekvenci
V tomto projektu jsme také použili infračervený senzor, jehož fungování lze pochopit pomocí následujícího odkazu.
Kruhový diagram
Níže je schéma zapojení čítače peněz Arduino:
Tady jsem vytvořil malou strukturu jako stroj na přejíždění měny POS pomocí kartonů. V této struktuře jsou barevný senzor a IR senzor fixovány kartonem, jak je znázorněno na obrázku níže.
Zde se IR senzor používá ke snímání přítomnosti měny uvnitř slotu a pokud je k dispozici nota, pak barevný senzor detekuje barvu noty a pošle hodnotu barvy do Arduina. A Arduino dále vypočítává hodnotu měny na základě barvy noty.
Vysvětlení kódu
Kompletní kód spolu s ukázkovým videem je uveden na konci článku. Zde je postupné vysvětlení celého kódu uvedeno níže.
Nejprve zahrňte všechny knihovny do programu. Zde musíme do programu zahrnout pouze knihovnu LCD. Poté deklarujte všechny proměnné použité v kódu.
#zahrnout
Uvnitř setup () vytiskněte uvítací zprávu na LCD a definujte všechny datové směry digitálních pinů použitých v tomto projektu. Dále nastavte měřítko výstupní frekvence barevného snímače, v mém případě je nastaveno na 20%, které lze nastavit přidáním HIGH pulsu na S0 a LOW pulzu na S1.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print („Inteligentní peněženka“); lcd.setCursor (0, 1); lcd.print ("Přehled okruhů"); zpoždění (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); }
V nekonečné smyčce () načtěte všechny datové výstupy ze senzorů. Výstup z infračerveného senzoru lze zjistit čtením pinu A0 a výstupní barevné frekvence lze zjistit voláním jednotlivých funkcí zapsaných jako červená (), modrá () a zelená (). Poté je všechny vytiskněte na sériový monitor. To je nutné, když potřebujeme do projektu přidat novou měnu.
int senzor = digitalRead (A0); int red1 = red (); int modrá1 = modrá (); int green1 = green (); Serial.println (red1); Serial.println (modrá1); Serial.println (green1); Serial.println ("-----------------------------");
Dále zapište všechny podmínky a zkontrolujte výstupní frekvenci barevného snímače s referenční frekvencí, kterou jsme nastavili dříve. Pokud se shoduje, odečte zadanou částku ze zůstatku v peněžence.
if (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == HIGH) {a = 1; } else if (sensor == LOW && a == 1) {a = 0; if (celkem> = 10) {lcd.setCursor (0, 1); lcd.print ("10 rupií !!!"); celkem = celkem-10; zpoždění (1 500); lcd.clear (); }}
Zde jsme nastavili pouze podmínky pro barvu 10 rupií a 50 rupií, můžete nastavit více podmínek, abyste zjistili více ne. bankovek.
Poznámka: Frekvenční výstup se může ve vašem případě lišit v závislosti na nastavení externího osvětlení a senzoru. Doporučuje se tedy zkontrolovat výstupní frekvenci vaší měny a podle toho nastavit referenční hodnotu.
Níže uvedený kód zobrazí dostupný zůstatek v peněžence na 16x2 LCD.
lcd.setCursor (0, 0); lcd.print ("Celkem Bal:"); lcd.setCursor (11, 0); lcd.print (celkem); zpoždění (1000);
Následující funkce získá výstupní barevnou frekvenci červeného obsahu v měně. Podobně můžeme psát další funkce, abychom získali hodnotu pro obsah modré a zelené barvy.
int red () {digitalWrite (11, LOW); digitalWrite (12, LOW); frekvence = pulseIn (OutPut, LOW); frekvence návratu; }
Takto lze snadno postavit počítadlo peněz založené na Arduinu pomocí několika komponent. Můžeme to dále upravit integrací nějakého zpracování obrazu a kamery pro detekci měny pomocí obrázku, tak bude přesnější a bude schopen detekovat jakoukoli měnu.