- المكونات المطلوبة:
- جهاز استشعار اللون TCS3200 يعمل
- Pinout من جهاز استشعار اللون TCS3200:
- مخطط الرسم البياني
- شرح الكود
في هذا المشروع ، سنعمل على فكرة مبتكرة لمشروع اردوينو ، حيث يمكننا عد الأوراق النقدية الورقية وحساب قيمتها ، عن طريق استشعار العملة الورقية باستخدام Color Sensor و Arduino. سيتم استخدام مستشعر الألوان TCS230 للكشف عن العملات الورقية و Arduino UNO لمعالجة البيانات وإظهار الرصيد المتبقي على شاشة LCD مقاس 16x2.
المكونات المطلوبة:
- اردوينو UNO
- مستشعر اللون TCS230
- مستشعر IR
- اللوح
- شاشة LCD أبجدية رقمية مقاس 16 * 2
- توصيل الأسلاك
جهاز استشعار اللون TCS3200 يعمل
يستخدم مستشعر الألوان TCS3200 لاستشعار مجموعة واسعة من الألوان. لقد قمنا سابقًا بتوصيل مستشعر الألوان TCS3200 مع Arduino و Raspberry pi ، وقمنا أيضًا ببناء بعض المشاريع المفيدة مثل آلة فرز الألوان.
يحتوي مستشعر TCS230 على مصابيح LED داخلية تعمل بالأشعة تحت الحمراء تُستخدم لإضاءة الكائن المراد اكتشاف لونه. هذا يضمن عدم وجود تأثيرات للضوء المحيط الخارجي على الكائن. يقرأ هذا المستشعر الثنائي الضوئي من مجموعة 8 * 8 ، والتي تتكون من 16 صمامًا ضوئيًا بمرشحات حمراء ، و 16 مع مرشحات زرقاء ، و 16 مع مرشحات خضراء و 16 صمامًا ضوئيًا بدون أي مرشح. يتم تحديد كل صفيف من مجموعات أجهزة الاستشعار في هذه المصفوفات الثلاثة بشكل منفصل وفقًا للمتطلبات. ومن ثم يُعرف باسم المستشعر القابل للبرمجة. يمكن تمييز الوحدة لاستشعار اللون المحدد وترك الآخرين. يحتوي على مرشحات لغرض التحديد هذا. يوجد وضع رابع يسمى "وضع عدم التصفية" حيث يكتشف المستشعر الضوء الأبيض.
إشارة الخرج لمستشعر اللون TCS230 عبارة عن موجة مربعة مع دورة عمل بنسبة 50٪ ويتناسب ترددها مع شدة الضوء للمرشح المحدد.
Pinout من جهاز استشعار اللون TCS3200:
VDD- دبوس إمداد الجهد لجهاز الاستشعار. يتم تزويده بجهد 5 فولت تيار مستمر.
GND- الدبوس المرجعي الأرضي لجهاز استشعار اللون
S0 ، S1- مدخلات اختيار قياس تردد الإخراج
S2 ، S3- مدخلات اختيار نوع الصمام الثنائي للصور
OUT- دبوس الإخراج لمستشعر اللون
OE- تمكين دبوس لتردد الإخراج
لقد استخدمنا أيضًا مستشعر الأشعة تحت الحمراء في هذا المشروع ، والذي يمكن فهم عمله من خلال الرابط التالي.
مخطط الرسم البياني
يوجد أدناه مخطط الرسم البياني لـ Arduino Money Counter:
هنا ، لقد صنعت هيكلًا صغيرًا مثل آلة تمرير عملة POS باستخدام الورق المقوى. في هذا الهيكل ، يتم تثبيت مستشعر اللون ومستشعر الأشعة تحت الحمراء مع الورق المقوى كما هو موضح في الصورة أدناه.
هنا يتم استخدام مستشعر الأشعة تحت الحمراء لاستشعار وجود العملة داخل الفتحة وإذا كانت هناك ملاحظة ، فسيقوم مستشعر اللون باكتشاف لون الملاحظة وإرسال قيمة اللون إلى Arduino. ويحسب Arduino أيضًا قيمة العملة بناءً على لون الملاحظة.
شرح الكود
يتم تقديم رمز كامل مع فيديو توضيحي في نهاية المقالة. فيما يلي شرح متدرج للكود الكامل.
أولاً ، قم بتضمين جميع المكتبات في البرنامج. هنا نحتاج فقط إلى مكتبة LCD ليتم تضمينها في البرنامج. ثم أعلن عن جميع المتغيرات المستخدمة في الكود.
#تضمن
داخل الإعداد () ، اطبع رسالة الترحيب على شاشة LCD وحدد جميع اتجاهات البيانات الخاصة بالدبابيس الرقمية المستخدمة في هذا المشروع. بعد ذلك ، قم بتعيين مقياس تردد الإخراج لمستشعر اللون ، في حالتي ، يتم ضبطه على 20 ٪ والذي يمكن ضبطه عن طريق إعطاء نبضة عالية إلى S0 ونبض منخفض إلى S1.
إعداد باطل () {Serial.begin (9600) ؛ lcd.begin (16 ، 2) ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("المحفظة الذكية") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("ملخص الدائرة") ؛ تأخير (2000) ؛ lcd.clear () ؛ pinMode (2 ، الإخراج) ؛ // S0 pinMode (3 ، الإخراج) ؛ // S1 pinMode (11 ، الإخراج) ؛ // S2 pinMode (12 ، الإخراج) ؛ // S3 pinMode (13 ، INPUT) ؛ // OUT digitalWrite (2 ، عالية) ؛ digitalWrite (3 ، منخفض) ؛ }
داخل الحلقة اللانهائية () ، اقرأ جميع مخرجات البيانات من أجهزة الاستشعار. يمكن العثور على الإخراج من مستشعر الأشعة تحت الحمراء بقراءة دبوس A0 ويمكن العثور على ترددات ألوان الإخراج عن طريق استدعاء الوظائف الفردية المكتوبة باللون الأحمر () والأزرق () والأخضر (). ثم اطبع كل منهم على الشاشة التسلسلية. هذا ضروري عندما نحتاج إلى إضافة عملة جديدة إلى مشروعنا.
حساس int = digitalRead (A0) ؛ int red1 = أحمر () ؛ int blue1 = blue () ؛ int green1 = green () ؛ Serial.println (red1) ؛ Serial.println (blue1) ؛ Serial.println (green1) ؛ Serial.println ("-----------------------------") ؛
بعد ذلك ، اكتب جميع الشروط للتحقق من تردد خرج مستشعر اللون مع التردد المرجعي الذي حددناه من قبل. إذا تطابقت ، فقم بخصم المبلغ المحدد من رصيد المحفظة.
إذا (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 (total> = 10) {lcd.setCursor (0، 1)؛ lcd.print ("10 روبية !!!") ؛ المجموع = المجموع 10 ؛ تأخير (1500) ؛ lcd.clear () ؛ }}
هنا قمنا فقط بتعيين الشروط للون 10 روبية و 50 روبية ملاحظة اللون ، يمكنك تعيين المزيد من الشروط لاكتشاف المزيد لا. من الأوراق النقدية.
ملاحظة: قد يختلف خرج التردد في حالتك اعتمادًا على الإضاءة الخارجية وإعداد المستشعر. لذلك يوصى بالتحقق من تكرار إخراج عملتك وتعيين القيمة المرجعية وفقًا لذلك.
سيُظهر الرمز أدناه الرصيد المتاح في المحفظة على شاشة LCD مقاس 16 × 2.
lcd.setCursor (0 ، 0) ؛ lcd.print ("Total Bal:") ؛ lcd.setCursor (11 ، 0) ؛ lcd.print (إجمالي) ؛ تأخير (1000) ؛
ستحصل الوظيفة التالية على تردد لون الإخراج للمحتوى الأحمر في العملة. وبالمثل ، يمكننا كتابة وظائف أخرى للحصول على قيمة لمحتويات اللونين الأزرق والأخضر.
int red () {digitalWrite (11، LOW) ؛ digitalWrite (12 ، منخفض) ؛ التردد = pulseIn (OutPut، LOW) ؛ تردد العودة }
هذه هي الطريقة التي يمكن بها بناء عداد الأموال المستند إلى Arduino بسهولة باستخدام مكونات قليلة. يمكننا تعديلها أكثر من خلال دمج بعض معالجة الصور والكاميرا لاكتشاف العملة باستخدام الصورة ، وبهذه الطريقة ستكون أكثر دقة وستكون قادرة على اكتشاف أي عملة.