واجهة الاتصال التسلسلية في أردوينو

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

تستعمل واجهة التخاطب التسلسلية للتواصل بين لوحة أردوينو وأجهزة أخرى (مثل الحاسوب). تملك جميع لوحات أردوينو منفذ تسلسلي واحد على الأقل يُعرَف باسم UART أو USART. يستعمل هذا المنفذ الرجل 0 (RX) والرجل 1 (TX) في عملية التواصل، إذ تكون هاتان الرجلان موصلتين مع المنفذ USB للتواصل مع الحاسوب. نتيجةً لذلك، إن استعملت إحدى الدوال الموجودة في هذا القسم في تهيئة واجهة التخاطب التسلسلية والبدء باستعمالها، فلن تتمكن من استعمال الرجلين 0 و 1 من أجل الدخل أو الخرج الرقمي بعدئذٍ. تستطيع استعمال مراقب الاتصالات التسلسلية المدمج في بيئة أردوينو التطويرية (Arduino IDE) للتواصل مع لوحة أردوينو. اضغط على زر مراقب الاتصال التسلسلي (serial monitor) في شريط الأدوات واختر معدل تدفق البيانات أو سرعة الاتصال (baud rate) نفسه الذي استُعمَل في تهيئة الاتصال باستدعاء التابع begin()‎.

يستعمل الاتصال التسلسلي في الرجلين RX و TX المستويات TTL المنطقية (5V أو 3.3V بناءً على اللوحة المستعملة). لا توصل هذه الأرجل مباشرةً مع منفذ RS232 تسلسلي، إذ يعمل بجهد 12V -/+ وقد يتسبِّب في إتلاف اللوحة.

تملك لوحة أردوينو Mega ثلاثة منافذ اتصال تسلسلية إضافية هي: المنفذ Serial1 على الرجلين 19 (RX) و 18 (TX)، والمنفذ Serial2 على الرجلين 17 (RX) و 16 (TX)، والمنفذ Serial3 على الرجلين 15 (RX) و 14 (TX). إن أردت استعمال هذه الأرجل في التواصل مع الحاسوب، فستحتاج إلى محول من المنفذ USB إلى منفذ تسلسلي (USB-to-serial adaptor). أمّا إن أردت استعمال هذه الأرجل للتواصل مع جهاز TTL تسلسلي خارجي، فصِل الرجل TX للوحتك مع الرجل RX لذلك الجهاز، والرجل RX للوحتك مع الرجل TX للجهاز الخارجي، والقطب الأرضي للوحتك (Mega) مع القطب الأرضي للجهاز.

تملك لوحة أردوينو Due ثلاثة منافذ TTL تسلسلي بجهد 3.3V إضافية هي: المنفذ Serial1 على الرجلين 19 (RX) و 18 (TX)، والمنفذ Serial2 على الرجلين 17 (RX) و 16 (TX)، والمنفذ Serial3 على الرجلين 15 (RX) و 14 (TX). الرجلان 0 و 1 موصولتان أيضًا مع ما يقابلهما في المتحكم ATmega16U2 المستعمل كشريحة تحويل من منفذ USB إلى منفذ TTL تسلسلي، والموصول أيضًا مع المنفذ USB لتنقيح الأخطاء (USB debug port). أضف إلى ذلك أنه يوجد منفذ USB تسلسلي أصلي على شريحة المتحكم SAM3X يدعى SerialUSB.

تستعمل لوحة أردوينو Leonardo المنفذ Serial1 التسلسلي للتواصل عبر المنفذ TTL (بجهد 5V) في الرجلين 0 (RX) و 1 (TX). المنفذ Serial محجوزٌ للاتصال USB CDC. لمزيد من المعلومات، ارجع إلى صفحة البدء الخاصة بلوحة Leonardo بالإضافة إلى صفحة العتاد.

if(Serial)‎

يتحقَّق التابع إن كان المنفذ Serial التسلسلي المُمرَّر إليها جاهزًا للاستعمال.

available()‎

يجلب التابع عدد البايتات (المحارف) المتاحة للقراءة من منفذ الاتصال التسلسلي.

availableForWrite()‎

يجلب التابع عدد البايتات (المحارف) المتاحة للكتابة في ذاكرة التخزين المؤقتة لمنفذ الاتصال التسلسلي دون حجب عملية الكتابة.

begin()‎

يضبط التابع معدل تدفق البتات في الثانية الواحدة (baud) لعملية نقل البيانات عبر الاتصال التسلسلي.

end()‎

يعطِّل التابع الاتصال التسلسلي المفتوح محرِّرةً بذلك الرجل 0 (RX) والرجل 1 (TX) لتصبح قابلةً للاستعمال كدخل أو خرج رقمي.

find()‎

يتحقَّق التابع من وجود السلسلة النصية المُمرَّرة إليه ضمن بيانات ذاكرة التخزين المؤقتة للاتصال التسلسلي.

findUntil()‎

يتحقَّق التابع من وجود السلسلة النصية المُمرَّرة إليه ضمن جزء محدَّد من بيانات ذاكرة التخزين المؤقتة للاتصال التسلسلي.

flush()‎

ينتظر التابع اكتمال عملية نقل البيانات المرسلة عبر الاتصال التسلسلي

parseFloat()‎

يعيد التابع أول عدد عشري صالح من مخزَّن الاتصال التسلسلي المؤقت.

parseInt()‎

يعيد التابع أول عدد صحيح صالح من مخزَّن الاتصال التسلسلي المؤقت.

peek()‎

يعيد التابع البايت (المحرف) التالي من البيانات المستلمة عبر الاتصال التسلسلي دون حذفه من المخزَّن الداخلي المؤقت للاتصال التسلسلي.

print()‎

يطبع التابع البيانات المُمرَّرة إليها على منفذ الاتصال التسلسلي بترميز ASCII (أي نص يستطيع الأشخاص الآخرين قراءته). 

println()‎

يطبع التابع البيانات المُمرَّرة إليها على منفذ الاتصال التسلسلي بترميز ASCII (أي نص يستطيع الأشخاص الآخرين قراءته) ثمَّ يتبعها بمحرف العودة إلى بداية السطر (المحرف 'r\' أو ASCII 13) ومحرف سطر جديد (المحرف 'n\' أو ASCII 10).

read()‎

يقرأ التابع البيانات المستلمة عبر الاتصال التسلسلي.

readBytes()‎

يقرأ التابع البيانات المستلمة عبر الاتصال التسلسلي ويضعها في متغير يمثِّل مخزن مؤقت (buffer). 

readBytesUntil()‎

يقرأ التابع جزءًا محدَّدًا من البيانات المستلمة عبر الاتصال التسلسلي ويضعها في متغير يمثِّل مخزن مؤقت (buffer)

readString()‎

يقرأ التابع المحارف المستلمة عبر الاتصال التسلسلي ويعيدها كسلسلة نصية.

readStringUntil()‎

يقرأ التابع جزءًا من المحارف المستلمة عبر الاتصال التسلسلي ويعيدها كسلسلة نصية.

setTimeout()‎

يضبط التابع المهلة الزمنية القصوى بالميلي ثانية لانتظار وصول البيانات من منفذ الاتصال التسلسلي.

write()‎

يكتب التابع بيانات ثنائية على منفذ الاتصال التسلسلي.

serialEvent()‎

يُستدعَى التابع عندما يكون هنالك بيانات متاحة للقراءة عبر منفذ الاتصال التسلسلي.

انظر أيضًا

  • واجهة الاتصال عبر المجاري.
  • مثال: قراءة سلسلة نصية مُرمَّز بالترميز ASCII.
  • مثال: توليد الجدول ASCII.
  • مثال: التحكم بشدة إضاءة ضوء عبر المنفذ التسلسلي.
  • مثال: المخطط البياني.
  • مثال: إنشاء بكسل والتحكم به.
  • مثال: الاتصال والاستجابة (المصافحة) عبر المنفذ التسلسلي.
  • مثال: النداء والاستجابة (المصافحة) مع استعمال مخرجات مُرمَّزة بالترميز ASCII.

مصادر