التابع Keyboard.write()‎ في أردوينو

من موسوعة حسوب

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

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

يمكنك أن تجد قائمة محارف ASCII الكاملة في هذه الصفحة.

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

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()‎.

مصادر