تعد أجهزة ضبط الوقت ميزة أساسية في متحكمها ، مما يتيح لك أداء المهام على فترات زمنية دقيقة دون الاعتماد على التأخير. يحتوي Arduino UNO على ثلاثة أجهزة مضمنة للأجهزة (Timer0 و Timer1 و Timer2) التي يمكن تكوينها لمختلف وظائف مثل إنشاء إشارات PWM أو أحداث التوقيت أو مهام الجدولة. سوف يرشدك هذا البرنامج التعليمي من خلال فهم واستخدام أجهزة توقيت Arduino.
ماذا ستحتاج
- Arduino Uno (أو لوحة متوافقة)
- مقاوم LED و 220 أوم (للأمثلة المستندة إلى التوقيت)
- الأسلاك الأسلاك والبلوز
- Arduino IDE مثبتة على جهاز الكمبيوتر الخاص بك
الخطوة 1: فهم أجهزة توقيت Arduino
يحتوي متحكم Arduino Uno's Atmega328p على ثلاثة أجهزة أجهزة:
مؤقت | قرار بت | الاستخدام الأساسي |
---|---|---|
Timer0 | 8 بت | millis () ، micros () ، pwm على المسامير 5 ، 6 |
Timer1 | 16 بت | مكتبة المؤازرة ، PWM على دبابيس 9 ، 10 |
Timer2 | 8 بت | وظيفة () وظيفة ، PWM على دبابيس 3 ، 11 |
الميزات الرئيسية للوقت
- يمكن لتوقيتات توليد إشارات PWM.
- يمكن أن تؤدي أجهزة ضبط الوقت إلى الزراعة.
- يتم استخدام أجهزة ضبط الوقت داخليًا بواسطة وظائف Arduino مثل
delay()
وmillis()
.
الخطوة 2: إنشاء إشارة PWM بسيطة
تُستخدم إشارات PWM (تعديل عرض النبض) بشكل شائع للتحكم في سطوع LED أو سرعة المحرك. دعنا نستخدم Timer0 لإنشاء إشارة PWM.
رمز المثال: التحكم في سطوع LED مع PWM
الخطوة 3: استخدام أجهزة ضبط الوقت مع المقاطعات
يمكنك تكوين أجهزة ضبط الوقت لتشغيل المقاطعات على فترات منتظمة. على سبيل المثال ، يمكن إعداد Timer1 لتبديل LED كل ثانية.
Example Code: Timer1 Interrupt
Step 4: Measuring Time with Timers
يمكنك استخدام أجهزة ضبط الوقت لقياس فترات دقيقة. Timer2 مناسب لفترات صغيرة لأنه مؤقت 8 بت.
رمز مثال: Timer2 لقياس الوقت
الخطوة 5: استخدام مكتبات المؤقت
لتبسيط العمل مع أجهزة ضبط الوقت ، يمكنك استخدام مكتبات مثل توقيت أو توقيت.
باستخدام مكتبة Timerone
- تثبيت مكتبة Timerone في Arduino IDE.
- استخدمه لجدولة المهام بسهولة:
تطبيقات أجهزة ضبط الوقت
- توليد إشارات PWM دقيقة للتحكم في المحرك
- مهام الجدولة دون حظر الرمز (على سبيل المثال ، تعدد المهام)
- قياس الفواصل الزمنية للأحداث
- إنشاء تأخير دقيق دون استخدام
delay()
- إدارة الإجراءات الدورية مثل وميض المصابيح أو إرسال البيانات
استكشاف الأخطاء وإصلاحها
- صراعات الموقت: تأكد من عدم استخدام الموقت نفسه لوظائف متعددة (مثل مكتبة المؤازرة و PWM).
-
المقاطعات لا تعمل: تحقق من تمكين المقاطعات مع
interrupts()
. - سلوك غير متوقع: تحقق من prescaler ومقارنة قيم المطابقة للتوقيت الصحيح.
خاتمة
لقد تعلمت كيفية استخدام أجهزة توقيت Arduino لتوليد إشارات PWM ، والتعامل مع المقاطعات ، وقياس الوقت. يتقن أجهزة ضبط الوقت ميزات قوية لإنشاء مشاريع Arduino فعالة ودقيقة. قم بتجربة تكوينات مختلفة وتطبيق أجهزة ضبط الوقت لتحسين مشروعك التالي!