الفرق بين المراجعتين لصفحة: «Arduino/serial»

من موسوعة حسوب
طلا ملخص تعديل
طلا ملخص تعديل
 
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:واجهة الاتصال التسلسلية في أردوينو}}</noinclude>
<noinclude>{{DISPLAYTITLE:واجهة الاتصال التسلسلية في أردوينو}}</noinclude>
تستعمل واجهة التخاطب التسلسلية للتواصل بين لوحة أردوينو وأجهزة أخرى (مثل الحاسوب). تملك جميع لوحات أردوينو منفذ تسلسلي واحد على الأقل يُعرَف باسم UART أو USART. يستعمل هذا المنفذ الرجل 0 (RX) والرجل 1 (TX) في عملية التواصل، إذ تكون هاتان الرجلان موصلتين مع المنفذ USB للتواصل مع الحاسوب. نتيجةً لذلك، إن استعملت إحدى الدوال الموجودة في هذا القسم في تهيئة واجهة التخاطب التسلسلية والبدء باستعمالها، فلن تتمكن من استعمال الرجلين 0 و 1 من أجل الدخل أو الخرج الرقمي بعدئذٍ. تستطيع استعمال مراقب الاتصالات التسلسلية المدمج في بيئة أردوينو التطويرية (Arduino IDE) للتواصل مع لوحة أردوينو. اضغط على زر مراقب الاتصال التسلسلي (serial monitor) في شريط الأدوات واختر معدل تدفق البيانات أو سرعة الاتصال (baud rate) نفسه الذي استُعمَل في تهيئة الاتصال باستدعاء الدالة <code>[[Arduino/serial/begin|begin()‎]]</code>.
تستعمل واجهة التخاطب التسلسلية للتواصل بين لوحة أردوينو وأجهزة أخرى (مثل الحاسوب). تملك جميع لوحات أردوينو منفذ تسلسلي واحد على الأقل يُعرَف باسم UART أو USART. يستعمل هذا المنفذ الرجل 0 (RX) والرجل 1 (TX) في عملية التواصل، إذ تكون هاتان الرجلان موصلتين مع المنفذ USB للتواصل مع الحاسوب. نتيجةً لذلك، إن استعملت إحدى الدوال الموجودة في هذا القسم في تهيئة واجهة التخاطب التسلسلية والبدء باستعمالها، فلن تتمكن من استعمال الرجلين 0 و 1 من أجل الدخل أو الخرج الرقمي بعدئذٍ. تستطيع استعمال مراقب الاتصالات التسلسلية المدمج في بيئة أردوينو التطويرية (Arduino IDE) للتواصل مع لوحة أردوينو. اضغط على زر مراقب الاتصال التسلسلي (serial monitor) في شريط الأدوات واختر معدل تدفق البيانات أو سرعة الاتصال (baud rate) نفسه الذي استُعمَل في تهيئة الاتصال باستدعاء التابع <code>[[Arduino/serial/begin|begin()‎]]</code>.
__TOC__
__TOC__
يستعمل الاتصال التسلسلي في الرجلين RX و TX المستويات TTL المنطقية (5V أو 3.3V بناءً على اللوحة المستعملة). لا توصل هذه الأرجل مباشرةً مع منفذ RS232 تسلسلي، إذ يعمل بجهد 12V -/+  وقد يتسبِّب في إتلاف اللوحة.
يستعمل الاتصال التسلسلي في الرجلين RX و TX المستويات TTL المنطقية (5V أو 3.3V بناءً على اللوحة المستعملة). لا توصل هذه الأرجل مباشرةً مع منفذ RS232 تسلسلي، إذ يعمل بجهد 12V -/+  وقد يتسبِّب في إتلاف اللوحة.
سطر 10: سطر 10:
تستعمل لوحة أردوينو Leonardo المنفذ <code>Serial1</code> التسلسلي للتواصل عبر المنفذ TTL (بجهد 5V) في الرجلين 0 (RX) و 1 (TX). المنفذ <code>Serial</code> محجوزٌ للاتصال USB CDC. لمزيد من المعلومات، ارجع إلى صفحة البدء الخاصة بلوحة Leonardo بالإضافة إلى صفحة العتاد.
تستعمل لوحة أردوينو Leonardo المنفذ <code>Serial1</code> التسلسلي للتواصل عبر المنفذ TTL (بجهد 5V) في الرجلين 0 (RX) و 1 (TX). المنفذ <code>Serial</code> محجوزٌ للاتصال USB CDC. لمزيد من المعلومات، ارجع إلى صفحة البدء الخاصة بلوحة Leonardo بالإضافة إلى صفحة العتاد.
==<code>[[Arduino/serial/ifserial|if(Serial)‎]]</code>==
==<code>[[Arduino/serial/ifserial|if(Serial)‎]]</code>==
تتحقَّق الدالة <code>if(Serial)‎</code> إن كان المنفذ <code>Serial</code> التسلسلي المُمرَّر إليها جاهزًا للاستعمال.
يتحقَّق التابع إن كان المنفذ <code>Serial</code> التسلسلي المُمرَّر إليها جاهزًا للاستعمال.
==<code>[[Arduino/serial/available|available()‎]]</code>==
==<code>[[Arduino/serial/available|available()‎]]</code>==
تجلب الدالة <code>available()‎</code> عدد البايتات (المحارف) المتاحة للقراءة من منفذ الاتصال التسلسلي.
يجلب التابع عدد البايتات (المحارف) المتاحة للقراءة من منفذ الاتصال التسلسلي.
==<code>[[Arduino/serial/availableforwrite|availableForWrite()‎]]</code>==
==<code>[[Arduino/serial/availableforwrite|availableForWrite()‎]]</code>==
تجلب الدالة <code>availableForWrite()‎</code> عدد البايتات (المحارف) المتاحة للكتابة في ذاكرة التخزين المؤقتة لمنفذ الاتصال التسلسلي دون حجب عملية الكتابة.
يجلب التابع عدد البايتات (المحارف) المتاحة للكتابة في ذاكرة التخزين المؤقتة لمنفذ الاتصال التسلسلي دون حجب عملية الكتابة.
==<code>[[Arduino/serial/begin|begin()‎]]</code>==
==<code>[[Arduino/serial/begin|begin()‎]]</code>==
تضبط الدالة <code>begin()‎</code> معدل تدفق البتات في الثانية الواحدة (baud) لعملية نقل البيانات عبر الاتصال التسلسلي.
يضبط التابع معدل تدفق البتات في الثانية الواحدة (baud) لعملية نقل البيانات عبر الاتصال التسلسلي.
==<code>[[Arduino/serial/end|end()‎]]</code>==
==<code>[[Arduino/serial/end|end()‎]]</code>==
تعطِّل الدالة <code>end()‎</code> الاتصال التسلسلي المفتوح محرِّرةً بذلك الرجل 0 (RX) والرجل 1 (TX) لتصبح قابلةً للاستعمال كدخل أو خرج رقمي.
يعطِّل التابع الاتصال التسلسلي المفتوح محرِّرةً بذلك الرجل 0 (RX) والرجل 1 (TX) لتصبح قابلةً للاستعمال كدخل أو خرج رقمي.
==<code>[[Arduino/serial/find|find()‎]]</code>==
==<code>[[Arduino/serial/find|find()‎]]</code>==
تتحقَّق الدالة <code>find()‎</code> من وجود السلسلة النصية المُمرَّرة إليها ضمن بيانات ذاكرة التخزين المؤقتة للاتصال التسلسلي.
يتحقَّق التابع من وجود السلسلة النصية المُمرَّرة إليه ضمن بيانات ذاكرة التخزين المؤقتة للاتصال التسلسلي.
==<code>[[Arduino/serial/finduntil|findUntil()‎]]</code>==
==<code>[[Arduino/serial/finduntil|findUntil()‎]]</code>==
تتحقَّق الدالة <code>findUntil()‎</code> من وجود السلسلة النصية المُمرَّرة إليها ضمن جزء محدَّد من بيانات ذاكرة التخزين المؤقتة للاتصال التسلسلي.
يتحقَّق التابع من وجود السلسلة النصية المُمرَّرة إليه ضمن جزء محدَّد من بيانات ذاكرة التخزين المؤقتة للاتصال التسلسلي.
==<code>[[Arduino/serial/flush|flush()‎]]</code>==
==<code>[[Arduino/serial/flush|flush()‎]]</code>==
تنتظر الدالة <code>flush()‎</code> اكتمال عملية نقل البيانات المرسلة عبر الاتصال التسلسلي
ينتظر التابع اكتمال عملية نقل البيانات المرسلة عبر الاتصال التسلسلي
==<code>[[Arduino/serial/parsefloat|parseFloat()‎]]</code>==
==<code>[[Arduino/serial/parsefloat|parseFloat()‎]]</code>==
تعيد الدالة <code>parseFloat()‎</code> أول [[Arduino/float|عدد عشري]] صالح من مخزَّن الاتصال التسلسلي المؤقت.
يعيد التابع أول [[Arduino/float|عدد عشري]] صالح من مخزَّن الاتصال التسلسلي المؤقت.
==<code>[[Arduino/serial/parseint|parseInt()‎]]</code>==
==<code>[[Arduino/serial/parseint|parseInt()‎]]</code>==
تعيد الدالة <code>parseInt()‎</code> أول [[Arduino/int|عدد صحيح]] صالح من مخزَّن الاتصال التسلسلي المؤقت.
يعيد التابع أول [[Arduino/int|عدد صحيح]] صالح من مخزَّن الاتصال التسلسلي المؤقت.
==<code>[[Arduino/serial/peek|peek()‎]]</code>==
==<code>[[Arduino/serial/peek|peek()‎]]</code>==
تعيد الدالة <code>peek()‎</code> البايت (المحرف) التالي من البيانات المستلمة عبر الاتصال التسلسلي دون حذفه من المخزَّن الداخلي المؤقت للاتصال التسلسلي.
يعيد التابع البايت (المحرف) التالي من البيانات المستلمة عبر الاتصال التسلسلي دون حذفه من المخزَّن الداخلي المؤقت للاتصال التسلسلي.
==<code>[[Arduino/serial/print|print()‎]]</code>==
==<code>[[Arduino/serial/print|print()‎]]</code>==
تطبع الدالة <code>print()‎</code> البيانات المُمرَّرة إليها على منفذ الاتصال التسلسلي بترميز ASCII (أي نص يستطيع الأشخاص الآخرين قراءته). 
يطبع التابع البيانات المُمرَّرة إليها على منفذ الاتصال التسلسلي بترميز ASCII (أي نص يستطيع الأشخاص الآخرين قراءته). 
==<code>[[Arduino/serial/println|println()‎]]</code>==
==<code>[[Arduino/serial/println|println()‎]]</code>==
تطبع الدالة <code>println()‎</code> البيانات المُمرَّرة إليها على منفذ الاتصال التسلسلي بترميز ASCII (أي نص يستطيع الأشخاص الآخرين قراءته) ثمَّ تتبعها بمحرف العودة إلى بداية السطر (المحرف 'r\' أو ASCII 13) ومحرف سطر جديد (المحرف 'n\' أو ASCII 10).
يطبع التابع البيانات المُمرَّرة إليها على منفذ الاتصال التسلسلي بترميز ASCII (أي نص يستطيع الأشخاص الآخرين قراءته) ثمَّ يتبعها بمحرف العودة إلى بداية السطر (المحرف 'r\' أو ASCII 13) ومحرف سطر جديد (المحرف 'n\' أو ASCII 10).
==<code>[[Arduino/serial/read|read()‎]]</code>==
==<code>[[Arduino/serial/read|read()‎]]</code>==
تقرأ الدالة <code>read()‎</code> البيانات المستلمة عبر الاتصال التسلسلي.
يقرأ التابع البيانات المستلمة عبر الاتصال التسلسلي.
==<code>[[Arduino/serial/readbytes|readBytes()‎]]</code>==
==<code>[[Arduino/serial/readbytes|readBytes()‎]]</code>==
تقرأ الدالة <code>readBytes()‎</code> البيانات المستلمة عبر الاتصال التسلسلي وتضعها في متغير يمثِّل مخزن مؤقت (buffer). 
يقرأ التابع البيانات المستلمة عبر الاتصال التسلسلي ويضعها في متغير يمثِّل مخزن مؤقت (buffer). 
==<code>[[Arduino/serial/readbytesuntil|readBytesUntil()‎]]</code>==
==<code>[[Arduino/serial/readbytesuntil|readBytesUntil()‎]]</code>==
تقرأ الدالة <code>readBytesUntil()‎</code> جزءًا محدَّدًا من البيانات المستلمة عبر الاتصال التسلسلي وتضعها في متغير يمثِّل مخزن مؤقت (buffer)
يقرأ التابع جزءًا محدَّدًا من البيانات المستلمة عبر الاتصال التسلسلي ويضعها في متغير يمثِّل مخزن مؤقت (buffer)
==<code>[[Arduino/serial/readstring|readString()‎]]</code>==
==<code>[[Arduino/serial/readstring|readString()‎]]</code>==
تقرأ الدالة <code>readString()‎</code> المحارف المستلمة عبر الاتصال التسلسلي وتعيدها كسلسلة نصية.
يقرأ التابع المحارف المستلمة عبر الاتصال التسلسلي ويعيدها كسلسلة نصية.
==<code>[[Arduino/serial/readstringuntil|readStringUntil()‎]]</code>==
==<code>[[Arduino/serial/readstringuntil|readStringUntil()‎]]</code>==
تقرأ الدالة <code>readStringUntil()‎</code> جزءًا من المحارف المستلمة عبر الاتصال التسلسلي وتعيدها كسلسلة نصية.
يقرأ التابع جزءًا من المحارف المستلمة عبر الاتصال التسلسلي ويعيدها كسلسلة نصية.
==<code>[[Arduino/serial/settimeout|setTimeout()‎]]</code>==
==<code>[[Arduino/serial/settimeout|setTimeout()‎]]</code>==
تضبط الدالة <code>setTimeout()‎</code> المهلة الزمنية القصوى بالميلي ثانية لانتظار وصول البيانات من منفذ الاتصال التسلسلي.
يضبط التابع المهلة الزمنية القصوى بالميلي ثانية لانتظار وصول البيانات من منفذ الاتصال التسلسلي.
==<code>[[Arduino/serial/write|write()‎]]</code>==
==<code>[[Arduino/serial/write|write()‎]]</code>==
تكتب الدالة <code>write()‎</code> بيانات ثنائية على منفذ الاتصال التسلسلي.
يكتب التابع بيانات ثنائية على منفذ الاتصال التسلسلي.
==<code>[[Arduino/serial/serialevent|serialEvent()‎]]</code>==
==<code>[[Arduino/serial/serialevent|serialEvent()‎]]</code>==
تُستدعَى الدالة <code>serialEvent()‎</code> عندما يكون هنالك بيانات متاحة للقراءة عبر منفذ الاتصال التسلسلي.
يُستدعَى التابع عندما يكون هنالك بيانات متاحة للقراءة عبر منفذ الاتصال التسلسلي.
==انظر أيضًا==
==انظر أيضًا==
* [[Arduino/stream|واجهة الاتصال عبر المجاري.]]
* [[Arduino/stream|واجهة الاتصال عبر المجاري.]]
سطر 64: سطر 64:
*[https://www.arduino.cc/reference/en/language/functions/communication/serial/ صفحة Serial في توثيق أردوينو الرسمي.]
*[https://www.arduino.cc/reference/en/language/functions/communication/serial/ صفحة Serial في توثيق أردوينو الرسمي.]
[[تصنيف: Arduino]]
[[تصنيف: Arduino]]
[[تصنيف: Arduino Class]]
[[تصنيف: Arduino Library]]
[[تصنيف: Arduino Communication]]
[[تصنيف: Arduino Communication]]
[[تصنيف: Arduino Serial]]
[[تصنيف: Arduino Serial]]

المراجعة الحالية بتاريخ 20:37، 6 نوفمبر 2018

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

مصادر