الكود البرمجي
ارفع كود الحصالة الذكية على لوحة الاردوينو باستخدام برنامج اردوينو (IDE).
#include "EEPROMex.h" #include <LiquidCrystal.h> const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); const float coinA = A0; const int coinB = A1; const int coinC = A2; float irA=0; int irB,irC = 0; float cntA=0; float cntB,cntC,cnttotal = 0; void setup() { Serial.begin(9600); pinMode(coinA ,INPUT); pinMode(coinB ,INPUT); pinMode(coinC,INPUT); lcd.begin(16, 2); lcd.write(EEPROM.read(5)); } void loop() { irA =digitalRead(coinA); irB =digitalRead(coinB); irC=digitalRead(coinC); if(irA ==LOW){cntA+=0.50; delay(600);} if(irB ==LOW){cntB+=1; delay(600);} if(irC ==LOW){cntC+=2; delay(600);} cnttotal =cntA+cntB+cntC; EEPROM.write(5,cnttotal); Serial.println(EEPROM.read(5)); lcd.setCursor(0,0); lcd.print("Total :"); lcd.setCursor(0,1); lcd.print(cnttotal); }
شرح الكود البرمجي
هذه الأسطر تستدعي المكتبات الضرورية للدرس مثل مكتبة الشاشة الكرستالية <LiquidCrystal.h> و مكتبة “EEPROMex.h” التي تستخدم لكتابة وقراءة الأرقام.
يمكنك تحميل المكتبات من هنا.
يتم تنزيل المكتبات من خلال شريط القوائم في برنامج arduino IDE.
أو من خلال فك الضغط عن ملفات المكتبات ونقلها إلى الملف التالي الموجود بجهازك C:\Program Files (x86)\Arduino
#include "EEPROMex.h" #include <LiquidCrystal.h>
بعد ذلك تم انشاء المتغيرات اللازمة مثل المتغيرات الخاصة بالشاشة الكرستالية.
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
في هذه الأسطر تم تعريف المتغيرات التي سيتم استخدامها لتخزين القيم المقروءة من مستشعر تجنب الحواجز.
المتغير coinA من النوع float يستخدم لتخزين القيم المقروءة من المنفذ A0.
المتغير coinB من النوع int يستخدم لتخزين القيم المقروءة من المنفذ A1.
المتغير coinC من النوع int يستخدم لتخزين القيم المقروءة من المنفذ A2.
const float coinA = A0; const int coinB = A1; const int coinC = A2;
سيتم تعيين القيم الابتدائية لكل مستشعرات تجنب الحواجز = 0.
وسيتم تعيين القيمة الابتدائية للمجموع الكلي لكل مستشعرات تجنب الحواجز = 0.
float irA=0; int irB,irC = 0; float cntA=0; float cntB,cntC,cnttotal = 0;
في الدالة ()setup يتم تهيئة الشاشة الكرستالية وجعل المتغير coinA و coinB و coinC كمدخلات لقراءة القيم من المستشعرات.
void setup() { Serial.begin(9600); pinMode(coinA ,INPUT); pinMode(coinB ,INPUT); pinMode(coinC,INPUT); lcd.begin(16, 2); lcd.write(EEPROM.read(5)); }
في الدالة ()loop يتم تخزين القيم المقروءة من المستشعرات الثلاث.
المدخل coinA قيمته تخزن في المتغير irA.
المدخل coinB قيمته تخزن في المتغير irB.
المدخل coinC قيمته تخزن في المتغير irC.
void loop() { irA =digitalRead(coinA); irB =digitalRead(coinB); irC =digitalRead(coinC);
هنا سيتم حساب العملات في كل مستشعر.
وبعد ذلك يتم جمع القيم من كل المستشعرات وتخزينها في cnttotal.
if(irA ==LOW){cntA+=0.50; delay(600);} if(irB ==LOW){cntB+=1; delay(600);} if(irC ==LOW){cntC+=2; delay(600);} cnttotal =cntA+cntB+cntC;
سيتم طباعة Total متبوعة بالمجموع الكلي للعملات المعدنية.
EEPROM.write(5,cnttotal); Serial.println(EEPROM.read(5)); lcd.setCursor(0,0); lcd.print("Total :"); lcd.setCursor(0,1); lcd.print(cnttotal); }
يمكنك اختبار الحصالة الذكية بعد رفع الكود البرمجي.
لا تنسَ فصل مصدر الطاقة بعد الانتهاء من استخدام النظام.