الدالة Keyboard.write()‎ في أردوينو

من موسوعة حسوب
< Arduino‏ | keyboard
مراجعة 08:39، 23 أكتوبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (إضافة محتويات الصفحة.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

ترسل الدالة write()‎ ضغطة زر واحدة من لوحة المفاتيح الافتراضية إلى الحاسوب المتصل. سلوك هذه الدالة مماثل تمامًا لضغط أي زر في لوحة مفاتيحك ضغطةً واحدةً. يمكنك باستعمال هذه الدالة إرسال أحد محارف ASCII إلى الحاسوب بما فيها تلك التي تمثِّل أحد مفاتيح التبديل.

المحارف ASCII المدعومة في هذه الدالة هي تلك الموجودة في لوحة المفاتيح فقط. على سبيل المثال، يمكن إرسال المحرف ASCII 8 (المسافة الخلفية)، ولكن لا يمكن إرسال المحرف ASCII 25 (الاستبدال [ASCII 25]) لعدم وجوده في لوحة المفاتيح. عند إرسال حرف أبجدي كبير، تُرسٍل الدالة write()‎ محرف التبديل shift بالإضافة إلى الحرف المنشود بالطريقة نفسها التي تكتب فيها على لوحة المفاتيح تمامًا. إن أُرسِلت قيمةٌ عدديةٌ عبر الدالة، فستُمثِّل هذه القيمة رقم المحرف ASCII المقابل (مثل استدعاء write(97)‎ الذي سيُرسِل الحرف 'a').

يمكنك ان تجد قائمة محارف ASCII الكاملة في الموقع ASCIITable.com.

البنية العامة

Keyboard.write(character)

المعاملات

character

محرفٌ أو عددٌ صحيحٌ يراد إرساله إلى الحاسوب. يمكن أن تكون قيمة هذا المعامل بأي ترميز مقبول للمحرف. على سبيل المثال، جميع الاستدعاءات التالية للدالة write()‎ مقبولة وترسل نفس القيمة التي هي الحرف A (أو ASCII 65):

Keyboard.write(65);         // A الذي هو الحرف ASCII 65 إرسال المحرف
Keyboard.write('A');            // نفس القيمة السابقة ولكن باستعمال علامات الاقتباس
Keyboard.write(0x41);       // نفس القيمة ولكن باستعمال النظام الست عشري
Keyboard.write(0b01000001); // نفس القيمة أيضًا ولكن باستعمال النظام الثنائي

القيم المعادة

يعاد عدد البايتات المرسلة.

أمثلة

إرسال الحرف 'A' إلى الحاسوب بالضغط على مفتاح واحد في لوحة المفاتيح:

#include <Keyboard.h>

void setup() {
  // جعل الرجل 2 رجل دخل مع تشغيل مقاومة الرفع
  // الداخلية، لذا سيصبح جهد الرجل 2 مرتفعًا إلا
  // إذا وصلت بالخط الأرضي
  pinMode(2, INPUT_PULLUP);
  Keyboard.begin();
}

void loop() {
  // إن ضُغِط على الزر المتصل بالرجل 2
  if(digitalRead(2)==LOW){
    // 'A' أرسل الحرف
    Keyboard.write(65);
  }
}

ملاحظات وتحذيرات

عند استعمال الدالة write()‎، تستحوذ أردوينو على لوحة مفاتيحك الحقيقية المتصلة بالحاسوب، لذا تأكد من تحكمك بكل شيء قبل استدعاء هذه الدالة. استعملنا في المثال السابق زرًا لنتمكن عبر الضغط عليه من التحكم بعملية التبديل بين لوحتي المفاتيح (الافتراضية والفعلية).

انظر أيضًا

  • الدالة begin()‎: تبدأ عملية محاكاة (emulating) للوحة مفاتيح افتراضية موصولة بالحاسوب المتصل باللوحة Leonardo أو Due.
  • الدالة end()‎: توقف عملية محاكاة (emulating) وصل لوحة المفاتيح الافتراضية بالحاسوب المتصل باللوحة.
  • الدالة press()‎: تسلك عند استدعائها نفس سلوك عملية الضغط على زرٍ في لوحة المفاتيح باستمرار.
  • الدالة print()‎: رسل ضغطة أو عدة ضغطات من لوحة المفاتيح الافتراضية إلى الحاسوب المتصل.
  • الدالة println()‎: ترسل ضغطة أو عدة ضغطات من لوحة المفاتيح الافتراضية إلى الحاسوب المتصل ثمَّ تُتبِعها بمحرف سطر جديد ومحرف العودة إلى بداية السطر.
  • الدالة release()‎: تحرِّر مفتاحًا محدَّدًا ضُغِط عليه مسبقًا باستعمال الدالة press()‎.
  • الدالة releaseAll()‎: تحرِّر جميع المفاتيح التي ضُغِط عليها مسبقًا باستعمال الدالة press()‎.

مصادر