به نام خدا
ایجاد موج مربعی با میکروکنترلر
تو این پروژ قراره که با میکرو کنترلر atmega16 یه موج مربعی درست کنیم.
توجه : فرق نوسان ، موج ، پالس و… : چیزی که مقدارش هی تغییر کنه میگن نوسان ساره مثلا همتون شنیدین که میگن نوسان قیمت دلار و…
تا اونجایی که من میدونم موج و پالس تقریبا مثل هم هستن ؛ به نوسانی که یه سری ویژگی به خصوص داشته باشه میگن موج ، پالس و از این جور چیزا !!!
خودتون میتونید تو گوگل در مورد تقاوت اینا سرچ کنید. ^_^
خودم هم راسش رو بخواید زیاد در موردش نمیدونم. O_o
خوب بریم سر اصل مطلب : تو این برناهه ما میخوایم که با میکروکنترلر یه نوسانی از ولتاژ ایجاد کنیم که شکلش به صورت زیر باشه.
که سطح پایین ۰ ولت و سطح بالا ۵ ولت هستش.
توجه : اگه یک پایه میکرو غیر فعال باشد ولتاژ ۰ ولت ( یا صفر منطقی ) دارد و اگه همون پایه فعال شود ولتاژ ۵ ولت ( ۱ منطقی ) دارد.
لذا ما با صفر و یک کردن و ایجاد تاخیر زمانی مورد نظرمون این موج رو میسازیم.
این شبیه سازی تو پروتئوس هستش ؛ همون طور که توشکل مشخص کردم یه دوره یا تناوب از این موج رو مشاهده میکنید که کپی عکس بالایی هست.
اون LED هم سر کاری هستش(چون زمان صفر و یک شدن یا همون صفر و ۵ ولت شدن اونقدر کم هستش که از رو LED نمیشه متوجه شد.
البته وجودش هم بی دلیل نیست و خواستم تا تغییرات ولتاژ رو ببینید )اون فلشه(جهت) هم ولتاژ اون پایه میکرو رو نشون میده.
اینم از برنامش ، چیز خاصی نداره ، همش بازی با صفر و یک کردن و ایجاد تاخیر زمانی هستش.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <mega16.h> #include <delay.h> void main(void) { DDRC.0=1; PORTC.0=0; while (1) { PORTC.0=1; delay_ms(5); PORTC.0=0; delay_ms(5); PORTC.0=1; delay_ms(10); PORTC.0=0; delay_ms(5); PORTC.0=1; delay_ms(15); PORTC.0=0; delay_ms(5); PORTC.0=1; delay_ms(20); PORTC.0=0; delay_ms(5); }; } |
مهمان
خروجی پالسو باید چجوری ببینیم؟
و اینکه شول کامل شبیه سازی میسازید مثلا lcdبه چی وصله؟
مهمان
سلام اگه بخواهیم موج مربعی متناوب باشه چی؟ یعنی بین دو مقدار مساوی منفی و مثبت مثلا منفی 5 و مثبت 5 نوسان کنه
مهمان
سلام.اولا مرسی بابت سایت خوبتون.
میخواستم بدونم میشه به همین مدار یک ولوم وصل کرد که بشه سرعتش رو کم و زیاد کرد؟؟ اگر شدنی هست یک راهنمایی بفرمایید.
مهمان
با سلام و خسته نباشید
ببخشید بنده میخوام یک مدار تولید موج مربعی با فرکانس بالا طراحی کنم. فرکانس بالا منظور بین 10 تا 100 مگاهرتز هستش.
آیا بدون میکرو میتونم انجامش بدم؟
در غیر این صورت از چه میکرویی استفاده کنم؟
هزینه واسم اهیمت داره.
ممنون میشم اگر راهنمایی کنید.
نویسنده این مطلب
سلام – با میکرو های سری آرم بالای 100 میگ میتونی اینکارو بکنی – بدون میکرو هم میشه ولی من کار نکردم – اینو سرچ کن :
100MHz square wave generation
مهمان
سلام.
ممنون میشم این سوالو برام حل کنید.
1_طراحی یک فاصله سنج – با ارسال یک پالس و زمان سنجی تا
دریافت پالس انعکاس، فاصله را با دقت دھم متر اندازه گرفته توسط سه عدد
سون سگمنت نمایش دھید
مهمان
از سنسور التراسونیک استفاده کن
مهمان
سلام بر شما من یه مولد موج مربعی متقارن می خوام با میکرو شدنی هست ؟ برنامه اش چطوری
نویسنده این مطلب
سلام
از تایمر استفاده کن.
مهمان
سلام
این خوب هست که شکل موج ایجاد میشه ولی به نظرم نمیشه برای کلید زنی به خصوص در مدارهایی که دارای دو ماسفت هستند استفاده کرد و اون هم به دلیل استفاده از تابع delay هست. این تابع زیاد دقیق نیست. اما برای مصارف دیگه خوبه. اگر یه همچین شکل موجی می خواید پیشنهاد میشه نگاهی به برنامه ی تولید شکل موج سینوسی با AVR بندازید
مهمان
سلام داداش یه سوال دارم درگیرشم چند روزه

یه سوال داریم به این شکل
http://s8.picofile.com/file/8299152434/ax11.png
بعد کدشو نوشتیم اینجوری
http://cpp.sh/8p7ms
بعد شماتیکشو اینجوری کشیدیم
http://s9.picofile.com/file/8299152726/axxx.png
هر کاری میکنم اجرا نمیشه نمیدونم کجاشو اشتباه رفتم شنبه هم باید تحویل بدم اگه مشه یه کمکی کنی ممنون میشم
نویسنده این مطلب
سلام
پروژه نمونه برا بحث تولید موج گزاشتم تو سایت فک کنم.
این مطلب که با دیلای هستش و بدرد نمیخوره.
مهمان
سلام
پیداش نکرم با سرچ متاسفانه میشه لینکی چیزی لطفا
مهمان
سلام مهندس .من الان چند هفته درگیر تولید فرکانس ۱ تا ۵۰۰۰ هرتز هستم اما هر کاری میکنم نمیتونم.هر جایی هم که تو نت گشتم چیزی نبود که من بتونم ازش سر در بیارم .من الان در حد یه ساله با زبان سی آشنا شدم .اما واسم خیلی سخته درک کدهای این زبان برنامه نویسی .میدونم زبان سی زبان پایه ای هستش و یادگیریش یه پیشرفت بزرگه ولی چه کنم تو شهرستانی قرار دارم که فک نکنم کسی اصلا سراغ این آموزشها بره که بتونم حتی حضوری اونجا کلاس برم.در ضمن رشته بنده برق قدرته و بیشتر با زبان plc آشنایی دارم و در کل پایه الکترونیک بنده فقط تو برنامه نویسی ضعیفه.ممنون میشم یه چنتا راه حل بهم معرفی کنی که بتونم پیشرفت کنم .چون واقعا به برنامه نویسی علاقه دارم.
سرتو درد آوردم شرمنده.
نویسنده این مطلب
سلام
تنبلی خودتو پای دور بودن و شهرستان بودنو و … نزار لطفا ( البته ببخشید که این طور حرف میزنمااا )
الان به نت دسترسی داشته باشی هر کاری میتونی بکنی – هر چیزی میتونی یاد بگیری – هر آموزشی از هر جای دنیا میتونی دانلود کنی.
کلاس خوبه ولی تنها منبع یادگیری نیست که – همه که کلاس نرفتن!
مهمان
سلام مجدد .
حرف شما درسته مهندس ولی تو این دوره زمونه که همه چی به پول ربط پیدا کرده .ادم مجبوره بیش از حد توانش کار کنه تا بتونه زندگیشو به پیش ببره .منم برای اینکه بتونم زندگیو بگذرونم قید خیلی از کارا رو زدم .مثلا من تو زمینه ساخت و طراحی صنعتی که میشه همین رشته ساختو تولید تو مسابقات مقام اول استانی رو کسب کردم ،اما با کمال تاسف برای گذراندن خرج زندگی با اینکه همه از استان واسه ادامه مسابقات تو مرحله کشوری بهم زنگ میزدن مجبورم شدم کنار بکشم.و از از طرفی اینکه میبینم شما و دوستانتون تونستین با چینین قدرتی تو برنامه نویسی علنا جلوی همه این سایتای آموزش حرفی واسه گفتن داشته باشین خیلی خوشحالم .شاید باورتون نشه الگوی من واسه اینکه دوباره از اول این برنامه نویسی و یادگیری این پروژه هاتونو شروع کنم شما و دوستان نویسنده سایتتون بودن که انصافا بدون هیچ چشم داشتی دارین این مطالبو ادامه میدین .
در کل بنده به عنوان یکی از دنبال کننده های سایتتون واستون آرزوی موفقیت میکنم و امیدوارم اگه تو زندگی موانعی سر راهتون بود دلسرد نشین و با سرعت بیشتر به کارتون ادامه بدین .چون به این باور رسیدم دنیا دیگه بر پایه همین برنامه ها و کد ها قرار بچرخه و پیشرفت کنه.
موفق باشین و به همکاراتونم بگین که راهیو که دارین ادامه میدین آینده خوبی در پیش روتونه.
مهمان
سلام دوستان
سوال:میخوام روی یکی از پایه های میکروم دو نوع پالس یک به صفر و صفر به یک تولید کنم که هر حالت زمانی که بهش دستور میدم فعال بشه
برای مثال میخوام وقتی باتن۱ رو زدم پالس صفر به یک با عرض پالس ۵۰۰میلی ثانیه و هر زمان باتن دو رو زدم پالس یک به صفر با عرض پالس قبلی ایجاد بشه/
ممنون میشم راهنمایی بفرمایید
نویسنده این مطلب
سلام
خب با تایمر میتونی – با تابع تاخیر زمانی میتونی
آموزش اینا هم تو سایت هستش – قسمت “آموزش جامع Avr” تو سایت بسرچ
مهمان
سلام و خسته نباشید میخوام به کمک تایمر کانتر یه برنامه به زبان basic بنویسم که بتونه یه موج مربعی با فرکانس 10khz و D=40% تولید کنه
و قسمت بعدش میخوام موج مربعی باشه اما فرکانس وD قابل تنظیم باشه
ممنون میشم پاسخ بدید خیلی مهمه.
نویسنده این مطلب
سلام – بیسیک کار نکردم – 3 بار همین نظرو فرستادی چرا؟ سایت مشکل داره؟
مهمان
دوبار ارور داد سر آخر فرستادم اومد…
حالا به هر روی کسی رو نمیشناسید که بتونه با بیسیک بنویسه این برنامه رو؟اگه هم نتونستید با همون c بنویسید ممنون
نویسنده این مطلب
نمیشناسم – بیسیک چیه آخه – بیا سی کیف دنیا رو بکن – متاسفانه امکانش نیست
مهمان
چرا؟
نویسنده این مطلب
چی چرا؟
مهمان
سلام
یه پروژه دارم که در اون یه روش ارتباطی رو میخواد پیاده سازی کنه.
روش ارتباطی برای فرستادن داده ها از PWM استفاده میشود. به
این صورت که طول پالس در موج PWM نشان دهنده داده است.
اما نمیدونم چه جوری با pwm همچین موجی تولید کنم!!
نویسنده این مطلب
سلام – یه عکسی از نمونه فرمت دیتات میدی؟
مهمان
سلام
من یه پروژه دارم که یه روش ارتباطی رو میخواد پیاده سازی کنه.برای فرستادن داده از pwmاستفاده میکنه.به این صورت که طول پالس در موج pwm نشان دهنده داده است.
1. اینکه نمیدونم چه جوی همچین موجی تولید کنم!؟ با روش CTC باید انجام بدم؟؟
2.اینکه داده رو چه جوری بفهمم که چیه؟
مهمان
سلام و خیلی ممنون ازین پروژتون.
من میخواستم با میکرو یه پالس مربعی با فرکانس 200 هرتز تولید کنم به کمک کدویژن. اما رنج کلاکی که میشه در حالت پیش فرض داد از 1000 هرتز شروع میشه! نمیخوام کلاک سورس رو هم عوض کنم. راه حلش چیه؟ ممنون میشم کمکم کنید.
نویسنده این مطلب
سلام – یه 1-2 ساعت دیگه(شاید یکم بیشتر شاید کمتر) یه فایل قرار میدم اینجا
نویسنده این مطلب
خب شما باید از مد Ctc استفاده کنید که قابلیت تغییر فرکانس رو به راحتی به شما میده و در ضمن میکرو هم زیاد درگیر این کار نمیشه – فرمول محاسبه فرکانس به صورت شکل زیر هستش :

فرکانس میکرو رو اگه 16 میگ در نظر بگیریم – با تغییر مقدار OCR1A و N میتونی فرکانس های مختلفی ایجاد کنی. مقدار N میتونه 1-8-64-256-1024 باشه – مقدار OCR1A هم اگه اشتباه نکنم یه ریجستر 16 بیتی هستش لذا مقدارش میتونه بین 0 – تا 65535 باشه.
مهمان
سلام،ممنون بابت مطلبي كه گذاشتين،ميخواستم ببينم چجوري ميشه موج مربعي رو تبديل به مثلثي كرد يا اينكه كدي كه براي ايجاد موج مثلثي مينويسيم چيه؟
مهمان
سلام خدمت اساتید گرامی و محترم
من میخوام برنامه ای با مگا۸ بنویسم که فرکانسی را با سنسور اثرهال دریافت کنم(فرکانس از۱تا۳۰۰هرتز)وهمین فرکانس ۳/۴برابر تو خروجی داشته باشم :ooo:با کدویژن
در ضمن در حد مبتدی برنامه نویسی بلدم و کار با تایمر وکانتر نمیدونم :confused: ممنون میشم راهنمایی کنید یا برنامه ای را برای طراحی معرفی کنید
پیشاپیش از همکاریتون ممنون 😎
نویسنده این مطلب
سلام
اگه میتونی صبر کنی یه چند روز دیگه مطلب کامل کامل تایمر کانتر رو میزارم تو سایت
البته قبلش میتونی مطالب وبلاگ NOise.blog.ir رو بخوین که خوب و ساده توضیح داده
مهمان
سلام. ميخواستم ازتون بپرسم که به چند روش میشه با میکرو موج مربعی درست کنیم
نویسنده این مطلب
سلام
۱) delay
۲) timer
مهمان
slm aqa mehdi .besyar az shoma mocheram,che site khubi dari.omidvaram hamishe movafaq bashe.kheili komak kardi
نویسنده این مطلب
س..م

خ..ش
مهمان
سلام.من با یه مازول فرستنده گیرنده مادون قرمز پروژم رو اوکی کردم
اما الن میخوام خودم یه فررستنده گیرنده مادون قرمز طراحی کنم که تا5 متر هم جواب بده
لطفا اگه راهنماییم میکنین کامل بهم بگین چیکار باید کنم؟مرسی از سایت خوبتون.
مهمان
سلام راسیاتش برام چنتا سوال پیش اومده ممنون میشم جواب بدی



1. چرا این سایتا زدی!!
چون سایتای زیاد دیگه ای هم در این زمینه هست
2.چرا پروژه های avr را رایگان انجام میدی ؟
یک جور زکات علمه?
و در آخر اگه کسی بخواد در این سایت کمکت کنه استقبال میکنی یا نه؟
نویسنده این مطلب
سلام داش رامین
1) برای این که چزایی که بلدم و بلد میشم رو به اشتراک بزارم(تو یه چیز یاد بدی صد تا چیز قبلش خودت یاد میگیری…>>> شنیدی میگن در راه خدا بدی چند برابرش رو میگیری>>> ….)
2) من دانشجو هستم و دانشگاه وام میده و تقریبا دخل و خرج با هم میخونه>>لذا به پولش نیاز ندارم>>>اگه داشته باشم برا بچه ها ی دانشگاه آزاد و.. پروژ هاشون رو میبندم و پول میگیرم ازشون>>>>>
3) من از خدامه الان هم 3 نفریم >>خوشهال هم میشم.
نویسنده این مطلب
راستی سایت در همین زمینه هستش ولی برا یه پروژه چرت که من دیروز اتفاقی دیدم فلان قدر دارن پول میگیرن>>>در ضمن بیشتر پروژه های خوب به زبون بیسیک هستش که من اینا رو به زبون سی مینویسمشون