نظام إنذار باستخدام الأشعة تحت الحمراء

مبتدئ

image_pdf

برمجة الاردوينو :

قم بكتابة الكود كما هو موضح أدناه :

#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;
}

X
تم إضافة المنتج إلى السلة بنجاح