برمجة الاردوينو :
قم بكتابة الكود كما هو موضح أدناه :
#define SENSOR A0 #define BUZZER 12 void setup() { pinMode(SENSOR, INPUT); pinMode(BUZZER,OUTPUT); } void loop() { if(readIR(600) == true) beep(); // else // doNothing } void beep(void) { tone(BUZZER, 1000); delay(200); noTone(BUZZER); delay(200); } bool readIR(int refernceValue) { int x = analogRead(SENSOR); if(refernceValue > x) return true; else return false; }
شرح الكود:
في البداية، نقوم بتسمية المدخل A0 بإسم SENSOR ، والمنفذ رقم 12 بإسم BUZZER . وهكذا يصبح الكود أسهل وأفضل في الفهم والتعامل.
داخل الدالة ()setup، نقوم بتعريف الـ SENSOR كمدخل، والـ BUZZER كمخرج.
#define SENSOR A0 #define BUZZER 12 void setup() { pinMode(SENSOR, INPUT); pinMode(BUZZER,OUTPUT); }
في دالة ()loop، نقوم بالتحقق ما إذا كانت القراءة أقل من 600، فإذا تحقق الشرط نقوم بإصدار إنذار.
void loop() { if(readIR(600) == true) beep(); }
نقوم بإنشاء الدالة ()beep، لتوليد الإنذار. حيث تقوم الدالة بإصدار نغمة ذو تردد 1000 هيرتز، وتتوقف لمدة 200 ميلي ثانية بين النغمات.
void beep(void) { tone(BUZZER, 1000); delay(200); noTone(BUZZER); delay(200); }
نقوم بإنشاء الدالة readIR، والتي تقوم بقراءة قيمة الحساس وإذا كانت القيمة أصغر من القيمة refernce value فإن الدالة تقوم بإرجاع قيمة صحيحة true وإلا تقوم بإرجاع قيمة خاطئ false .
bool readIR(int refernceValue) { int x = analogRead(SENSOR); if(refernceValue > x) return true; else return false; }