- Gerekli Bileşenler:
- TCS3200 Renk Sensörü Çalışıyor
- TCS3200 Renk Sensörünün Pim Çıkışı:
- Devre şeması
- Kod Açıklama
Bu projede, Color Sensor ve Arduino kullanarak kağıt para birimini algılayarak kağıt para notlarını sayabileceğimiz ve miktarını hesaplayabileceğimiz yenilikçi bir arduino projesi fikri üzerinde çalışacağız. Kağıt paraların tespiti için TCS230 renkli sensör, verilerin işlenmesi ve kalan bakiyenin 16x2 LCD'de gösterilmesi için Arduino UNO kullanılacaktır.
Gerekli Bileşenler:
- Arduino UNO
- TCS230 Renk sensörü
- IR sensörü
- Breadboard
- 16 * 2 Alfanümerik LCD
- Kabloların Bağlanması
TCS3200 Renk Sensörü Çalışıyor
TCS3200 renk sensörü, çok çeşitli renkleri algılamak için kullanılır. Daha önce TCS3200 renk sensörünü Arduino ve Raspberry pi ile arayüzledik ve ayrıca Renk sıralama makinesi gibi bazı faydalı projeler inşa ettik.
TCS230 sensörü, rengi algılanacak nesneyi aydınlatmak için kullanılan dahili kızılötesi LED'lere sahiptir. Bu, dış çevreleyen ışığın nesne üzerinde hiçbir etkisinin olmamasını sağlar. Bu sensör , kırmızı filtreli 16, mavi filtreli 16, yeşil filtreli 16 ve filtresiz 16 fotodiyottan oluşan 8 * 8 dizili bir fotodiyot okur. Bu üç dizideki sensör dizilerinin her biri, ihtiyaca göre ayrı ayrı seçilir. Bu nedenle programlanabilir bir sensör olarak bilinir. Modül, belirli rengi algılamak ve diğerlerinden ayrılmak için öne çıkarılabilir. Bu seçim amacı için filtreler içerir. Sensörün beyaz ışığı algıladığı 'filtresiz modu' adı verilen dördüncü bir mod vardır.
TCS230 renk sensörünün çıkış sinyali,% 50 görev döngüsüne sahip bir kare dalgadır ve frekansı, seçilen filtrenin ışık yoğunluğuyla orantılıdır.
TCS3200 Renk Sensörünün Pim Çıkışı:
VDD- Sensörün gerilim besleme pini. 5V DC ile sağlanır.
GND- Bir renk sensörünün toprak referans pini
S0, S1- Çıkış frekansı ölçeklendirme seçim girişleri
S2, S3- Foto diyot tipi seçim girişleri
OUT- Bir renk sensörünün çıkış pini
OE - Çıkış frekansı için pimi etkinleştirin
Bu projede ayrıca çalışması aşağıdaki bağlantıdan anlaşılabilen bir IR sensörü kullandık.
Devre şeması
Arduino Para Sayacı için devre şeması aşağıdadır:
Burada karton kullanarak POS para çekme makinesi gibi küçük bir yapı yaptım. Bu yapıda aşağıdaki resimde gösterildiği gibi bir renk sensörü ve bir IR sensörü karton ile sabitlenmiştir.
Burada IR sensörü yuvadaki para biriminin varlığını algılamak için kullanılır ve bir not varsa, renk sensörü Notun rengini algılar ve renk değerini Arduino'ya gönderir. Ve Arduino ayrıca para birimi değerini notun rengine göre hesaplar.
Kod Açıklama
Makalenin sonunda bir demo videosu ile birlikte eksiksiz kod verilmiştir. Burada tam kodun adım adım açıklaması aşağıda verilmiştir.
İlk olarak, programdaki tüm kütüphaneleri dahil edin. Burada programa dahil olmak için sadece LCD kütüphanesine ihtiyacımız var. Ardından kodda kullanılan tüm değişkenleri bildirin.
#Dahil etmek
İçinde kurulum (), LCD üzerinde hoş geldiniz mesajını yazdırmak ve bu projede kullanılan dijital pim tüm veri yön tanımlar. Daha sonra, renk sensörünün çıkış frekansı ölçeklendirmesini ayarlayın, benim durumumda, bu% 20'ye ayarlanır ve bu, S0'a YÜKSEK darbe ve S1'e DÜŞÜK darbe verilerek ayarlanabilir.
geçersiz kurulum () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Akıllı Cüzdan"); lcd.setCursor (0, 1); lcd.print ("Devre Özeti"); gecikme (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, YÜKSEK); digitalWrite (3, DÜŞÜK); }
Sonsuz döngü () içinde, sensörlerden gelen tüm veri çıktılarını okuyun. IR sensöründen çıktı, A0 pini okunarak bulunabilir ve çıktı renk frekansları, kırmızı (), mavi () ve yeşil () olarak yazılan ayrı işlevler çağrılarak bulunabilir. Ardından hepsini Seri monitörde yazdırın. Bu, projemize yeni bir para birimi eklememiz gerektiğinde gereklidir.
int sensör = digitalRead (A0); int red1 = kırmızı (); int blue1 = blue (); int green1 = yeşil (); Serial.println (red1); Serial.println (blue1); Serial.println (yeşil1); Serial.println ("-----------------------------");
Ardından, renk sensörünün çıkış frekansını daha önce belirlediğimiz referans frekansı ile kontrol etmek için tüm koşulları yazın. Eşleşirse, belirtilen tutarı cüzdan bakiyesinden düşer.
eğer (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == HIGH) {a = 1; } else if (sensör == DÜŞÜK && a == 1) {a = 0; eğer (toplam> = 10) {lcd.setCursor (0, 1); lcd.print ("10 Rupi !!!"); toplam = toplam-10; gecikme (1500); lcd.clear (); }}
Burada sadece 10 Rupi ve 50 Rupi Not rengi için koşulları belirledik, daha fazla hayır algılamak için daha fazla koşul ayarlayabilirsiniz. para birimi notları.
Not: Frekans çıkışı, harici aydınlatmaya ve sensör kurulumuna bağlı olarak sizin durumunuzda farklı olabilir. Bu nedenle, para biriminizin çıkış frekansını kontrol etmeniz ve referans değerini buna göre ayarlamanız önerilir.
Aşağıdaki kod, cüzdandaki mevcut bakiyeyi 16x2 LCD'de gösterecektir.
lcd.setCursor (0, 0); lcd.print ("Toplam Bakiye:"); lcd.setCursor (11, 0); lcd.print (toplam); gecikme (1000);
Aşağıdaki işlev, para birimi cinsinden kırmızı içeriğin çıktı rengi frekansını alacaktır. Benzer şekilde mavi ve yeşil renk içeriklerine değer kazandırmak için başka fonksiyonlar da yazabiliriz.
int red () {digitalWrite (11, DÜŞÜK); digitalWrite (12, DÜŞÜK); frekans = pulseIn (OutPut, LOW); dönüş frekansı; }
İşte bu, Arduino tabanlı bir Para sayacının birkaç bileşen kullanılarak kolayca oluşturulabilmesidir. Görüntüyü kullanarak para birimini tespit etmek için bazı görüntü işleme ve kameraları entegre ederek daha da değiştirebiliriz, bu şekilde daha doğru olur ve herhangi bir para birimini tespit edebilir.