PWM - Pulse Width Modulation | CCP Modules | كورس برمجة ميكروكنترولر | تعديل عرض النبضة
HTML-код
- Опубликовано: 10 сен 2024
- CCP Module - PWM Mode (Demo)
Embedded Systems Tutorials - Microchip PIC Microcontrollers - MPLAB X
[[ Tutorial #27 ]]
You can read this exact same tutorial as a written article (in English) on my website.
Through this link down below
deepbluembedde...
You can also check for downloadable content (code + schematics) herein in the description or on the website
deepbluembedde...
===================================
In this tutorial, you'll learn the fundamental of PWM signal generation with PIC Microcontrollers. Using Embedded-C programming language. You'll learn how to perform the required calculations for PWM frequency/duty cycle/resolution. We'll be using these concepts in further LABs to control the brightness of LEDs and the Speed of DC motors. So stick with me and stay tuned!
===================================
You can also follow this course (with extra info) on my website (In English)
deepbluembedde...
You can follow this course playlist on RUclips (In Arabic)
• Embedded Systems Cours...
===================================
For More Information
Visit my website @ DeepBlueMbedded.com
[[ And / Or ]]
Follow me on socials
LinkedIn / khaled-magdy-
Twitter / ii_deepblue_ii
FaceBook / khaled.elrawy.359
===================================
If you've any questions, feel free to leave a comment down below.
I will always be glad to respond to your comments as soon as possible.
------------
Good Luck ^^
And don't forget to SUBSCRIBE for more tutorials from DeepBlue!
If you find this content useful .. Then Share It With Your Network!
#Embedded_Systems
#PIC_Microcontrollers
#PWM
جزيت خيرا على المحتوى الرائع .. استفدت جدا .. الدراسة باللغة الأم غاية في المتعة
شكرا كتير لمجهودك الرائع
احسنت اخي العزيز وجدا اشكرك على الفائدة
الله يجزيك الخير
good job
جزيت خيرا على المحتوى الرائع .. استفدت جدا .. الدراسة باللغة الأم غاية في المتعة
سؤال لو تكرمت :
طالما أن الـ Period Register هو 8 Bit
والـ Duty Cycle Register هو 10 Bit
عملياً ال Timer2 سيحصل له Overflow ومن ثم Reset وبالتالي سيرسل الـ Comparator إشارات أخرى قبل أن يمتلئ عداد الـ Duty cycle
مع العلم أن الـ period هي دائماً أطول من الـ Duty Cycle .. ولكن حجم الـ Registers بالعكس !
كلامك صحيح لكن هذا لا يحدث. لان هناك 2 بت اهاردوير ضافية تضاف الی البيريود ف يصبح ايضا 10 بت .. يمكنك الرجوع الی الداتاشيت
For the detailed block diagram
و اعتقد هتاخد بالك منها اول م تبص فيه بتمعن 😀👌
👍👍👍
It uses a capacitor of how many microfarads?
احسنت
بحثت في الداتا شيت وفي الموقع ومالقيت اجابة مقنعة... ليش عملوا الccp عشرة بت في التايم ديوتي؟؟ ايش الفايدة؟؟ ونفس السؤال للTMR برضو؟؟
بيعطيك resolution اعلی 😀
فكرت زيك زمان و كان دا التفسير الوحيد انو بيعطی دقة احسن اعلی من لو كان 8 بت .. شوف حلقة من esm اسمها pwm resolution هتعرف قصدی ايه
@@DeepBlueMbedded اوك تمام... يعطيك العافية ^_^
سؤال بس دلوقتى لو انا عايز استخدم ال ccp1 وccp2 زى ما حضرتك قولت ع الموقع على نفس التردد هيبقى كده تمام ولا هيبقى فى مشكله لانهم بيستخدمو نفس التايمر ؟؟
بالضبط الاتنين بيستخدموا نفس التايمر ف كدة التايم بيز واحدة و بالتالى التردد هيبقا واحد للاتنين .. لكن طبعا تقدر تخلى كل واحدة فيهم تشتغل ب ديوتى سايكل مختلف زى ما تحب لان دا بيتم التحكم فيه باستخدام الريجيستر الخاص بموديول السى سى بى و دا فى عندك منه 2 على الميكروكنترولر
ممكن واحدة 50% و التانية 70% مفيش مشاكل لكن ترددهم هيكون واحد طبعا
مرحبا..ممكن تفهمني شنو قصدك بإنو الwaveform تبع الpwm تعمل capture ؟ شنو تقصد بكلمة capture هنا؟؟🖤وشكراً
انا قولت انها بتعمل كابتشر ؟ 😀
معتقدش انی قولت كدة لا .. احنا بنكتب قيمة فی الccpr دی بتحدد الdutycycle
و قيمة بنكتبها فالpr2 و دی بتحدد الperiod يعنی بتتحكم فی التردد الخاص بالpwm
عشان يتم تحميل القيمة الجديدة ال حضرتك كتبتيها فالccpr register
لازم تكون خلصت الpwm cycle الحالية
فی نهاية الويف بيتم تحميل القيمة الحديثة للduty cycle
دا عن طريق شیء اسمه
Double buffering
مش عارف انا كدة جاوبت سؤالك و لا لا 😀
شكراً 🖤 كان الفرق اختلاف اللهجات ولهذا ما فهمت شنو كنت تقصد بالفيديو🖤 وعندي ملاحظة صغيرة على فيديو comare mode ..في الccp1 يحدث reset للtimer1 اما في الccp2 يحدث reset للtimer1 وتشغيل للa/d conversion يعني اقصد يوجد فرق بين ccp1 و ccp2 بcompare mode 🖤🖤
اها تمام .. و فعلا دا صحيح يوجد اختلاف بسيط كما هو موضح بالداتاشيت 👌
What is "uint16_t" that you use to define the "DC" varaible?????
unsigned int 16 bit .. 2-Byte variable (16-Bit wide) can store a value ranging from 0 up to 65535
The DC is a 10-Bit value that's why i used uint16_t for it. Note also: that stdint.h must be included.
@@DeepBlueMbedded Thanks alot
مرحبا ..ممكن اسألك سؤال! 🖤 هذا السؤال كيف احله ؟calculate the PWM resolution when PR2=AFh? علماً انه بنشتغل على PIC16F877A بس ما اعرف هاي المعلومة تفيد بالحل ام لا ..المهم كيف احله ؟😥
سؤال حلو علفكرة 😀
هی قيمة PR2 فقط مش كافية لتحديد الresolution احنا لسا عايزين نعرف كمان تردد الpwm signal و تردد الfosc و قيمة الPrescaler for timer2
لو وقتك يسمح شوفی الحلقة دی
ruclips.net/video/Q2oVp05qdgg/видео.html
و انا متاكد ان بعدها هتعرفی ازای تحلی السؤال و شوية معلومات زيادة كدة كمان 😀👌
DeepBlue صحيح مش كافية بس دي اسئلة الاستاذ بتاعنا 🙂💔 هسا راح اشوف الحلقة وان شاءالله اعرف احله ..شكراً😥
انا ب أحييه علی اسئلته دی 😀✋
عشان الموضوع مهم جدا و الله
و لما توصلی لدرس التحكم فالسيرفو موتور هتلاقينی بفكركم بحلقة الResolution دی
و اهمية حسابها و التحكم فيها عشان نعرف نتحكم بدقة فی الموتور بتاعنا.
كذلك فی حلقة الPWM To DAC conversion
كان لازم بردو نحدد الريزولوشن و تطبيقات غيرهم كتيير جدا بيكون ضروری الكلام دا 😀
DeepBlue بتحييه🌚🌚🌚 انا عارفة مهم بس السؤال ما ينحل بدون بقية المعلومات 😭
من اين يأت bit الاول و الثاني في duty cycle
لو قصدك ك هاردوير .. ف هما عبارة عن 2 لاتش موجودين مع الريجستر الاساسى ال هوا 8 بت عشان القيمة فالاخر تكون 10بت زى ما انا وضحت فالدرس دا
اما لو قصدك ازاى نحسبها و نكتبها فالكود ك سوفتوير , ف دا هتلاقيه فالدرس ال بعد دا مباشرة فى قائمة التشغيل
و لو لسا فى حاجة مش واضحة انا معاك ان شاء الله ^^
مفيش طريقه اخليه يطلع pwm اكتر من 2 pins
في ايوا .. فی واحدة من حلقات ESM الجايين هشرح الموضوع دا و ازای نعملها و حساباتها و ايه الLimits بتاعتها
@@DeepBlueMbedded ياريت والله
جزاك الله خيرا