تعلم الوحدات · الدرس 2.7

مفتاح الإمالة الكروي (Tilt Ball Switch)

العودة إلى الدروس

التعرف على حساس الإمالة (Tilt Sensor)

ستتعلم استخدام مفتاح الإمالة الكروي (Tilt Ball Switch) لاكتشاف زاوية ميل صغيرة.

المكونات المطلوبة

حساس الإمالة (Tilt Sensor)

يكشف الاتجاه أو الميل، وهو صغير ورخيص وقليل الاستهلاك وسهل الاستخدام. عند استخدامه بصورة صحيحة لا يتآكل سريعًا؛ لذا ينتشر في الألعاب والأدوات والأجهزة. تسمى بعض أنواعه مفاتيح زئبقية أو مفاتيح إمالة أو حساسات كرة متدحرجة.

يتكون عادة من تجويف، كثيرًا ما يكون أسطوانيًا، بداخله كتلة موصلة حرة مثل قطرة زئبق أو كرة. عند أحد طرفي التجويف قطبان موصلان. عندما يصبح ذلك الطرف إلى أسفل تتدحرج الكتلة إليه فتصل القطبين، مثل إغلاق مفتاح.

هو أقل دقة ومرونة من مقياس تسارع كامل، لكنه يكشف الحركة أو الاتجاه. تستطيع الأنواع الكبيرة تبديل الطاقة مباشرة، بينما يعطي مقياس التسارع (Accelerometer) إشارة رقمية أو تناظرية تحتاج إلى دوائر أخرى لتحليلها.

شكل مفتاح الإمالة الكروي (Tilt Ball Switch)
شكل مفتاح الإمالة الكروي (Tilt Ball Switch)

توصيل الدائرة

المخطط الكهربائي لمفتاح الإمالة (Tilt Ball Switch)
المخطط الكهربائي لمفتاح الإمالة (Tilt Ball Switch)
توصيل المفتاح بلوحة أردوينو (UNO R3 Board)
توصيل المفتاح بلوحة أردوينو (UNO R3 Board)

البرنامج والثوابت

افتح ملف البرنامج Ball_Switch.ino من ملفات الدرس في بيئة Arduino IDE. بعد إتمام التوصيلات، وصّل لوحة أردوينو (UNO R3 Board) بالحاسوب بكابل توصيل (USB Cable)، ثم اضغط زر Upload (رفع) لنقل البرنامج إلى اللوحة وتشغيله عليها.

إذا تعذر نقل البرنامج إلى اللوحة، فراجع قسم «رفع البرنامج ومعالجة خطأ الاتصال» في الدرس 1.5 «وميض LED وإضافة المكتبات» للتحقق من اتصال USB واختيار نوع اللوحة والمنفذ التسلسلي في بيئة Arduino IDE.

مقتطف من الشرح
const int ledPin = 13;

const

تعني «ثابت»، وهي كلمة تؤهل المتغير بحيث يصبح للقراءة فقط. يستخدم كأي متغير من نوعه لكن لا تتغير قيمته؛ محاولة إسناد قيمة جديدة تعطي خطأ ترجمة. تتبع ثوابت const قواعد نطاق المتغيرات العادية، ومع تجنب مشكلات #define يجعل ذلك const خيارًا مفضلًا لتعريف الثوابت.

مقتطف من الشرح
const float pi = 3.14;

float x;

x = pi * 2; // valid

pi = 7; // illegal: a constant cannot be modified

يمكن استخدام const أو #define للثوابت العددية والنصية. وللمصفوفات استخدم const؛ وبوجه عام، يُفضَّل const لتعريف الثوابت.

الكود

Ball_Switch/Ball_Switch.ino

//www.elegoo.com
//2016.12.08

const int ledPin = 13;//the led attach to

void setup()
{ 
  pinMode(ledPin,OUTPUT);//initialize the ledPin as an output
  pinMode(2,INPUT);
  digitalWrite(2, HIGH);
} 

void loop() 
{ 
  int digitalVal = digitalRead(2); //read pin 2
  if(HIGH == digitalVal)
  {
    digitalWrite(ledPin,LOW);//turn the led off
  }
  else
  {
    digitalWrite(ledPin,HIGH);//turn the led on 
  }
}

ملفات الدرس والمكتبات

ملفات الدرس

100%

عرض الصورة

استخدم + و− للتكبير والتصغير، أو اضغط Esc للإغلاق.