
جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-23 12:53



ما هو PWM؟
PWM STANDS FOR PULSE WIDTH MODULATION هي تقنية يتم من خلالها تغيير عرض النبض.
لفهم هذا المفهوم بوضوح ، ضع في اعتبارك نبضة الساعة أو أي إشارة موجة مربعة لها دورة عمل بنسبة 50 ٪ مما يعني أن فترة Ton و Toff هي نفسها ، والمدة الإجمالية التي كانت الإشارة فيها عالية والمدة التي كانت فيها الإشارة منخفضة تسمى المجموع فترة زمنية.
بالنسبة للصورة الموضحة أعلاه ، فإن دورة عمل هذه الموجة تبلغ 50٪
دورة العمل = (وقت التشغيل / الوقت الإجمالي) * 100
وقت التشغيل - الوقت الذي كانت فيه الإشارة عالية
وقت الإيقاف - الوقت الذي كانت فيه الإشارة منخفضة إجمالي الوقت - الفترة الزمنية الإجمالية للنبض (كل من وقت التشغيل والإيقاف)
الخطوة 1: اختيار متحكم دقيق

اختيار متحكم مناسب للمشروع هذا هو الجزء الأساسي من المشروع يمكن توليد إشارات PWM في ميكروكنترولر مع قنوات PWM (سجلات CCP) بالنسبة لهذا المشروع ، أخطط للالتزام بـ pic16f877. يمكنك تنزيل رابط ورقة البيانات الموضح أدناه
انقر هنا ورقة بيانات PIC16F877a
وحدة CCP هي المسؤولة عن إنتاج إشارة PWM. يتم مضاعفة CCP1 و CCP2 مع PORTC. PORTC هو منفذ ثنائي الاتجاه بعرض 8 بت. سجل اتجاه البيانات المقابل هو TRISC. سيؤدي ضبط بت TRISC (= 1) إلى أخذ دبوس PORTC المقابل كمدخل. سيؤدي مسح بت TRISC (= 0) إلى جعل دبوس PORTC المقابل ناتجًا.
TRISC = 0 ؛ // سيؤدي مسح هذا البت إلى جعل PORTC كإخراج
الخطوة 2: تكوين وحدة CCP


CCP - وحدات الالتقاط / المقارنة / PWM
تحتوي كل وحدة Capture / Compare / PWM (CCP) على سجل 16 بت يمكن أن يعمل كالتالي:
• سجل التقاط 16 بت
• 16 بت قارن التسجيل
• سجل دورة العمل الرئيسي / التابع لـ PWM
قم بتكوين تسجيل CCP1CON في وضع PWM
تسجيل الوصف
CCPxCON يستخدم هذا السجل لتكوين وحدة CCP لتشغيل الالتقاط / المقارنة / PWM.
CCPRxL يحتوي هذا السجل على بتات 8-Msb من PWM ، وستكون بتات 2 المنخفضة جزءًا من سجل CCPxCON.
عداد التشغيل الحر TMR2 والذي سيتم مقارنته بـ CCPR1L و PR2 لتوليد خرج PWM.
الآن سأستخدم ثنائي لتمثيل البتات لتكوين سجل CCP1CON.
إحالة الصورة أعلاه.
CCP1CON = 0b00001111 ؛
يمكنك أيضًا تنسيق سداسي عشري
CCP1CON = 0x0F ؛ // تكوين سجل CCP1CON لوضع PWM
الخطوة 3: تكوين وحدة Timer2 Module (تسجيل TMR2)

Timer2 هو مؤقت 8 بت مع مقياس مسبق و postcaler. يمكن استخدامه كقاعدة زمنية PWM لوضع PWM لوحدة (وحدات) CCP. سجل TMR2 قابل للقراءة وقابل للكتابة ويتم مسحه على أي جهاز يتم إعادة تعيينه.
يظهر سجل T2CON
سيعدل المقياس المسبق والمقياس اللاحق تردد الخرج لموجة PWM المتولدة.
التردد = تردد الساعة / (4 * المقياس المسبق * (PR2-TMR2) * المقياس اللاحق * العدد)
حيث توت = 1 / تردد
T2CON = 0b00000100 ؛
سيؤدي ذلك إلى توليد 2.5 كيلو هرتز @ 1 ميجا هرتز أو 100 كيلو هرتز @ 4 ميجا هرتز (عمليًا هناك قيود على تردد PWM هذا ، قم بإحالة ورقة بيانات معينة لمزيد من التفاصيل)
تمثيل عرافة
T2CON = 0x04 ؛ // تمكين T2CON بدون تكوين مقياس مسبق ومقياس postcaler
الخطوة 4: تكوين PR2 (تسجيل الفترة Timer2)
تحتوي الوحدة النمطية Timer2 على سجل فترة 8 بت ، PR2. يزيد Timer2 من 00h حتى يطابق PR2 ثم يعيد تعيينه إلى 00h في دورة الزيادة التالية. PR2 هو سجل مقروء وقابل للكتابة. يتم تهيئة سجل PR2 إلى FFh عند إعادة التعيين.
سيسمح تحديد النطاق المناسب لـ PR2 باستخدامه لتغيير دورة العمل لموجة PWM المتولدة
PR2 = 100 ؛ // اضبط وقت الدورة على 100 لتغيير دورة العمل من 0-100
من أجل البساطة ، أستخدم PR2 = 100 بجعل CCPR1L = 80 ؛ يمكن تحقيق 80٪ من دورة العمل.
الخطوة 5: تكوين وحدة CCPR1l
حيث يمكن تكوين PR2 = 100 CCPR1l في أي مكان بين 0-100 للحصول على دورة العمل المطلوبة.
الخطوة 6: اكتب الرسم على MPLAB X IDE ، يتم إعطاء الرمز أدناه

#يشمل
تأخير باطل (int a) // وظيفة لتوليد تأخير {
لـ (int i = 0 ؛ i <a ؛ i ++)
{
لـ (int j = 0 ؛ j <144 ؛ j ++) ؛
}
}
باطل رئيسي ()
{TRISC = 0 ؛ // سيؤدي مسح هذا البت إلى جعل PORTC كإخراج.
CCP1CON = 0x0F ؛ // تكوين سجل CCP1CON لوضع PWM
T2CON = 0x04 ؛ // تمكين T2CON بدون تكوين مقياس مسبق ومقياس postcaler.
PR2 = 100 ؛ // اضبط وقت الدورة على 100 لتغيير دورة العمل من 0-100
بينما (1) {
CCPR1L = 75 ؛ // ولدت 75٪ تأخير دورة العمل (1) ؛
}
}
لقد أجريت أيضًا تعديلًا بسيطًا على الكود بحيث يكون تواتر موجة PWM المتولدة
تمت محاكاة هذا الكود في بروتينات وتظهر موجة PWM الناتجة أدناه لتحميل هذا على لوحات تطوير الموافقة المسبقة عن علم ، استخدم #include مع بتات التكوين المناسبة.
شكرا لك
موصى به:
مبرمج بسيط 3 مقاومات الموافقة المسبقة عن علم: 3 خطوات

مبرمج بسيط 3 مقاومات PIC: تلعب وحدات التحكم الدقيقة دورًا مهمًا للغاية في الإلكترونيات ، حيث إنها قادرة على أداء المهام في الأتمتة والتحكم ومعالجة الصور ، من بين أمور أخرى. استخدامها هائل. هناك عائلات مختلفة من وحدات التحكم الدقيقة ، واحدة منها هي Micro
HackerBox 0040: الموافقة المسبقة عن علم من المصير: 9 خطوات

HackerBox 0040: الموافقة المسبقة عن علم من المصير: تحية للقراصنة HackerBox حول العالم. قام HackerBox 0040 بتجربة المتحكمات الدقيقة PIC واللوح وشاشات LCD و GPS والمزيد. يحتوي هذا Instructable على معلومات لبدء استخدام HackerBox 0040 ، والتي يمكن أن تكون
وحدات الموافقة المسبقة عن علم و AVR من رقائق SMD المناسبة للتزلج: 7 خطوات

وحدات PIC & AVR من رقائق SMD المناسبة للتزلج: من وقت لآخر ، ستصادف بعض وحدات التحكم الدقيقة في نموذج مثبت على السطح (SMD) ، والذي ترغب في تجربته على لوح التجارب! قد تحاول جاهدًا الحصول على إصدار DIL من تلك الشريحة ، وفي بعض الأحيان لن يكون متاحًا. أحدث v
الذراع الروبوتية القائمة على متحكم الموافقة المسبقة عن علم: 6 خطوات (بالصور)

الذراع الروبوتية القائمة على وحدة التحكم الدقيقة PIC: من خط تجميع صناعات تصنيع السيارات إلى روبوتات الجراحة عن بعد في الفضاء ، توجد الأسلحة الآلية في كل مكان. تشبه آليات هذه الروبوتات الإنسان الذي يمكن برمجته لوظيفة مماثلة ويزيد
كيف تصنع مبرمج الموافقة المسبقة عن علم - PicKit 2 "استنساخ": 4 خطوات (بالصور)

كيف تصنع مبرمج الموافقة المسبقة عن علم - PicKit 2 'clone': مرحبًا! هذا موجز Instructable حول صنع مبرمج PIC يعمل كمبرمج PicKit 2. لقد صنعت هذا لأنه أرخص بكثير من شراء PicKit الأصلي ولأن Microchip ، مصنعي PIC microcontrollers ومبرمج PicKit ، pr