طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
یک کنترل کننده موتور با جریان خروجی 2 آمپر شامل کنترل جهت چرخش و سرعت می باشد. این مدار دارای نمایشگر LCD متنی بوده که سرعت و جهت چرخش موتور را نمایش می دهد.این پروژه قابلیت تشخیص نشتی گاز و کمی دود و افزایش دما را دارد. به این صورت که اگر نشتی رخ دهد با ارسال یک پیامک SMS برای شماره تعریف شده کاربر را مطلع می نماید. همچنین یک رله نیز فعال می شود که می تواند یه آژیر خطر را صدا درآورد.اندازه گیری ضربان قلب توسط تمامی انگشتان دست. نمایش بر روی سون سگمنت سه رقمی LED. ذخیره ضربان های اندازه گیری شده تا 250 مورد. نمایش اندازه گیری های ثبت شده توسط کلید های Up و downاین پروژه یک مدار گیرنده رادیویی 433 یا 315 مگاهرتز می باشد که قابلیت تعریف و ذخیره سازی انواع ریموت کنترل هایی از قبیل (ریموت دزدگیر ماشین، پارکینگ، بالابر و ...) را دارد. با نگه داشتن یک میکروسوئیچ و فشار دادن یکی از کلید های ریموت به مدت 1 ثانیه کد شناسایی ریموت مورد نظر آشکار و سپس در حافظه ذخیره می شود و می توان با چهار کلید ریموت (کلیدهای A,B,C,D) چهار رله را روشن و خاموش کرد.این پروژه در اصل یک ساعت زنگ دار می باشد که قابلیت برنامه ریزی آلارم صبحگاهی و تنظیم 5 برنامه یادآور را دارد. با تنظیم آلارم هر روز راس ساعت تنظیمی آلارم پخش می شود، همچنین با تنظیم یادآور ها در ساعت و تاریخ مشخص نیز آلارم پخش می شود. از امکانات آن می توان برای هر یادآور یک نام تعیین کرد (20 کاراکتر اسکی) با قابلیت تایپ حروف کوچک و بزرگ انگلیسی با کیبورد 3×4 و ...
کنترل سرعت و جهت موتور DC

MCP-9

کنترل سرعت و جهت موتور DC
پروژه نشت یاب گاز و کنترل با SMS

MCP-35

پروژه نشت یاب گاز و کنترل با SMS
پروژه اندازه گیری ضربان قلب با نوک انگشتان و avr

MCP-17

پروژه اندازه گیری ضربان قلب با نوک انگشتان و avr
پروژه ریموت کنترل 433-315 مگاهرتز 4 کاناله با قابلیت لرنینگ

MCP-27

پروژه ریموت کنترل 433-315 مگاهرتز 4 کاناله با قابلیت لرنینگ
پروژه آلارم صبحگاهی و یادآور با LCD گرافیکی و avr

MCP-7

پروژه آلارم صبحگاهی و یادآور با LCD گرافیکی و avr

برنامه نویسی پروتکل RC5 به زبان C با میکروکنترلر AVR (کدویژن)

www.picpars.com برنامه نویسی پروتکل RC5 به زبان C با میکروکنترلر AVR (کدویژن) 208

هدف از انجام این پروژه آشنایی با پروتکل RC5 و نحوی ارسال و دریافت اطلاعات می باشد. از آنجایی که توابع این پروتکل در کامپایلر BASCOM-AVR موجود می باشد کمتر کسی به اصول و کارکرد این پروتکل آشنایی دارد، همانطور که می‌دانید توابع این پروتکل به زبان C برای کامپایلر CodeVisionAVR V2.05.0 موجود نیست و تا همکون که من این مقاله را ارائه میکنم مطالب مفید و چشم گیری در مورد این پروتکل و همچنین نحوی برنامه نویسی آن به زبان سی برای کامپایلر کدویژن در سایت های فارسی موجود نبود. همین دلیل باعث شد که من در یک مقاله‌ای به صورت کامل به تشریح و برنامه نویسی این پروتکل بپردازم. در ادامه ما به نحوی برنامه نویسی، قسمت فرستنده و قسمت گیرنده خواهیم پرداخت.

از بخش سفارش طراحی هم اکنون درخواست خود را ثبت کنید
حل و تشریح کلیه تمرینات درس میکروکنترلر AVR
طراحی و ساخت مدارات دلخواه شما با میکروکنترلر AVR


عناوین موجود در این مقاله به شرح زیر می باشد:


فرستنده RC5

خصوصیات:

تعداد کل بیت ها 14 بیت (5 بیت آدرس و 7 بیت دستور)
استفاده از کدینگ منچستر
 فرکانس حامل 36 کیلوهرتز
 زمان ثابت هر بیت 1.778 میلی ثانیه (64 سیکل با فرکانس 36 کیلوهرتز)


مدولاسیون

پروتکل

برنامه نویسی فرستنده

شماتیک مدار فرستنده


گیرنده RC5

برنامه نویسی گیرنده

شماتیک گیرنده


تمامی عناوین بالا در این مقاله به طور کامل تشریح و سعی شده با زبانی ساده و شیوا بیان شود تا همه افراد بتوانند از آن بهره مند شوند.

لطفا با ارائه نظرات تان ما را در ارائه هرچه بهتر مطالب یاری بفرمائید. در ضمن سوالات خود را در قسمت نظرات همین بخش می توانید مطرح کنید.

همچنین این مقاله در مجله شماره 8 نویز منتشر شده است (http://www.eca.ir/?p=6)

با تشکر فراوان

  منبع: www.picpars.com

  لطفا مقالات، آموزش‌ها و پروژه های خود را به آدرس ایمیل ارتباطی ایمیل نمائید تا آن را با نام خودتان در سایت منتشر کنیم.




فایل های ضمیمه ( ورود - عضويت )

فایل شماره 114 | نسخه 1.0 | حجم 454 کیلوبایت | دانلود 5676 بار

منبع www.picpars.com  نویسنده: سید محسن قاسمیان

منبع www.picpars.com  پروتکل RC5 به زبان C با میکروکنترلر AVR (کدویژن)

منبع www.picpars.com  پسورد: www.picpars.com

به این مطلب امتیاز دهید

برچسب ها:
تاریخ ارسال پنجشنبه، 13 مرداد ماه، 1390    نویسندهنویسنده: مدیریت    نظرات 34 نظر    بازدید بازدید [ 24748 ]   پرینتنسخه چاپی
فایل پی دی اف فایل پی دی اف   ارسال به دوستان ارسال به دوستان   

پروژه ساعت دیواری دیجیتال به همراه تاریخ شمسی و دما با avr
کد پروژه: MCP-13
عنوان: پروژه ساعت دیواری دیجیتال به همراه تاریخ شمسی و دما با avr
میکروکنترلر: AVR ==> زبان سی C (کدویژن)
قیمت: به جزئیات پروژه مراجعه نمایید
جزئیات سفارش خرید
ساعت دیواری دیجتال با قابلیت نمایش ساعت و دقیقه، دمای اتاق، تاریخ شمسی، روز هفته، زدن تک بوق وقتی که زمان یک ساعت جلو می رود، تنظیم ساعت و دما تنها با 2 کلید. ابعاد ساعت 33*27 سانتی متر می باشد.
پروژه فاصله سنج و عمق سنج آلتراسونیک با AVR
کد پروژه: MCP-33
عنوان: پروژه فاصله سنج و عمق سنج آلتراسونیک با AVR
میکروکنترلر: AVR ==> زبان سی C (کدویژن)
قیمت: به جزئیات پروژه مراجعه نمایید
جزئیات سفارش خرید
یک مدار فاصله سنج می باشد که می توان در مواردی نیز به عنوان عمق سنج از آن استفاده نمود. حداقل فاصله قابل تشخیص 5cm و حداکثر 5m می باشد.

مرتبط باموضوع :          مطالب بیشتر در این موضوع

 پروژه اتصال کیبورد کامپیوتر به میکرو کنترلر AVR با کدویژن  [ يكشنبه، 14 شهريور ماه، 1389 ] 30256 مشاهده
 ماشین حساب ساده به زبان سی با میکروکنترلر AVR  [ سه شنبه، 19 بهمن ماه، 1389 ] 49769 مشاهده
 ساعت دقیق با وقفه تایمر یک به زبان سی CodeVision  [ شنبه، 16 ارديبهشت ماه، 1391 ] 33765 مشاهده
 پروژه اتصال میکرو با کابل USB تحت برنامه BASCOM و Codevision  [ يكشنبه، 14 شهريور ماه، 1389 ] 27687 مشاهده
 دانلود پروژه اتصال مستقیم AVR به پورت USB  [ دوشنبه، 25 مهر ماه، 1390 ] 24873 مشاهده
نام شما: شایان
ایمیل شما: shayan
در مورخه : جمعه، 4 آذر ماه، 1390

دوست عزیز و گرامی جناب محسن قاسمیان
ابتدا تشکر و سپاس دارم بابت زحماتی که داشتید در تهیه پروژه ها و آموزش های مستمر
بنده فایلی مبنی بر پروتکل

RC5

به زبان سی رو دانلود کردم و مورد مطالعه قرار دادم اما در بعضی از قسمتها متاسفانه به مشکل برخوردم در فایل پی دی اف رو مطالعه کردم اما باز هم مشکل من همچنان باقیست از بسیاری از دوستان هم سوال بسیار پرسیدم اما کسی پاسخگو نبود گفتم سوالم رو برای شما ارسال کنم چه کسی بهتر از خالق برنامه به زبان سی باشه
در بخش تبدیل دسیمال به باینری بعد از تقسیم ها این قسمت زیر چگونه انتخاب میشود

void dec_to_bin(unsigned char a, unsigned char op){
unsigned char b,c,i=7;
while(i<255){ //from 7 to 0 ==> Decrement from 0 == 255
b=a/2;
c=a%2;
if(op==1) bin_add[i]=c; //select variable addres
else if (op==2) bin_com[i]=c; //select variable command

unsigned char op

قسمت او پی که معرفی شده چه زمانی یک هست،چه زمانی دو؟
مورد دیگه نحوه تولید فرکانس به چه صورت بوده شما مقدار اولیه تایمر صفر رو چه مقدار تعریف کردید و رو چه مبنایی عدد 221 رو برای تی انتخاب کردید؟و همین طور در مورد تاخیر زمانی چون در فایل پی دی اف نحوه تشکیل این تاخیر توضیح داده نشده و برای دوستان کمی گنگ بوده ممنون میشم اگر توضیح بدید

یک سوال دیگر هم داشتم اینکه اگر ما بخواهیم بجای اینکه بدین صورت کد گذاری کنیم بطور مثال بخواهیم عدد دویست رو ارسال کنیم،یعنی بصورت آر سی فایو نباشه... این قسمت چگونه باید تعریف بشه
بطور مثال ما یک ال ای دی داریم در قسمت گیرنده و برای میکرو یک کد تعریف کردیم مثلا 200 با زدن یک کلید این کد ارسال بشه...
پیشا پیش تشکر میکنم از پاسختون

 

شایان....

جوابیه ها

نام شما: kamel
ایمیل شما: kamel_kh92@yahoo.com
در مورخه : پنجشنبه، 19 تير ماه، 1393

این برنامه که نوشته شده تمامی کد های کنترل ها را جواب میده .

ارسال جوابیه

ارسال جوابیه

نام شما: مدیریت سید محسن قاسمیان
ایمیل شما: picpars
در مورخه : جمعه، 4 آذر ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

با سلام خدمت شما دوست عزیز

خوشحالم که این مقاله را مطالعه کردید و سوالات خوبی از آن مطرح نمودید.

در بخش تبدیل دسیمال به باینری:

تابع dec_to_bin(add,1); دارای دو ورودی از نوع unsigned char هست که متغییر ورودی اولی یعنی add حاوی عدد آدرس می باشد که باید مدوله شود و متغییر دوم ما که یکی از اعداد 1 یا 2 می باشد در تابع به متغییر op نسبت داده می شود که در اینجا ما عدد 1 را به ورودی تابع میفرستیم. op معادل opration یعنی عملیات می باشد، بنابراین با استفاده از محتوای آن که (1 یا 2) میباشد تعیین می شود که عدد ورودی بعد از تبدیل به باینری در کدام یک از آرایه ها قرار گیرد bin_add یا bin_com. در صورتی که ابهامی در نحوی تبدیل کردن عدد به باینری دارید می توانید چند عدد انتخابی را با استفاده از تقسیم متوالی روی کاغذ به صورت دستی انجام دهدید تا فهم دستورات این تابع راحت تر شود.

حوه تولید فرکانس:

قوانین تولید و ارسال از نظر فرکانس و زمان تاخیر در بخش 2-3 مدولاسیون همین مقاله توضیح داده شود. ما کلا برای ارسال یک بیت داده باید 64 پالس در مدت 28 میکرو ثانیه ایجاد کنیم و همانطور که میدانیم هر پالس از دو نیم سیکل تشکیل شده است و عرض نیم سیکل ها هم در اینجا برابر است پس ما 14 میکروثانیه زمان ایجاد میکنیم و با استفاده از عمل معکوس سازی این سیکل را ایجاد می کنیم. اما در مورد نحوی تولید آن به زبان سی مطابق قوانینی که بر تایمرها حاکم است باید ابتدا زمان مورد نیاز را محاسبه نمود تا عددی که باید در مقدار اولیه تایمر قرار گیرد به دست آید. که در اینجا T=221 می باشد برای تولید 14 میکرو ثانیه.

مطمئن هستم که شما هم با دست محاسبه کردید ولی به عدد 221 نرسیدید؟؟؟ مشکل از کجاست؟ این هم برای خود بنده سوالی بود که چرا وقتی من با دست محاسبات مربوطه را انجام می دهم عددی که به دست می آورم منطقی و کاملا درست می باشد ولی بعد از کامپایل کردن اون فرکانس من تولید نمی شود، این مسئله ای بود که حدود یک روز من در گیر اون بود تا آنجایی که به خودم و کدویزارد کدویژن شک کردم، با خودم گفتم حتما من زیاد درگیر این پروژه بودم و قاطی کردم! برای همین من مسئله رو به تعدادی از دوستان دادم به آنها گفتم با تایمر صفر 14 میکرو ثانیه به صورت وقفه تولید کنید؟ آنها هم بعد از محاسبه به عدد 221 نرسیدن یعنی همان مشکل برایشان پیش آمد! و در نهایت به این نتیجه رسیدیم که کدویژن 2.05 باگ یا مشکلی دارد و شاید هم به خاطر کرک غیر قانونی آن باشد. خلاصه من اومدم با استفاده از روش آزمون و خطا و اسیلوسکوپ پروتئوس با تغیر مقدار T و اندازه گیری فرکانس خروجی روی اسکوپ به عدد 221 رسیدم که وقتی این عدد را در عمل تست کردم به نتیجه کامل دست یافتم.

و اما ارسال عدد 200:

مزیت این پروژه زبان سی که بنده نوشتم چه در بخش فرستنده و چه دربخش گیرنده این است که توابع به صورت کوچک شده نوشته شده است یعنی اینکه کل عملیات پروسه به صورت توایع گسترده شده ایجاد شده تا هرکسی به راحتی با یک بار خواندن آنها به اصول کارشان پی ببرد. برای اینکه شما عدد 200 را بفرستید چون این عدد بزرگتر از محدوده RC5 هست شما نمی توانید از قوانین آن استفاده کنید. اما نکته مهم این است که شما برای ارسال یک بیت 0 یا 1باید آن به صورت 64 پالس طبق قوانین RC5 مدوله کنید و این همان چیزی است که سنسور گیرنده شما با آن سروکار دارد و طبق این قانون آن بیت ارسال شده را آشکار سازی میکند. بنابراین برای سنسور گیرنده شما هیچ مهم نیست که باید چند بیت اطلاعات را آشکار کند، پس شما می توانید با تغیرات مختصری در برنامه فرستده و گیرنده به این امر دست یابید.

عدد 200 در محدوده 0 تا 255 است پس به یک بایت نیاز دارد که 8 بیت می شود. و 2 بیت شروع و یک بیت معکوس که جمعا 11 بیت خواهد. نکته: در هر صورتی که شما خواستید تعداد بیت های ارسالی را تغییر دهید با به این نکته توجه کنید که ابتدا باید 2 بیت شروع و بعد هم بیت معکوس سازی را ارسال کنید یعنی این 3 بیت اولی را مطابق قوانین RC5 باید به طور صحیح انجام دهید چون باید به کمک این بیت ها گیرنده متوجه شود شروع اطلاعات از کجا می باشد و همچنین تشخیص اینکه اطلاعات دریافتی صحیح است یا کذب است؟؟

شما خودتان می توانید نسبت به کاری که می خواهید انجام دهید یه الگوی خاص طراحی کنید و توصیه بنده این است که ابتدا 3 بیت اولی را مدوله کنید و بعد قسمت address  را هم مطابق همان پروتکل RC5 ارسال کنید و بعد تعداد بیت های command را افزایش دهید مثلا برای عدد 200 هشت بیت نیاز داریم پس 3+5+8=16 بیت خواهد شد و در سمت گیرنده هم باید عدد حلقه دریافت  command را به 8 افزایش دهید. مزیت استفاده از قسمت address  این است که شما برای ارسال عدد 200 مثلا عدد آدرس ثابت 4 را انتخاب می کنید بنابراین در سمت گیرنده بعد از آشکار سازی و دریافت بیت ها اگر 3 بیت اولی صحیح باشد و 5 بیت بعدی که address می باشد هم عدد 4 باشد شما به یقین خواهید رسید که اطلاعات (200) با صحت بالا و درصد خطای پایینی دریافت شده است. به این خاطر که شما در این مثال میدانید عدد تان 200 است شاید در یک برنامه خاص برای میکرو عدد خاصی تعریف نشده باشد و ما باید یقین داشته باشیم که اطلاعات دریافتی به طور صحیح انجام گرفته است.

من بر اساس تجربیات ام با RC5 این پیشنها رو به شما دادم امیدوارم که شفاف گفته باشم و کار شما هم انجام گیرد. دوستان اگه زیاد شد ببخشید دیگه....

ارسال جوابیه

نام شما: شایان
ایمیل شما: shayancomeon@gmail.com
در مورخه : دوشنبه، 7 آذر ماه، 1390توسط
(مشخصات کاربر shayanscience | ارسال پیغام شخصی)

با سلام و خسته نباشید
از اینکه سوال را کامل و جامع پاسخ دادید سپاسگزارم
سوالاتی در مورد بخش گیرنده داشتم اما پیش از طرح سوال اجازه بدید در مورد ایجاد شدن این اختلاف زمانی بسیار زیاد در میکرو فرستنده یک سوالی رو طرح کنم که نمیدونم تا چه حد درسته،در عمل آزمایش نکردم
آن هم این است که احتمال اینکه در تایمر صفر فرستنده اختلاف عددی رو که بین محاسباتی که  روی کاغذ داشتیم و اونچیزی که در عمل بدست آوردیم میتونه به علت استفاده از فرکانس کاری میکرو باشه؟ آیا اگر از یک کریستال خارجی استفاده میکردیم باز هم این اختلاف وجود داشت؟

اما در بخش گیرنده شما جلوی تابع تاخیر TCNT2=t یک محاسبه داشتید که عدد بدست آمده 4.752 ،این تابع به چه صورت این عدد رو بدست میاره،نحوه محاسبه به چه صورت هستش
و یک فرض هم داشته باشیم اگر بخواهیم از خود ویزارد این تایمر رو فعال کنیم به چه صورت باید عمل کنیم؟

و مورد بعدی اینکه من تابع دریافت آدرس رو روی کاغذ پیاده میکنم از بیت دوم شروع میکنم دریافت کردن و or کردن اما در پایان تعداد 9 بیت باقی میمونه...اگر امکان داره برای مثال عدد پنج رو روی این تابع پیاده سازی کنید ممنون میشم.
اگر بخواهیم برای گیرنده تعریف کنیم که فقط فلان آدرس رو دریافت کن این رو باید توی تابع آدرس پیاده کنیم؟

از اینکه در این پروژه سوال زیاد میپرسم پوزش میخواهم،هم به دلیل سواد کم من در زمینه برنامه نویسیست و هم در میکرو....
باز هم تشکر میکنم،اگر سوالی بود مطرح میکنم.
 

ارسال جوابیه

نام شما: مدیریت
ایمیل شما:
در مورخه : دوشنبه، 7 آذر ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

کریستال داخلی یا خارجی فرقی ندارد من با هر دو تست کردم.

با عرض معذرت کامنت

//255-74=181  4.752ms //255-27=228  4.752ms

را نادیده بگیرید یادم رفته بود پاکش کن.

در مورد ویزاد هم خیلی ساده هست تایمر رو انتخاب کند و بعدش هم فرکانس و وقفه و ... را تنظیم کن.

شرط حلقه => 6 هست که کلا 7 بار دستورات داخلش تکرار میشه بیت اولی را قبل از لیبل start2 رد کردیم البته با تاخیرش و اینجا هم 7 بیت می خونیم که 2 تای اولی رو کارش نداری با دستور and حذفش میکنیم ودر قسمت آدرس هم 6 بیت میخونیم و کلا شد 14 بیت. در هر بار خوندن 1.728ms باید صبر کنیم.

می تونید بعد از دستور

if(com > 63) goto start1; //Error in while Read DATA

شرط دلخواه برای خواندن آدرس 20 :

if(com != 20) goto start1;

به همین راحتی.

 

ارسال جوابیه

نام شما: شایان
ایمیل شما: shayancomeon@gmail.com
در مورخه : سه شنبه، 8 آذر ماه، 1390توسط
(مشخصات کاربر shayanscience | ارسال پیغام شخصی)

با سلام
سپاس گزارم مشکل برطرف شد
یک سوال  پیشنهاد شما برای ارسال متن از طریق مادون قرمز چی هست؟
با تشکر

جوابیه ها

نام شما: مدیریت
ایمیل شما:
در مورخه : سه شنبه، 8 آذر ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

منظور شما دقیقا از متن چی؟

آیا منظورتون ارسال کاراکتر هاست یا انتقال فایل متنی؟

برای ارسال کاراکتر با مادون قرمز خودم یه چیزایی تو سرم  هست و در آینده میخوام روش کار کنم. انشاءالله انجام میدیم.

خوشحالم که مشکلات تون حل شد.

با تشکر

ارسال جوابیه

ارسال جوابیه

نام شما: شایان
ایمیل شما: shayancomeon@gmail.com
در مورخه : پنجشنبه، 17 آذر ماه، 1390توسط
(مشخصات کاربر shayanscience | ارسال پیغام شخصی)

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

جوابیه ها

نام شما: مدیریت
ایمیل شما:
در مورخه : جمعه، 18 آذر ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

سلام

آخرین بار که امتحان کردم حدودا 12 متر برد داشت. (البته درصورتی سنسور گیرنده بدون پوشش باشد)

برای افزایش برد هم حقیقتا فعلا چیزی به ذهنم نمیخوره.

ارسال جوابیه

ارسال جوابیه

نام شما: شایان
ایمیل شما: shayancomeon@gmail.com
در مورخه : دوشنبه، 21 آذر ماه، 1390توسط
(مشخصات کاربر shayanscience | ارسال پیغام شخصی)

سلام
یک سوال از حضورتون داشتم البته سوال مربوط به این پروژه نیست اما بنده یه تغییراتی رو روی برنامه شما دادم سوالی برای من پیش آمد

من با این پروژه قصد دارم که دمای محیط رو از یک میکرو به میکرو دیگه با مادون قرمز ارسال کنم

قسمت فرستنده که شامل سنسور دما هستش تغییری تو برنامه فرستنده ایجاد کردم به این صورت که بخش دستور رو حذف کردم و فقط بخش آدرس هست،از طرفی هم بخش آدرسی که عدد درونش باید قرار میگرفت تا به باینری تبدیل بشه و بعد مدولاسیون.... به جای اون عدد من یک متغییر گذشتم که متغییر من عددی هستش که سنسور سنس میکنه و ارسال میکنه... نمیدونم واقعا تا چه حد درسته اما مبحثی که هست بخش گیرندست هم بخش دستور حذف شده و از همون الگریتم استفاده شده اما وقتی اجرا میکنم خود به خود عدد میاد در صورتی که هیچ ارسالی انجام نشده....
من بخش پایانی دستور براتون ارسال میکنم

while (1)
      {
     getrc5();
     lcd_clear();
      sprintf(s1,"temperature=%d",add);
      lcd_puts(s1);// Place your code here
      delay_ms(500);
      };
}
جوابیه ها

نام شما: مدیریت
ایمیل شما:
در مورخه : چهارشنبه، 23 آذر ماه، 1390

سلام

این مشکل بخاطر اینکه شما کد آدرس رو حذف کردید.25

در صورت عدم وجود کد آدرس میکرو  از پین مربوطه اطلاعات رو میخونه و در اینجا متوجه صحت و درستی اطلاعات نمیشه. با وجود کد آدرس یعنی در پروژه اصلی باز هم خطا به صفر نرسیده و این درحالی است که شما حتی کد آدرس رو حذف کرده اید.

ارسال جوابیه

ارسال جوابیه

نام شما: حمید
ایمیل شما:
در مورخه : شنبه، 3 دي ماه، 1390

سلام
پروژه جالبیست و به زبان سی من ندیده بودم تشکر میکنم
سوالی که برای من پیش آمده اینه که شما در بخش مدلاسیون با توجه به توضیحی که در فایل پی دی اف قرار دادید فرمودید که قرار هستش که 64 سیکل این پروسه انجام بشه برای مثال بیت صفر 32 پالس تولید بشه و 32 پالس سکوت داشته باشه، با توجه به دوره زمانی که در نظر گرفتید یعنی 37 کیلوهرتز،او c++ که توی تایمر قرار دادید در واقع هر 27 میکرو ثانیه یک واحد بهش اضافه میشه درسته؟با توجه به فرکانسی که فرمودید خوب حالا تو بخش مدولاسیون شما شرطی که قرار دادید 64 هستش یعنی c تا به 64 نرسه به مرحله بعدی نمیره،با این وجود 64*27=1728 میکرو که در واقع میشه خودش یک بیت
حالا نمیدونم من درست متوجه نشدم یا چیز دیگه ای هست
اگر یه توضیحی بدید ممنون میشم....

جوابیه ها

نام شما: مدیریت
ایمیل شما:
در مورخه : شنبه، 3 دي ماه، 1390

سلام دوست عزیز و ممنون 26

همانطور که گفتیم هر بیت 1.778 میلی ثانیه باید بشه. و روتین تایمر در هر بار اجرا 14 میکرو تاخیر ایجاد میکنه. حالا در Label_01 ما 64 تا 14 میکرو ایجاد میکنیم که میشه 32 پالس کامل و همین طور در بخش Label_02 هم 32 پالس کامل ایجاد میشه بنابراین کلا 64 پالس تولید میشه.

دوستان به قضیه پالس کامل (دو نیم سیکل) توجه نمائید.

با تشکر1

ارسال جوابیه

ارسال جوابیه

نام شما: حمید
ایمیل شما:
در مورخه : يكشنبه، 4 دي ماه، 1390

سلام جناب قاسمیان
آقا من طبق برنامه ای که نوشته بودید شروع کردم به نوشتن برنامه تا انتها،توی زمان بندی ها هم دقیق عمل کردم اما متاسفانه روی ال سی دی اعداد بی ربطی دیده میشد که هیچ ربطی به اون اعدادی که فرستنده میفرستاد نداشت...بعد از سروکله زدن برنامه که شما زحمتش رو کشیده بودید رو روی میکرو لود کردم اما باز هم همان مشکل بود تمامی شرایط چندین بار بررسی شد...ایراد کار کجاست؟؟
26با تشکر

جوابیه ها

نام شما: مدیریت
ایمیل شما:
در مورخه : يكشنبه، 4 دي ماه، 1390

من متوجه نشدم که شما میخواید چیکار کنی؟؟

ولی این رو میدونه که پروژه به صورت عملی کاملا تست شد و هیچ مشکلی نداشت. اگر فایل هگز این پروژه رو استفاده کرده اید و جواب نگرفته اید حتما فیوز بیت ها و کلاک پالس و همچنین خود سخت افزار مدار و البته سنسور گیرنده و پایه های آن رو برسی کنید.

ارسال جوابیه

ارسال جوابیه

نام شما: ghazal
ایمیل شما: mahtab_eng2020@yahoo.com
در مورخه : دوشنبه، 5 دي ماه، 1390توسط
(مشخصات کاربر mahtab | ارسال پیغام شخصی)

salam mishelotfan barname namayesh daraje hararat ruye lcd ra benevisid?

 

جوابیه ها

نام شما: مدیریت
ایمیل شما:
در مورخه : دوشنبه، 5 دي ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

اولا شما باید فارسی تایپ کنید! دوما اینجا محل مناسبی برای درخواست شما نبود.

به هر حال شما میتونید به بخش های زیر مراجعه نمائید:

پروژه های مرتبط با دما و یا در قسمت آموزش

تمامی بخش های سایت در قسمت منوی اول صفحه قابل دسترسی می باشد.

ارسال جوابیه

ارسال جوابیه

نام شما: سعید
ایمیل شما: hamidinezhad@gmail.com
در مورخه : شنبه، 22 بهمن ماه، 1390توسط
(مشخصات کاربر saeidhp | ارسال پیغام شخصی)

سلام 

اول تشکر کنم به خاطر این آموزش من خیلی توی اینترنت سرچ کردم ولی توی هیچ سایتی چنین مطلبی رو به زبان c ندیدم و این نشان از سواد بالای شما داره

با توجه به اینکه ریموت های جدید از پروتکل rc6 استفاده میکنند و البته آموزش و سورس های زیادی با بسکام وجود داره آیا میشه با تغییراتی در این پروژه به پروتکل rc6 تبدیل کرد ؟

آیا میشه کدهای چند ریموت پرکاربرد رو شناسایی کرد تا با هرکدام از ریموتها که استفاده شد عمل مورد نظر توسط میکرو انجام شود ؟

جوابیه ها

نام شما: سید محسن قاسمیان
ایمیل شما:
در مورخه : شنبه، 22 بهمن ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

با سلام

هرکسی که این مقاله رو به صورت کامل درک کرده باشه به راحتی میتونه با تغییراتی در آن پروتکل RC6 را طراحی کند. چون برنامه RC5 به صورت سورس باز و بدون کوچک ترین محدودیت یا کاستی در آن به صورت کاملا رایگان از تنها از سایت picpars ارئه شده است.

کاری که شما باید انجام دهید این است که باید به دنبال اصل این پروتکل بروید، یعنی باید در منابع خارجی بگردید و قوانین و اصول این پروتکل را پیدا کنید. از جمله فرکانس حامل، تعداد بیتهای ارسالی، تعداد سیکلها در مدولاسیون هر بیت و ...  تا بتوانید با تغییراتی در این برنامه آن را طراحی کنید

موفق باشید

ارسال جوابیه

ارسال جوابیه

نام شما: سعید
ایمیل شما: hamidinezhad@gmail.com
در مورخه : دوشنبه، 1 اسفند ماه، 1390توسط
(مشخصات کاربر saeidhp | ارسال پیغام شخصی)

 

با سلام

من یه برنامه از اینترنت پیدا کردم که کدهای تعداد زیادی ریموت رو شناسایی میکنه از جمله پروتکل های rc5 و rc6 اما هر کار کردم موقع کامپایل یدونه خطا میده 

این برنامه ظاهرا با avr studio  نوشته شده اما راجع به codevision هم یه چیزهایی نوشته 

اینم آدرسش

http://svn.mikrokopter.de/filedetails.php?repname=Projects&path=%2FServo-Controlled+IR-Transmitter%2FSoftware%2Firmp.c

 

ممنون میشم در موردش یکم راهنمایی کنید چون کلا به یه سبک دیگه نوشته شده

در ضمن چندتا فایل هم هست که به صورت هدر اینکلود شده که من همه رو دریافت کردم و براتون ایمیل میکنم 

فقط چون فعلا جیمیل مشکل داره علاوه بر جیمیل به info سایتتون هم میفرستم 

باتشکر

 
ارسال جوابیه

نام شما: دانیال
ایمیل شما: daniel.parsian@gmail.com
در مورخه : جمعه، 10 شهريور ماه، 1391توسط
(مشخصات کاربر ahmadi_psp | ارسال پیغام شخصی)

با سلام و خسته نباشید,راستش پروژه کاملیست که من توی هیچ سایتی مانندش ندیدم من 2 بار این مقاله را خواندم و مدار را بستم و بخوبی جواب گرفتم اما اشکالی که من متوجه شدم این بود که فرکانس فرستنده باید روی 38 کیلو هرتز تنظیم شود تا برد مدار به مقدار حداکثر برسد که در این مقاله 35.7 کیلو هرتز تنظیم شده است.اگه امکان داره نحوه تنظیم فرکانس روی 38 یا راه حلی برای برد بیش از 2 متر را  توضیح دهید چون هر کار که میکنم به 2 متر بیشتر نمیرسه...

با تشکر فراوان از سرور و سالار ما اقای قاسمیان عزیز

ارسال جوابیه

نام شما: ebrahimjavadi
ایمیل شما: ebrahimjavadi90@yahoo.com
در مورخه : پنجشنبه، 4 آبان ماه، 1391

با عرض سلام و خسته نباشید یک در خواست از شما داشتم.

من دانشجوی کاردانی الکترونیک و در اواسط تحصیلم هستم.علاقه فراوانی به الکترونیک دارم.دوره ی کلاسهای فنی(که الکترونیک را به صورت عملی یاد میدهند)را گذرانده ام.الان به صورت عملی در خانه تعمیرات انجام میدهم و دارای تجهیزات نصفه و نیمه هم هستم.تا ترانزیستورها خوب میدانم.اما آشنایی با آی سی ها ندارم.میخواستم بطور پایه ای بخوانم و با انواع آی سی ها و پروگرام کردن آنها آشنا شوم و کار کنم.اما به هرکس که گفتم فایلهایی در اختیار من گذاشت که از فیوز بیت و کلاک وریست و....داشت و من سر در نیاوردم.خواستم ببینم شما میتوانید راهنمایی یا کمکم کنید؟ممنون میشم از زحمت شما

جوابیه ها

نام شما: سید محسن قاسمیان
ایمیل شما:
در مورخه : پنجشنبه، 4 آبان ماه، 1391توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

آرشیو AVR

شامل فیوز بیت ها و ...

ارسال جوابیه

ارسال جوابیه

نام شما: کامران
ایمیل شما: man.a401@yahoo.com
در مورخه : يكشنبه، 22 بهمن ماه، 1391

سلام به همه و مدیر سایت وبچه های این سایت دوستان من می خوام یک ریمت رادیوی جهت کنترل دور موتورdcاز راه دور درست کنم (دو  کاناله باشد که یک کانال برای کاهش دور موتور وکانل کانال دیگری برای افزایش دور موتور) مشگل من با بر نامه نویسی انه دوستان اگه می تونیدکمکی کنید یا برنامه ان  دارید با ایمیل من ارسال کنید   man.a401@yahoo.com

ارسال جوابیه

نام شما: مهدی
ایمیل شما:
در مورخه : سه شنبه، 27 فروردين ماه، 1392

 سلام با تشکر از آموزشهای شما من می خواستم کدهای  کنترل jvc را با میکرو

آشکار کنم .ممنون می شوم راهنماییم کنید.

 

ارسال جوابیه

نام شما: mehrdad
ایمیل شما: mehrdad_2012@ymail.com
در مورخه : شنبه، 13 مهر ماه، 1392

اولا سلام

دوما تشکر فروان از شما بابت این آموزش بسیار  عالی شما .

سوما تشکر ویژه برای تمامی برنامه ها و آموزشهایی که توسایتتون میزارین .

من به شخصه میتونم بگم که شما بیشتر از 70% یا بهتره بگم راه اندازم سایت عالی شما بود که تو درک کدها مشکلم کمتر بشه .

 

من مدار رو بستم و جواب گرفتم (خیلی ممنون)

میخواستم با این مدار کد های کنترل های چند دستگاه رو بگیرم که همه رو آخرین مقدارش میگرفت (31و63) .

کنترل تلویزیون ال جی مون 3 حالت داره TV & STB & DVD که مارکای خود ال جی رو کنترل میکنه . من میخواستم کد های STB & DVD کنترل تلویزیون رو بگیرم و بعد دو دستگاه DVD و سینما خانگی رو که شرکتاش فرق میکنه رو با کنترل تلویزیون کنترل کنم . (یک تبدیل کد و ارسال کد )

ولی همون جور که میدونید این کنترلها بیشترشون پروتکل RC6 و در حالت بد شانسی پروتکل خاص خودشون رو دارن .

میخواستم ازتون بپرسم که این کار شدنیه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

وبعدشم من تو اینترنت گشتم و پروتکل RC6 روهم پیدا کردم ولی چون بیسک بود نمیدونستم چیکار کنم (راستش رو بخواین زیاد با بیسک حال نمیکنم و زیادم دورو برش نمیرم ) .

بلاخره نتایج جستجو این شد که ظاهرا این دو پروتکل (RC5 & RC6) شبیه هم اند و فقط یک تفاوت های جزئی دارن (خلاصه شما استاد مایین خودتون بهتر از ما میدونین و از این بیشترم پرحرفی نمیکنم ).

میخواستم ازتون خواهش کنم اگه ممکنه درباره RC6 هم توضیح بدین خیلی ممنون میشم .

خواهشا پاسخ بدید .

دعاتون میکنم و خدا خیرتون بده .

 

ارسال جوابیه

نام شما: reza
ایمیل شما:
در مورخه : جمعه، 9 اسفند ماه، 1392توسط
(مشخصات کاربر reza_mslm | ارسال پیغام شخصی)

سلام

منظور از این تفریقا چیه؟

  TCNT2=t;    //255-74=181  4.752ms //255-27=228  4.752ms

 delay(201);  //255-54=201  1.728ms 

وچرا تو گیرنده باید به اندازه 2.75 بیت تاخیر ایجاد کنیم (ونه 3بیت) تا از سه بیت صرفنظر کنیم؟

 

جوابیه ها

نام شما: reza
ایمیل شما:
در مورخه : شنبه، 10 اسفند ماه، 1392توسط
(مشخصات کاربر reza_mslm | ارسال پیغام شخصی)

دوستان لطفا هرکی میدونه جوابمو بده کارم گیره

تشکر

ارسال جوابیه

ارسال جوابیه

نام شما: reza
ایمیل شما:
در مورخه : جمعه، 15 فروردين ماه، 1393

آقا خداییش این برنامه سرکاری نیست؟

من فرستنده و گیرنده رو آوردم تو پروتئوس از پورت خروجی میکرو فرستنده وصل کردم به ورودی میکرو گیرنده یه سری اعداد کاملا بیربط نشون میداد

هر عددی رو میفرستادم یه سری اعداد متغیر و بیربط نشون میداد

اصلا درست کار نمیکنه آقا

ارسال جوابیه

نام شما: کامل
ایمیل شما: kamel_kh92@yahoo.com
در مورخه : پنجشنبه، 19 تير ماه، 1393

با سلام
 این برنامه ای که شما نوشته اید برای کد شکستن شامل تمامی کنترل های را میشود مثلا کنترل های کولر . یک نکته این خطه ابی که شما در دریافت کننده استفاده کرده اید برای چی است و چگونه امکاه دارد ان را حذف کرد یا ان را به هنگام پیاده کردن روی برد قرار داد .  

با تشکر   ...........

ارسال جوابیه

نام شما: hamed fatahi
ایمیل شما: hamedf19@yahoo.com
در مورخه : يكشنبه، 14 دي ماه، 1393

سلام استاد .وقت بخیر چندتا سوال داشتم خدمتتون

1)من برنامه رو دقیقا مثل مجله نویز نوشتم ولی این فایل هدرsendrc5ولی به بالای برنامه اضافه می کنم خطا میگیره؟

2)داخل توضیحات برنامه نوشتین که بیت های 3تا7بیت های ادرس هستند و بیت های 2تا7هم بیت های دستور؟

3)تابع commandرو هم ننوشتین؟

4)برای وارد کردن اطلاعات نیاز به صفحه کلید داریم؟

استاد ممنون می شم جواب بدین.تشکر

ارسال جوابیه

نام شما: behnia
ایمیل شما: behbudi73@yahoo.com
در مورخه : دوشنبه، 29 شهريور ماه، 1395

با سلام وعرض خسته نباشید.
من درباره  پروژه برنامه نویسی پروتکل RC5 به زبان C با میکروکنترلر AVR (کدویژن)
به مشکل برخوردم ، وقتی برنامه شمارو از حالت فشرده خارح میکنم و فایل هگز بدون هیچ تغییر داخل ایسی پروگرم میکنم مدار درست عمل میکنه و شمارش عادیه اما وقتی فقط برنامه یا سورس بدون هیچ تغییر کامپایل میکنم و بعد اجرا  دیگه درست عمل نمیکنه و شمارش ناقصه  این مشکل هم سورس  دریافت هستش سورس فرستنده مشکلی نداره
اگه میشه کمکم کنید ممنون و باتشکر

ارسال جوابیه

 
نام شما: [ کاربر جدید ]

نام شما (ضروری): 
ایمیل شما : 
نظر:
کد امنیتی
کد امنیتی

  [ بازگشت ]