בפרויקט זה נעבוד על רעיון חדשני לפרוייקט ארדואינו, בו נוכל לספור את שטרות מטבע הנייר ולחשב את סכומם, על ידי חישה של מטבע הנייר באמצעות צבע חיישן וארדואינו. חיישן הצבע TCS230 ישמש לאיתור שטרות המטבע, ו- Arduino UNO לעיבוד הנתונים ולהצגת היתרה שנותרה על גבי 16x2 LCD.
רכיבים נדרשים:
- ארדואינו UNO
- חיישן צבע TCS230
- חיישן IR
- קרש לחם
- 16 * 2 LCD אלפאנומרי
- חוטי חיבור
חיישן צבע TCS3200 עובד
חיישן הצבע TCS3200 משמש לחוש מגוון רחב של צבעים. בעבר ממשקנו חיישן צבע TCS3200 עם Arduino ו- Raspberry pi, וגם בנינו כמה פרויקטים שימושיים כמו מכונת מיון צבעים.
לחיישן TCS230 נוריות אינפרא אדום מובנות המשמשות להארת האובייקט שצבעו יגלה. זה מבטיח שלא יהיו השפעות של אור חיצוני סביב על האובייקט. חיישן זה קורא פוטודיודה של מערך 8 * 8, הכוללת 16 פוטודיודות עם פילטרים אדומים, 16 עם פילטרים כחולים, 16 עם פילטרים ירוקים ו -16 פוטודיודות ללא שום פילטר. כל אחד ממערכי החיישנים בשלושת המערכים הללו נבחר בנפרד בהתאם לדרישה. מכאן שהוא ידוע כחיישן הניתן לתכנות. ניתן להציג את המודול כדי לחוש את הצבע המסוים ולעזוב את האחרים. הוא מכיל פילטרים למטרת בחירה זו. יש מצב רביעי הנקרא ' אין מצב סינון' בו החיישן מזהה אור לבן.
אות הפלט של חיישן הצבע TCS230 הוא גל מרובע עם מחזור חובה של 50% ותדירותו פרופורציונאלית לעוצמת האור של המסנן שנבחר.
פינוי של חיישן צבע TCS3200:
VDD- סיכת אספקת מתח של חיישן. הוא מסופק עם 5 וולט DC.
GND- סיכת הפניה קרקעית של חיישן צבע
S0, S1 - כניסות לבחירת קנה מידה בתדר יציאה
S2, S3 - כניסות לבחירת סוג צילום דיודה
OUT- סיכת פלט של חיישן צבע
OE- אפשר סיכה לתדר פלט
השתמשנו גם בחיישן IR בפרויקט זה, שניתן להבין את עבודתו על ידי הקישור הבא.
תרשים מעגל
להלן תרשים המעגל עבור דלפק הכסף בארדואינו:
הנה, יצרתי מבנה קטן כמו מכונת החלפה של מטבע קופה באמצעות קרטונים. במבנה זה, חיישן צבע וחיישן IR מקובעים בקרטון כמו שמוצג בתמונה למטה.
כאן משתמשים בחיישן ה- IR כדי לחוש נוכחות של מטבע בתוך החריץ ואם יש פתק, אז חיישן הצבע יזהה את צבע ההערה וישלח את ערך הצבע לארדואינו. וארדואינו מחשב עוד יותר את ערך המטבע בהתבסס על צבע השטר.
הסבר קוד
קוד מלא יחד עם סרטון הדגמה ניתן בסוף המאמר. כאן ההסבר הצעד של הקוד השלם ניתן להלן.
ראשית, כלול את כל הספריות בתוכנית. כאן אנו זקוקים רק לספריית LCD כדי להיכלל בתוכנית. ואז הכריז על כל המשתנים המשמשים בקוד.
#לִכלוֹל
בתוך ההתקנה (), הדפיסו את הודעת הפתיחה על גבי LCD והגדירו את כל כיווני הנתונים של פינים דיגיטליים המשמשים בפרויקט זה. לאחר מכן, הגדר את קנה המידה של תדר הפלט של חיישן הצבע, במקרה שלי, הוא מוגדר ל- 20% שניתן להגדיר על ידי מתן דופק HIGH ל- S0 ודופק LOW ל- 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, OUTPUT); // S0 pinMode (3, OUTPUT); // S1 pinMode (11, OUTPUT); // S2 pinMode (12, OUTPUT); // S3 pinMode (13, INPUT); // OUT digitalWrite (2, HIGH); digitalWrite (3, LOW); }
בתוך הלולאה האינסופית (), קרא את כל פלט הנתונים מהחיישנים. את הפלט מחיישן ה- IR ניתן למצוא על ידי קריאת הסיכה A0 ותדרי צבע הפלט ניתן למצוא על ידי קריאה לפונקציות הבודדות הכתובות כאדום (), כחול () וירוק (). לאחר מכן הדפיס את כולם בצג הסידורי. זה נחוץ כשאנחנו צריכים להוסיף מטבע חדש לפרויקט שלנו.
חיישן int = digitalRead (A0); int red1 = אדום (); int blue1 = כחול (); int green1 = ירוק (); Serial.println (red1); Serial.println (כחול 1); Serial.println (ירוק 1); Serial.println ("-----------------------------");
לאחר מכן, כתוב את כל התנאים לבדיקת תדירות הפלט של חיישן הצבע עם תדר הייחוס שקבענו קודם. אם זה תואם, מנכה את הסכום שצוין מיתרת הארנק.
אם (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == HIGH) {a = 1; } אחר אם (חיישן == LOW && a == 1) {a = 0; אם (סה"כ> = 10) {lcd.setCursor (0, 1); lcd.print ("10 רופי !!!"); סה"כ = סה"כ -10; עיכוב (1500); lcd.clear (); }}
כאן הגדרנו רק את התנאים עבור 10 רופי ו 50 רופי צבע הערה, אתה יכול להגדיר תנאים נוספים כדי לזהות יותר. של שטרות מטבע.
הערה: פלט התדרים עשוי להיות שונה במקרה שלך בהתאם לתאורה החיצונית ולהגדרת החיישן. לכן מומלץ לבדוק את תדירות הפלט של המטבע שלכם ולהגדיר את ערך הייחוס בהתאם.
הקוד שלהלן יציג את היתרה הזמינה בארנק על גבי LCD 16x2.
lcd.setCursor (0, 0); lcd.print ("סך הכל:"); lcd.setCursor (11, 0); lcd.print (סה"כ); עיכוב (1000);
הפונקציה הבאה תקבל את תדירות הפלט של תוכן אדום במטבע. באופן דומה, אנו יכולים לכתוב פונקציות אחרות כדי לקבל ערך לתוכן צבע כחול וירוק.
int אדום () {digitalWrite (11, LOW); digitalWrite (12, LOW); תדר = pulseIn (OutPut, LOW); תדר החזרה; }
אז ככה ניתן לבנות דלפק כסף מבוסס Arduino בקלות באמצעות מעט רכיבים. אנו יכולים לשנות אותו עוד יותר על ידי שילוב של עיבוד תמונה כלשהו ומצלמה כדי לזהות את המטבע באמצעות התמונה, כך זה יהיה מדויק יותר ונוכל לזהות כל מטבע.