برمجة الاردوينو :
قم بكتابة الكود كما هو موضح أدناه :
#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;
}

