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

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


تستعمل واجهة التخاطب التسلسلية للتواصل بين لوحة أردوينو وأجهزة أخرى (مثل الحاسوب). تملك جميع لوحات أردوينو منفذ تسلسلي واحد على الأقل يُعرَف باسم 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)‎

تتحقَّق الدالة if(Serial)‎ إن كان المنفذ Serial التسلسلي المُمرَّر إليها جاهزًا للاستعمال.

available

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

availableforwrite

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

begin

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

end

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

find

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

finduntil

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

flush

تنتظر الدالة flush()‎ اكتمال عملية نقل البيانات المرسلة عبر الاتصال التسلسلي

parsefloat

تعيد الدالة parseFloat()‎ أول عدد عشري صالح من مخزَّن الاتصال التسلسلي المؤقت.

parseint

تعيد الدالة parseInt()‎ أول عدد صحيح صالح من مخزَّن الاتصال التسلسلي المؤقت.

peek

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

print

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

println

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

read

تقرأ الدالة read()‎ البيانات المستلمة عبر الاتصال التسلسلي.

readbytes

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

readbytesuntil

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

readstring

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

readstringuntil

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

settimeout

تضبط الدالة setTimeout()‎ المهلة الزمنية القصوى بالميلي ثانية لانتظار وصول البيانات من منفذ الاتصال التسلسلي.

write

تكتب الدالة write()‎ بيانات ثنائية على منفذ الاتصال التسلسلي.

serialevent

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

انظر أيضًا

مصادر