تشغيل مهمتين في الوقت نفسه
شغّل الوميض واقرأ زرًا في الوقت نفسه.
تشغيل مهمتين في الوقت نفسه درس مجاني في Arduino & IoT Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Arduino & IoT Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Arduino & IoT Academy 4 دروس في المجموع.
حلم تعدد المهام
تنفّذ الأجهزة الحقيقية مهام متعددة في الوقت نفسه، مثل وميض مصباح مع مراقبة زر. ومع التوقيت غير الحاجب تستطيع لوحتك أخيرًا تنفيذ المهمتين معًا.
لكل مهمة مؤقتها
الحيلة هي تخصيص مؤقت لكل مهمة. امنح الوميض قيمة previousMillis وفاصلًا زمنيًا خاصين به، منفصلين عن أي مهام أخرى تريد تشغيلها.
تتبّع الوقت بشكل منفصل
احتفظ بقيمة previousMillis مخصصة لمصباح LED، حتى لا يتداخل جدولها مع المهام المؤقتة الأخرى في الحلقة نفسها.
unsigned long ledPrevious = 0;
const long ledInterval = 500;كتلة الوميض
أولًا، تفحص كتلة الوميض مؤقتها الخاص. وعند مرور 500 مللي ثانية، تبدّل حالة مصباح LED وتعيد ضبط المؤقت، ثم ينتقل التنفيذ إلى ما بعد ذلك.
if (millis() - ledPrevious >= ledInterval) {
ledPrevious = millis();
}اقرأ الزر في كل دورة
بعد كتلة الوميض مباشرة، تقوم بـقراءة الزر في كل دورة دون استثناء. وبما أن شيئًا لم يتجمّد، فلن تفوّت أي ضغطة.
int state = digitalRead(buttonPin);مهمتان وحلقة واحدة
تتولى الحلقة نفسها الآن المهمتين: توقّت الوميض وتفحص الزر آلاف المرات في الثانية. لذلك تبدوان وكأنهما تعملان في الوقت نفسه.
أضف مهمة ثالثة
هل تريد المزيد؟ أضف مؤقتًا وكتلة أخرى، مثل قراءة مستشعر كل ثانيتين. ويمكن توسيع هذا النمط بسهولة ليشمل مهام كثيرة.
حافظ على سرعة الحلقة
القاعدة التي تجعل ذلك ممكنًا هي: لا تحجب التنفيذ أبدًا. اجعل كل جزء من الحلقة سريعًا، حتى تعود للعمل باستمرار وتخدم جميع المهام بعدل.
ليست معالجة متوازية حقيقية
لا تزال اللوحة تنفّذ شيئًا واحدًا في كل مرة، لكنها تفعل ذلك بسرعة كبيرة. وهذا ما يُسمّى تعدد المهام التعاوني، إذ تنفّذ كل مهمة جزءًا صغيرًا ثم تتيح المجال لغيرها.
تخلّص من delay الطويلة
تُفسد عملية delay طويلة واحدة في أي مكان هذا الإحساس بالتزامن، لأنها تجمّد جميع المهام. استبدل فترات التوقف بفحوصات millis لتحافظ على سلاسة التشغيل.
جوهر إنترنت الأشياء المستجيب
هذا الأسلوب القائم على آلة الحالات، أي إجراء فحوصات مؤقتة صغيرة كثيرة داخل حلقة واحدة، هو الطريقة الفعلية لبناء المستشعرات والشاشات والأجهزة المتصلة المستجيبة.
تحقّق سريع
كيف تستطيع حلقة واحدة تشغيل وإطفاء مصباح LED وقراءة زر في الوقت نفسه؟
مراجعة
جمعت مؤقتات متعددة في حلقة واحدة لتنفيذ مهام متعددة: تشغيل وإطفاء مصباح LED وقراءة زر معًا، دون delay حاجبة. وهذه هي المهارة الأساسية وراء أجهزة إنترنت الأشياء الحقيقية. 🚀
تعلم C++ مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «تشغيل مهمتين في الوقت نفسه» مجاني؟
نعم — نص درس «تشغيل مهمتين في الوقت نفسه» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Arduino & IoT Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Arduino & IoT Academy 4 دروس في المجموع.
ماذا ستتعلم في «تشغيل مهمتين في الوقت نفسه»؟
شغّل الوميض واقرأ زرًا في الوقت نفسه. تتمرن على Arduino & IoT Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Arduino & IoT Academy؟
لا تُشترط خبرة سابقة. Arduino & IoT Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «تشغيل مهمتين في الوقت نفسه»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Arduino & IoT Academy هذا؟
نعم. كل درس في Arduino & IoT Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- int وfloat وbool على Arduino
- لماذا تحجب delay() كل شيء
- الوميض دون delay باستخدام millis
- تشغيل مهمتين في الوقت نفسه