حازم عيد


41


10


11

هل يمكن استخدام ال tilt sensor لمعرفة درجة الميلان؟

2014-08-27

السلام عليكم جميعا

هل يمكن استخدام ال tilt sensor لمعرفة درجة الميلان؟

2


محمد عنيني
محمد عنينيمنذ 3 سنوات

وعليكم السلام ورحمة الله وبركاته،

نعم بالطبع أخي، فهذا هو الغرض الرئيسي من هذا الحساس، كما ويمكنه قياس الاتجاه أيضاً.

إذا كنت في حاجة إلى المساعدة في كيفيّة توصيله وكتابة برنامج لقرائته، قم بتزويدنا بنوع الحساس ورقمه، ونقوم بذلك إن شاء الله.

2

حازم عيد
حازم عيدمنذ 3 سنوات

السلام عليكم اخي محمد،

انا استخدم النوع التالي:

http://www.aliexpress.com/snapshot/6206842142.html

جزاك الله خير.

2

محمد عنيني
محمد عنينيمنذ 3 سنوات

فحص الحساس:

أولاً عليك فحصه إذا كان يعمل أو لا، وذلك بتوصيله مع جهاز ملتيميتر (multimeter) واستخدام وضع اختبار المواصلة (continuity-test) كما في الصورة:

اضف وصف الصورة هنااضف وصف الصورة هنا


قراءة الحساس من خلال متحكم دقيق:

قم بإيصال الحساس مع المتحكم الدقيق، وتزويد الحساس بطاقة 5 فولت مع استخدام مقاوم 10K كما في الصورة:

اضف وصف الصورة هنا

وقم باستخدام البرنامج التالي لقراءة قيمة الحساس:

/* http://www.ladyada.net/learn/sensor/tilt.html */ int inPin = 2; // رقم منفذ المدخلات int outPin = 13; // رقم منفذ المخرجات int LEDstate = HIGH; // الحالة الحالية لمنفذ المخرجات int reading; // القراءة الحالية لمنفذ المدخلات int previous = LOW; // القراءة السابقة لمنفذ المدخلات // المتغيرات التالية من نوع long لأن الوقت الذي يتم حسابه بالميلي ثانية // سيزداد أكثر مما يمكنك تخزينه في int long time = 0; // آخر وقت تم فيه تبديل منفذ المخرجات long debounce = 50; // وقت التأخير، قم بزيادته حسب الحاجة void setup() { pinMode(inPin, INPUT); digitalWrite(inPin, HIGH); // تشغيل المقاوم المثبت بالمتحكم الدقيق pinMode(outPin, OUTPUT); } void loop() { int switchstate; reading = digitalRead(inPin); // إذا تغير التبدل، نظراً لارتداد أو ضغط.. if (reading != previous) { // إعادة ضبط وقت التأخير time = millis(); } if ((millis() - time) > debounce) { // بغض النظر عن حالة التبدل، فهي على ما هي عليه من وقت طويل // لذا يجب تسوية ذلك! switchstate = reading; // الآن نظهر المخرجات على ضوء المنفذ 13 if (switchstate == HIGH) LEDstate = LOW; else LEDstate = HIGH; } digitalWrite(outPin, LEDstate); // حفظ آخر قراءة previous = reading; }
2

حازم عيد
حازم عيدمنذ 3 سنوات

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

2

Test User