PWM والتوقيت بدون حجب البرنامج
استخدم PWM للتحكم النسبي في LED أو Driver، وتعلم الفرق بين delay() والتوقيت باستخدام millis() لبناء برامج تستجيب لأكثر من مهمة.
محتوى الدرس
اقرأ الوحدات بالترتيب، ثم اختبر فهمك قبل إكمال الدرس.
ما الذي يفعله PWM؟
PWM لا يغيّر جهد HIGH نفسه؛ بل يغيّر نسبة الزمن التي يكون فيها الخرج HIGH داخل كل دورة. هذه النسبة تسمى Duty Cycle.
analogWrite يعتمد على اللوحة
في كثير من لوحات Arduino التقليدية تستخدم analogWrite لتوليد PWM على أطراف محددة، لكن الأرجل والدقة والتردد تختلف بين العائلات. راجع توثيق اللوحة بدل افتراض سلوك واحد.
لماذا delay() تحجب البرنامج؟
أثناء delay() يتوقف المسار الرئيسي عن تنفيذ بقية المنطق. في برنامج بسيط قد يكون ذلك مقبولًا، لكنه يسبب بطئًا في الاستجابة عندما تحتاج قراءة زر أو حساس بالتوازي.
توقيت باستخدام millis()
احفظ زمن آخر حدث، واقرأ millis() دوريًا، ونفذ المهمة عندما يتجاوز الفرق الفترة المطلوبة. بهذه الطريقة تستمر loop في معالجة بقية المهام.
تحقق سريع من فهمك
ما الميزة الأساسية لاستخدام millis() بدل delay() في مهام دورية متعددة؟