OHMFORGEأوم فورج · LEARN · BUILD
التدريب/البرمجة والتحكم بـ Arduino
35 دقيقة

PWM والتوقيت بدون حجب البرنامج

استخدم PWM للتحكم النسبي في LED أو Driver، وتعلم الفرق بين delay() والتوقيت باستخدام millis() لبناء برامج تستجيب لأكثر من مهمة.

STRUCTURED LESSON

محتوى الدرس

اقرأ الوحدات بالترتيب، ثم اختبر فهمك قبل إكمال الدرس.

01مقدمة

ما الذي يفعله PWM؟

PWM لا يغيّر جهد HIGH نفسه؛ بل يغيّر نسبة الزمن التي يكون فيها الخرج HIGH داخل كل دورة. هذه النسبة تسمى Duty Cycle.

02الفكرة

analogWrite يعتمد على اللوحة

في كثير من لوحات Arduino التقليدية تستخدم analogWrite لتوليد PWM على أطراف محددة، لكن الأرجل والدقة والتردد تختلف بين العائلات. راجع توثيق اللوحة بدل افتراض سلوك واحد.

03الفكرة

لماذا delay() تحجب البرنامج؟

أثناء delay() يتوقف المسار الرئيسي عن تنفيذ بقية المنطق. في برنامج بسيط قد يكون ذلك مقبولًا، لكنه يسبب بطئًا في الاستجابة عندما تحتاج قراءة زر أو حساس بالتوازي.

04خطوات عملية

توقيت باستخدام millis()

احفظ زمن آخر حدث، واقرأ millis() دوريًا، ونفذ المهمة عندما يتجاوز الفرق الفترة المطلوبة. بهذه الطريقة تستمر loop في معالجة بقية المهام.

KNOWLEDGE CHECK

تحقق سريع من فهمك

سؤال واحد

ما الميزة الأساسية لاستخدام millis() بدل delay() في مهام دورية متعددة؟