- Componente necesare:
- Senzorul de culoare TCS3200 funcționează
- Pinout al senzorului de culoare TCS3200:
- Diagrama circuitului
- Explicarea codului
În acest proiect, vom lucra la o idee inovatoare de proiect arduino, în care putem număra bancnotele de hârtie și putem calcula suma acestora, prin detectarea monedei hârtiei folosind Color Sensor și Arduino. Senzorul de culoare TCS230 va fi utilizat pentru detectarea bancnotelor valutare și, Arduino UNO pentru procesarea datelor și afișarea soldului rămas pe ecranul LCD 16x2.
Componente necesare:
- Arduino UNO
- TCS230 Senzor de culoare
- Senzor IR
- Breadboard
- 16 * 2 LCD alfanumeric
- Conectarea firelor
Senzorul de culoare TCS3200 funcționează
Senzorul de culoare TCS3200 este folosit pentru a detecta o gamă largă de culori. Am interfațat anterior senzorul de culoare TCS3200 cu Arduino și Raspberry pi și, de asemenea, am construit câteva proiecte utile, cum ar fi mașina de sortare a culorilor.
Senzorul TCS230 are LED-uri infraroșii încorporate care sunt utilizate pentru a aprinde obiectul a cărui culoare urmează să fie detectată. Acest lucru asigură că nu vor exista impacturi ale luminii exterioare înconjurătoare asupra obiectului. Acest senzor citește o fotodiodă de matrice 8 * 8, care cuprinde 16 fotodiode cu filtre roșii, 16 cu filtre albastre, 16 cu filtre verzi și 16 fotodiode fără niciun filtru. Fiecare dintre matricile senzorilor din aceste trei matrice este selectată separat, în funcție de cerință. Prin urmare, este cunoscut ca un senzor programabil. Modulul poate fi prezentat pentru a simți culoarea particulară și pentru a le părăsi pe celelalte. Conține filtre pentru acest scop de selecție. Există un al patrulea mod numit „modul fără filtru” în care senzorul detectează lumina albă.
Semnalul de ieșire al senzorului de culoare TCS230 este o undă pătrată cu un ciclu de funcționare de 50% și frecvența sa este proporțională cu intensitatea luminii filtrului selectat.
Pinout al senzorului de culoare TCS3200:
VDD- Pinul de alimentare cu tensiune al senzorului. Se livrează cu 5V DC.
GND- Pinul de referință la sol al unui senzor de culoare
S0, S1- Intrări de selecție de scalare a frecvenței de ieșire
S2, S3- Intrări de selecție tip foto-diodă
OUT- Pinul de ieșire al unui senzor de culoare
OE- Activați pinul pentru frecvența de ieșire
Am utilizat și un senzor IR în acest proiect, a cărui funcționare poate fi înțeleasă prin linkul următor.
Diagrama circuitului
Mai jos este schema de circuit pentru Contorul de bani Arduino:
Aici, am realizat o structură mică, ca o mașină de swiping de monedă POS folosind cartoane. În această structură, un senzor de culoare și un senzor IR sunt fixate cu cartonul așa cum se arată în imaginea de mai jos.
Aici senzorul IR este folosit pentru a simți prezența monedei în slot și dacă există o notă, atunci senzorul de culoare va detecta culoarea Notei și va trimite valoarea culorii către Arduino. Și Arduino calculează în continuare valoarea monedei pe baza culorii notei.
Explicarea codului
Codul complet împreună cu un videoclip demonstrativ sunt furnizate la sfârșitul articolului. Aici explicația pas cu pas a codului complet este dată mai jos.
În primul rând, includeți toate bibliotecile din program. Aici avem nevoie doar de biblioteca LCD pentru a fi inclusă în program. Declarați apoi toate variabilele utilizate în cod.
#include
În interiorul configurării (), imprimați mesajul de întâmpinare pe LCD și definiți toate direcțiile de date ale pinilor digitali utilizați în acest proiect. Apoi, setați scalarea frecvenței de ieșire a senzorului de culoare, în cazul meu, acesta este setat la 20%, care poate fi setat prin acordarea unui impuls HIGH la S0 și impuls LOW la S1.
void setup () {Serial.begin (9600); lcd.inceput (16, 2); lcd.setCursor (0, 0); lcd.print („Portofel inteligent”); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); întârziere (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); }
În bucla infinită (), citiți toate ieșirile de date de la senzori. Ieșirea de la senzorul IR poate fi găsită citind pinul A0 și frecvențele de culoare de ieșire pot fi găsite apelând funcțiile individuale scrise ca roșu (), albastru () și verde (). Apoi imprimați-le pe toate pe monitorul serial. Acest lucru este necesar atunci când trebuie să adăugăm o nouă monedă la proiectul nostru.
senzor int = citire digitală (A0); int red1 = red (); int albastru1 = albastru (); int green1 = verde (); Serial.println (roșu1); Serial.println (albastru1); Serial.println (verde1); Serial.println ("-----------------------------");
Apoi, scrieți toate condițiile pentru a verifica frecvența de ieșire a senzorului de culoare cu frecvența de referință pe care am stabilit-o anterior. Dacă se potrivește, atunci deduce suma specificată din soldul portofelului.
if (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == HIGH) {a = 1; } else if (senzor == LOW && a == 1) {a = 0; if (total> = 10) {lcd.setCursor (0, 1); lcd.print („10 Rupii !!!”); total = total-10; întârziere (1500); lcd.clear (); }}
Aici am stabilit doar condițiile pentru 10 Rupee și 50 Rupees Note, puteți seta mai multe condiții pentru a detecta mai multe nu. a bancnotelor valutare.
Notă: ieșirea de frecvență poate fi diferită în cazul dvs., în funcție de iluminarea externă și configurarea senzorului. Prin urmare, este recomandat să verificați frecvența de ieșire a monedei dvs. și să setați valoarea de referință în consecință.
Codul de mai jos va arăta soldul disponibil în portofel pe ecranul LCD 16x2.
lcd.setCursor (0, 0); lcd.print ("Total Bal:"); lcd.setCursor (11, 0); lcd.print (total); întârziere (1000);
Următoarea funcție va obține frecvența de culoare de ieșire a conținutului roșu în monedă. În mod similar, putem scrie alte funcții pentru a obține valoare pentru conținutul de culoare albastră și verde.
int red () {digitalWrite (11, LOW); digitalWrite (12, LOW); frecvență = pulseIn (OutPut, LOW); frecvența de retur; }
Așa că așa se poate construi cu ușurință un contor de bani bazat pe Arduino folosind câteva componente. Îl putem modifica în continuare prin integrarea procesării imaginii și a camerei pentru a detecta moneda folosind imaginea, astfel va fi mai precisă și va putea detecta orice monedă.