با عرض سلام خدمت دوستان
من چندوقتی روی این موضوع کار کردم از طریق برنامه نویسی که نتونستم یعنی اینکه نتونستم از طریق برنامه نویسی روی همه ی پایه های میکرو موج pwm رو درست کنم البته یه چیز هایی درست کردم اما با pwm خیلی تفاوت داشت چون فرکانس تغییر می کرد در حالی که نباید تغییر کنه به خاطر همین ایده ای به سرم زد تا یه جوری فرکانس رو ثابت کنم برای همین اومدم یه پالس مثلثی درست کردم با فرکانس ثابت و اون رو دادم به adc میکرو و بعد هم مدام میام عدد رو از adc می خونی و بسته به اون که چه عددی از adc می گیری موجت رو طراحی می کنی
در اصل اگه به شکل پایین توجه کنید متوجه میشید اون خط افقی روی موج مثلثی رو نگاه کنید بهش حالا فرض کنید مثلا اون خط دقیق در وسط موج مثلثی باشه در اصل مثلا adc میکرو به ما برای ماکزیمم قله ی موج مثلثی عدد 100 رو بده البته فرض کنید برای اون خط افقی مثلا 50 رو بده حالا هرجایی که مقدار adc گرفته شده بیشتر از 50 شد میاییم یکی از پورتهای میکرو رو به دلخواه یک می کنیم و وقتی که دوباره مقدار adc کمتر یا مساوی 50 شد اون پورت رو صفر می کنیم یا اینکه کلا این ها رو برعکس کنیم که شکل سومی درست میشه حالا می تونیم با چند تا دستور if then ساده مقدار گرفته شد از adc روی همه یپورت های میکرو موج pwm رو درست کنیم مثلا اگه شما می خواهی دیوتی سایکلت مثلا بشه 20 درصد اون خط افقی رو میاریم پاییتر و شرطی که میزاریم برای میکرو رو عدد خونده شده از adc رو میزاریم روی مثلا 20 که اگر بیشتر از 20 شد مثلا پورت portb.1 رو یک کن و اگر کمتر یا مساوی شد دوباره صفرش کن
به نظرتون چه جوریه عملی هست من توی پروتئوس که جواب گرفتم کلا هرچی نظر داردی بدید ... :rolleyes:

من چندوقتی روی این موضوع کار کردم از طریق برنامه نویسی که نتونستم یعنی اینکه نتونستم از طریق برنامه نویسی روی همه ی پایه های میکرو موج pwm رو درست کنم البته یه چیز هایی درست کردم اما با pwm خیلی تفاوت داشت چون فرکانس تغییر می کرد در حالی که نباید تغییر کنه به خاطر همین ایده ای به سرم زد تا یه جوری فرکانس رو ثابت کنم برای همین اومدم یه پالس مثلثی درست کردم با فرکانس ثابت و اون رو دادم به adc میکرو و بعد هم مدام میام عدد رو از adc می خونی و بسته به اون که چه عددی از adc می گیری موجت رو طراحی می کنی
در اصل اگه به شکل پایین توجه کنید متوجه میشید اون خط افقی روی موج مثلثی رو نگاه کنید بهش حالا فرض کنید مثلا اون خط دقیق در وسط موج مثلثی باشه در اصل مثلا adc میکرو به ما برای ماکزیمم قله ی موج مثلثی عدد 100 رو بده البته فرض کنید برای اون خط افقی مثلا 50 رو بده حالا هرجایی که مقدار adc گرفته شده بیشتر از 50 شد میاییم یکی از پورتهای میکرو رو به دلخواه یک می کنیم و وقتی که دوباره مقدار adc کمتر یا مساوی 50 شد اون پورت رو صفر می کنیم یا اینکه کلا این ها رو برعکس کنیم که شکل سومی درست میشه حالا می تونیم با چند تا دستور if then ساده مقدار گرفته شد از adc روی همه یپورت های میکرو موج pwm رو درست کنیم مثلا اگه شما می خواهی دیوتی سایکلت مثلا بشه 20 درصد اون خط افقی رو میاریم پاییتر و شرطی که میزاریم برای میکرو رو عدد خونده شده از adc رو میزاریم روی مثلا 20 که اگر بیشتر از 20 شد مثلا پورت portb.1 رو یک کن و اگر کمتر یا مساوی شد دوباره صفرش کن
به نظرتون چه جوریه عملی هست من توی پروتئوس که جواب گرفتم کلا هرچی نظر داردی بدید ... :rolleyes:











دیدگاه