طراحی و ساخت انواع مدارات میکرو کنترلر

avr , pic,arm
طبقه بندی موضوعی
آخرین نظرات

برنامه ریزی و پروگرتم کردن ARM

روش های پروگرم کردن میکروکنترلرهای ARM

بطور کلی پروگرم کردن یا انتقال کد برنامه به حافظه داخلی ، در میکروکنترلرهای ARM به دو روش کلی زیر انجام می شود.

1-استفاده از واسط JTAG

2-استفاده از نرم افزارهای مختص تراشه

PROGRAMMER

-روش اول : استفاده از واسط JTAG

واسط JTAG(Joint Test Access Group) واسطی است برای پروگرم کردن حافظه فلش , اشکال زدایی و اجرای گام به گام برنامه میکروکنترلرها ، میکروپروسسورها و FPGA هایی که از استاندارد IEEE 1149/1 بهره می برند.این روش در بسیاری از میکروکنترلرهای نسل گذشته مانند AVR و PIC ها نیز استفاده می شود.در واقع هر میکروکنترلری که پایه های TDI ،TDO،TMS و TCK را در خود دارند از این ارتباط پشتیبانی می کنند.در پروتکل JTAG دسترسی کامل به CPU و حافظه فراهم می باشد و شما می توانید داده های پردازش شده و یا مقدار متغیرها و رجیسترها را با اجرای خط به خط برنامه مشاهده نمایید.رابط JTAG از پنج پایه اصلی برای ارتباط با سخت افزار استفاده می کند:

-(Test Clock Input)TCK:این پایه برای تولید پالس همزمانی استفاده می شود.

-(Test Data Input)TDI:از طریق این پایه داده از پروگرمر وارد میکرو می شود.

-(Test Data Output)TDO:این پایه داده را از میکروکنترلر به پروگرمر منتقل می کند.

-(Time Mode Select)TMS:از طریق این پایه حالت های مختلف تست انتخاب می شود.

-(Test Reset Input)TRST:این پایه به پایه ریست میکرو متصل می شود و قبل از شروع کار آن را ریست می کند.

پروگرمرهای مختلفی در بازار وجود دارد که از پروتکل JTAG برای پروگرام کردن و عیب یابی تراشه های ARM استفاده می کنند.از مهمترین این پروگرامرها می توان به J-Link محصول شرکت SEGGER اشاره کرد.این پروگرامر از طریق پورت USB به کامپیوتر و از طرف دیکر با استفاده از یک کانکتور به میکروکنترلر یا بورد مربوطه متصل می شود و سپس از طریق نرم افزار مربوطه یعنی J-FLASH ARM (در صورت خرید پروگرمر J-LINK این نرم افزار نیز در بسته خریداری شده موجود می باشد)می توانید میکرو را برنامه ریزی کنید.البته با معرفی J-LINK به نرم افزار Keil از طریق اعمال تنظیمات لازم می توان از طریق این نرم افزار نیز میکروکنترلر را پروگرام کرد. با استفاده از پروگرمر J-LINK میتوان تقریبا همه میکروکنترلرهای ARM را از انواع شرکت های سازنده پروگرام و عیب یابی کرد.البته باید متذکر شوم که شما خود نیز می توانید نسبت به ساخت این پروگرمر اقدام کنید چرا که فایل های شماتیک ، PCB ودیگر فایل های مورد نیاز این پروگرمر با جستجو در اینترنت قابل دسترسی است.

 

J-LINK

 

 

یکی دیگر از پروگرمرهایی که از واسط JTAG برای برنامه ریزی میکروکنترلرهای ARM استفاده می کند و از ساختار نسبتا ساده ایی برخوردار است ، پروگرمر Wiggler است.این پروگرمر از طریق پورت موازی کامپیوتر و نرم افزار H-JTAG میکرو را برنامه ریزی و عیب یای می کند.در شکل زیر مدار این پروگرمر را ملاحظه می کنید.

WIGGLER

نرم افزار H-JTAG نیز به صورت رایگان از اینترنت قابل دریافت است.جهت شبیه سازی و عیب یابی میکروکنترلر با استفاده از این پروگرمر باید تنظیمات مربوطه را در کامپایلر اعمال نمود.H-JTAG

 

 

-روش دوم: استفاده از نرم افزارهای مخصوص تراشه

در این روش برنامه ریزی میکروکنترلر با استفاده از نرم افزاری که توسط شرکت سازنده ی میکروکنترلر ارائه می شود ، صورت می گیرد.فرض کنید بخواهید میکروکنترلرهای ARM شرکت ATMEL را از روشی به غیر از JTAG برنامه ریزی کنید.نرم افزارهایی که شرکت ATMEL برای این منظور تولید کرده است ، SAM-BA و AT91-ISP است که از طریق پورت های Serial ، USB و یا CAN صورت میگیرد.برای استفاده از این روش نیاز به سخت افزار جانبی خاصی نیست .مثلا برنامه ریزی از طریق پورت USB تنها از طریق یک کابل USB صورت می گیرد. بدین صورت که با یک کردن پایه Erase باید حافظه برنامه قبلی را پاک نمود و سپس پس از خاموش کردن و رها کردن پایه ERASE و روشن نمودن برد(قطع و وصل تغذیه) ، میکرو وارد مد برنامه ریزی می شود و از طریق برنامه SAM-BA می توان میکروکنترلر را برنامه ریزی نمود.

SAM-BA

برای میکروکنترلرهای LPC ساخت شرکت NXP نیز برنامه ریزی از طریق نرم افزار Flash Magic و از طریق پورت سریال و یا استفاده از روش BOOT LOADER ثانویه از طریق پورت USB صورت می گیرد.با استفاده از نرم افزار Flash Magic از طریق اتصال پین هایRXD0,TXD0,EINT0و RESET به پورت COM کامپیوتر می توان میکرو کنترلر را برنامه ریزی نمود.ویا اینکه برای برنامه ریزی از طریق USB باید برنامه BOOT LOADER را از طریق یکی از روش های دیگر بر روی میکرو بارگذاری نمود و پس از آن زمانی که میکرو از طریق پورت USB به کامپیوتر متصل گردد، به عنوان یک حافظه ذخیره سازی ، شبیه یک درایو در قسمت My Computer نمایان می شود و پروگرم کردن میکرو به سادگی از طریق کپی کردن فایل Bin. برنامه به داخل درایو صورت می گیرد.

mcb950_eraseblocks

در میکروکنترلرهای STM32 نیز وضعیت مشابه دیگر میکروکنترلرها است.در این میکرو کنترلرها نیز علاوه بر برنامه ریزی از طریق واسط JTAG می توان میکروکنترلر را از طریق پورت سریال و نرم افزار st microcontroller flash loader صورت می گیرد.

ST BOOT

انواع مقاومت ها

انواع مقاومت های الکترونیکی

مقاومت ها یکی از عناصر پایه مداری در علم الکترونیک هستند و نقش اصلی آنها مقاومت در برابر عبور جریان است. مقدار مقاومت را با واحد اهم و با نشانه ( Ω ) نشان می دهند. مقدار مقاومت در حقیقت معکوس رسانایی ( G ) است ( G = 1/R ) . در یک مقاومت ایده آل مقدار مقاومت همواره ثابت است ، اما در دنیای واقعی مقدار مقاومت ها با توجه به دما و میزان جریان عبوری ممکن است دچار تغییراتی شود ، همین امر باعث می شود تا پارامتری به نام توان برای مقاومت مطرح شود که با واحد وات ( W ) اندازه گیری می شود. در حقیقت توان نامی ( nominal power rating ) باید همواره بیش از حداکثر توان مورد نیاز مقاومت تعیین شود ، که توان حداکثر را با استفاده از رابطه P max = R * I max^2 محاسبه نمود.

طبقه بندی انواع مقاومت : 

مقاومت ها را می توان بر اساس کاربرد و نوع ماده تشکیل دهنده طبقه بندی نمود ، در ابتدا مقاومت ها به دو دسته کلی مقاومت های ثابت ( Fixed Resistors ) و مقاومت های متغیر ( Variable Resistors ) تقسیم بندی می شوند.

 

مقاومت های ثابت Fixed Resistors : 

مقاومت های فیلم کربن : 

مقاومت های فیلم کربن در حقیقت پر استفاده ترین و ارزانترین نوع مقاومت است که کمتر کسی است که تا کنون این نوع مقاومت را ندیده باشد. این مقاومت ها اغلب دارای تلرانس ±۵ % هستند و معمولا در توان های ۱/۸ وات ، ۱/۴ وات و ۱/۲ وات در بازار یافت می شوند. این مقاومت ها  همانطور که در تصویر زیر مشخص است ، معمولا با پیچیده شدن یک لایه نازک کربنی دارای ناخالصی ( فیلم کربن ) به دور یک هسته سرامیکی ساخته می شوند و دو سر مقاومت به ۲ قطعه رسانا کلاهی شکل دارای پایه متصل می گردد که پایه های قطعه را تشکیل می دهد تا بتوان قطعه را بر روی برد لحیم نمود. در نهایت پوششی عایق روی مقاومت را می پوشاند و سپس کد های رنگی بر روی آن درج می شود.

مقاومت فیلم کربن

مقاومت های فیلم فلز : 

مقاومت های فیلم فلز ( Metal Film Resistor ) از نظر شکل ساختمان مانند مقاومت های فیلم کربن هستند با این تفاوت که به جای فیلم کربن از فیلم فلز استفاده می شود. این نوع مقاومت ها زمانی مورد استفاده قرار می گیرند که دقت بیشتری نیاز داشته باشیم. نیکل کروم یا نیکروم ( Ni-Cr ) معمولا به عنوان ماده اصلی در ساخت فیلم فلز ( Metal Film ) مورد استفاده قرار می گیرد. مقاومت های فیلم فلز با دقت های ۲% ، ۱% و ۰٫۵ % در بازار موجود هستند. این مقاومت ها دارای نویز کمی هستند و تاثیر دما بر روی آنها کم است و برای مدت زیادی با دقت بالا قابل استفاده هستند.

مقاومت فیلم فلز

مقاومت های سیمی : 

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

مقاومت های وات بالا ( High-Wattage ) را می توان با پیچیدن سیم های ضخیم ساخت . این نوع از مقاومت ها را نمی توان در مدار های فرکانس بالا استفاده نمود زیرا در صورت استفاده ، در فرکانس های بالا سیم پیچیده شده خاصیت سلفی پیدا خواهد نمود و باعث ایجاد اختلال در عملکرد مدار خواهد شد.

مقاومت های سیمی

مقاومت آجری یا سرامیکی : 

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

مقاومت آجری یا مقاومت سرامیکی

مقاومت آرایه ای یا شبکه ای :

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

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

مقاومت آرایه ای

مقاومت های متغیر Variable Resistors: 

پتانسیومتر ( Potentiometer ) : 

پتانسیومتر

پتانسیومتر نوعی مقاومت است که بر خلاف مقاومت های رایج ، دارای ۳ پایه است.ساختمان یک پتانسیومتر به این صورت است که دو ترمینال در طرفین وجود دارد که در شکل بالا A و B نام گذاری شده اند ، بین این دو ترمینال یک المان دارای مقاومت مشخص وجود دارد که مقاومت آن برابر با مقدار درج شده روی پتانسیومتر است و مادامی که پتانسیومتر سالم باشد این مقدار ثابت خواهد ماند ( زمانی که شما یک پتانسیومتر ۱۰ کیلو خریداری می نمایید ، در حقیقت مقاومت بین این دو پایه تقریبا ۱۰ کیلو اهم خواهد بود ) پایه سوم که بین دو پایه دیگر قرار دارد و در شکل بالا W نامگذاری شده است ، دارای یک کنتاکت لغزنده است که بر روی المان مقاومتی که ترمینال های A و B را به هم وصل کرده است می لغزد. با تغییر مکان کنتاکت متحرک ، مقاومت پایه W نسبت به پایه A و پایه B تغییر می نماید.

پتانسیومتر ها از نظر کاربرد دارای انواع مختلفی هستند. نوعی از پتانسیومتر ها برای استفاده کاربر در مدار قرار داده می شوند مانند پتانسیومتر ولوم رادیو ( قطعه ای که در ایران به نام ولوم می شناسند ) و برخی برای استفاده سازندگان و تعمیرکاران است مانند برخی پتانسیومتر هایی که بر روی برد مدار چاپی و در داخل جعبه قرار گرفته است و یکبار توسط سازنده تنظیم می شود و از آن پس نباید مقدار آن تغییر کند.

اغلب پتانسیومتر ها دارای زاویه چرخش تقریبی ۳۰۰ درجه هستند اما نوعی از پتانسیومتر ها که برای دقت بیشتر به کار می روند مولتی ترن نامیده می شوند. مولتی ترن ها دارای زاویه چرخشی بیش از یک دور هستند که با توجه به مدل مولتی ترن بین ۲ دور الی ده ها دور متغیر است.

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

مقاومت های وابسته : 

مقاومت های وابسته ، نوعی مقاومت متغیر هستند که همانند مقاومت های معمولی دارای ۲ پایه هستند ، اما مقاومت آنها معمولا با توجه به یکی از پارامتر های محیطی مانند دما ، رطوبت ، نور ، مغناطیس ، ولتاژ و … تغییر می کند.

مقاومت وابسته به نور ( Light Dependent Resistor ) یا LDR :

مقاومت وابسته به نور یا فتوسل

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

وریستور یا مقاومت وابسته به ولتاژ ( Voltage Dependent Resistor ) یا VDR:

وریستور یک نوع مقاومت حساس به ولتاژ است. ولتاژ و مقدار مقاومت در وریستور با هم رابطه ی عکس دارند بدین صورت که با افزایش ولتاژ دو سر قطعه ، مقاومت آن کاهش می یابد البته رفتار این قطعه خطی نیست و در قسمت هایی از نمودار در حالی که ولتاژ افزایش پیدا می کند ، جریان قابت باقی خواهد ماند. وریستور فاقد پلاریته است و می توان از آن در مدار های AC نیز استفاده نمود. از وریستور برای محافظت از مدار در برابر اور ولتاژ های ( Over Voltage ) زودگذر ناخواسته استفاده می شود. یکی از اور ولتاژ های زود گذر ، تخلیه الکتریسیته ی ساکن است ، وریستور می تواند به خوبی جریان های گذرا ( Transient ) را از خود عبور دهد بی آن که خود دچار آسیبی شود. وریستور ها دارای ولتاژ های فعال سازی ( Triger ) متفاوت هستند و انتخاب وریستور با ولتاژ تریگر مناسب ، می تواند مدار ما را در برابر برخی ولتاژ های ناخواسته محافظت نماید. از وریستور در برق قدرت و پست های نیروگاهی نیز برای حفاظت شبکه استفاده می کنند.

وریستور

مقاومت وابسته به حرارت یا ترمیستور Thermistor :

ترمیستور نیز نوعی مقاومت وابسته است که مقدار مقاومت آن با توجه به تغییرات دما ، تغییر می کند. ترمیستور ها دارای دو نوع PTC و NTC هستند.

PTC به معنی ضریب دمای مثبت ( Positive Temperature Coefficient ) می باشد و به معنی اینست که مقاومت این قطعه با افزایش دما ، افزایش می یابد.

NTC بر خلاف PTC دارای ضریب دمای منفی ( Negative Temperature Coefficient )  می باشد ، در این المان با افزایش دما ، مقاومت NTC کاهش می یابد.

در جدول زیر رابطه مقاومت بر حسب دما را در NTC و PTC به صورت تقریبی مشاهده می نمایید.

جدول مشخصه PTC و NTC

درایور موتور DC L298

 

کنترل سرعت و جهت چرخش موتور DC با AVR و L298

در این پروژه با استفاده از میکروکنترلر AVR Atmega32 و آی سی درایور موتور L298N ، پروژه ای برای کنترل سرعت موتور DC به همراه کنترل جهت چرخش موتور DC طراحی شده است. در این پروژه برای کنترل سرعت موتور از PWM میکروکنترلر استفاده شده است. علاوه بر این کلیه فرآیند ها نیز بوسیله ی میکروکنترلر ، کنترل می گردد.

آی سی L298 شامل ۲ پل H برای کنترل موتور هاست و در این پروژه تنها از یک پل استفاده شده است. این IC به سادگی و با کمترین قطعات می تواند روشن و خاموش کردن موتور را برای شما مدیریت نماید.

در این پروژه ۵ کلید نیز برای کنترل جهت چرخش موتور ، کنترل سرعت موتور DC و خاموش و روشن کردن موتور بوسیله ی AVR قرار داده شده است. که با فشردن هر یک از کلید ها برنامه به حالت وقفه می رود و سریعا دستور را اجرا می نماید. با فشردن کلید ON/OFF موتور شروع به حرکت می کند و یا از حرکت می ایستد. با فشردن کلید Right موتور DC در حالت راست گرد و با فشردن کلید Left موتور Dc در حالت چپ گرد قرار می گیرد. با فشردن کلید Speed + سرعت موتور DC افزایش می یابد و با فشردن کلید Speed – سرعت موتور DC کاهش خواهد یافت.

سرعت موتور DC بوسطه ی Timer 1 و با اعدادی بین ۰ تا ۲۵۵ کنترل می شود که بر حسب درصد بر روی LCD نمایش داده می شود. عبارت On یا Off روی LCD نشانگر وضعیت خاموش روشن بودن موتور و عبارت T:R نشانگر حالت راستگرد و T:L نشانگر حالت چپ گرد موتور است.

این پروژه به زبان C و در کامپایلر کدویژن نوشته شده است.

دانلود پروژه کنترل سرعت و جهت چرخش موتور DC با AVR و L298 به زبان C : 


دانلود فایل با لینک مستقیم

شروع کار با Keil uVision

در قسمت دوم آموزش شروع به کار با میکروکنترلر های ARM ، قصد داریم تا نحوه ایجاد یک پروژه ARM را در محیط نرم افزار KEIL توضیح دهیم.

ابتدا نرم افزار keil را باز کنید و مراحل زیر را دنبال کنید:

1-پس از باز کردن نرم افزار KEIL بر روی سربرگ Projet کلیک کنید و از منوی باز شده گزینه New µvision Project راانتخاب نمایید.

1

 

2-در پنجره باز شده پوشه ای را برای ذخیره پروژه خود انتخاب کنید.اگر پوشه ای وجود ندارد ابتدا می توانید آن را ایجاد و سپس آن را انتخاب نمایید.من در اینجا نام پوشه خود را my project انتخاب کردم.(انتخاب نام اختیاری است).

2

3- پس از انتخاب پوشه مورد نظر و فشردن دکمه Save پنجره ای نمایان می شود .در این پنجره باید نام میکروکنترلر مورد نظر خود را انتخاب کنید.من در اینجا lpc1768 را انتخاب نموده ام.

3

پس از انتخاب میکرو مورد نظر و فشردن دکمه ok نرم افزار پنجره ای را نمایش می دهد واز شما سوالی مبنی براضافه نمودن فایل ” startup_LPC17xx.s ” به پروژه می پرسد. با فشردن دکمه Yes این مورد را تایید کنید .

4

 

تا این مرحله پروژه مورد نظر ایجاد شد . فایل های پروژه را می توانید در قسمت سمت چپ انرم افزار در پنجره Project ملاحظه کنید.

8

اما پروژه به فایل های دیگری نیز نیاز دارد.هدر فایل system_LPC17xx.c را از مسیر نصب نرم افزار keil به آدرس C:\Keil\ARM\Startup\NXP\LPC17xx کپی و به پوشه پروژه خود paste کنید .توجه کنید که این مسیر برای دیگر میکروکنترلرها متفاوت می باشد .

10

پس از این کار به محیط نرم افزار keil برگردید و در پنجره Project با دوبار کلیک کردن بر روی پوشه پروژه، فایل system_LPC17xx.c را به پروژه خود اضافه کنید.

10-2

اما هنوز پروژه کامل نشده است.اگر با زبان C برنامه نوشته اید می دانید که برای نوشتن برنامه به یک تابع main() نیاز داریم تا کدهای خود را در آن بنویسیم.برای ایجاد پروژه در محیط keil نیز باید یک تابع main() ایجاد کنیم .برای اینکار از منوی فایل بر روی گزینه new file کلیک کنید و در فایل ایجاد شده کد های زیر را قرار دهید.

#include <lpc17xx.h>

int main(void)

{

;Return 0

}

11

حال از منوی File گزینه Save را انتخاب کنید وفایل را با نام دلخواه خود وبا پسوند .c در پوشه پروژه خود ذخیره کنید.این فایل را نیز مانند فایل system_LPC17xx.c به پروژه خود اضافه کنید.

 

12-2

4-در این مرحله باید تنظیمات مربوط به نرم افزار را نیز انجام دهید.برای اینکار با راست کلیک کردن بر روی پوشه اصلی پروژه در پنجره project در محیط keil گزینه option for Target.. را انتخاب کنید.

15

 

در سربرگ Target مقدار xtal(MHZ) را برروی مقدار کریستال مدار خود تنظیم کنید.

16

در سربرگ O7utput نیز گزینه Create HEX File را برای تولید فایل HEX خروجی تیک بزنید.

17

همچنین اگر از دیباگر یا پروگرمر j-link استفاده می کنید ،از سربرگ Debug گزینه use را انتخاب کنید همچنین نوع دباگر رانیز انتخاب کنید.اگر مایل به شبیه سازی نرم افزاری پروژه خود هستید از همین سربرگ گزینه Use Simulator را تیک بزنید.

حال با زدن دکمه OK پنجره Option را ببندید.

18

با زدن کلید F7 بر روی صفحه کلید و یا زدن گزینه Build target از منوی Project پروژه خود را کامپایل کنید .

19

پروژه بدون خطا باید کامپایل شود . اگر برنامه بدون خطا کامپایل شود فایل HEX برنامه با موفقیت در پوشه پروژه تولید می شود . این فایل را می توانید از طریق واسط JTAG ویا ISP بر روی میکروکنترلر مربوطه بارگزاری نمایید.با نمایش پنجره Build Output Window از منوی View می توانید از خطاهای برنامه خود با خبر شوید. البته پروژه ایجاد شده فوق به تنهایی کاری را انجام نمیدهد و شما باید کدهای برنامه خود را در تابع main() بنویسید.در پست های بعدی در مورد نوشتن برنامه در محیط keil بیشتر صحبت خواهیم کرد.

ربات مسیریاب

ربات مسیریاب چیست؟

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

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

ربات های مسیریاب ماموریت ساده ای دارند ، ” دنبال کردن خطوط ! “. این ربات های را می توان با کمترین منابع ساخت و نیازی به مهارت های الکترونیکی و برنامه نویسی بالا برای ساخت این نوع ربات وجود ندارد.

ربات مسیریاب

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

تفاوت میکروپروسسور و میکروکنترلر

تفاوت میکروکنترلر و میکروپروسسور چیست؟

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

میکروکنترلر و میکروپروسسور هر دو برای انجام عملیات پردازشی به کار می روند ، هر دو نقاط مشترک زیادی دارند و از طرفی تفاوت های شاخص و آشکاری نیز وجود دارد. به یاد داشته باشید از طریق شکل ظاهری IC و پکیج آن شما نمی توانید تشخیص دهید که قطعه میکروکنترلر است یا میکروپروسسور.هر دوی آنها در پکیج های 6 پایه تا پکیج های 80 ، یا 100 پایه و بیشتر از آن با توجه به امکاناتشان ارائه می شوند.

 

میکروپروسسور یک IC است که در داخل خود فقط دارای CPU است و فقط توان پردازش اطلاعات را دارد ، مانند CPU های پنتیوم 1,2,3,4 و core i3, core i5 اینتل  و سایر CPU هایی که می شناسید.CPU ها فاقد RAM,ROM یا سایر حافظه های جانبی به صورت داخلی هستند و طراح سیستم برای اینکه بتواند یک سیستم کارآمد طراحی نماید ، باید حافظه های جانبی مانند RAM , ROM و سایر ملزومات را به صورت خارجی به CPU متصل کند. همانند آنچه که در داخل کامپیوتر های رومیزی ، لپ تاپ ها ، نوت بوک ها ، گوشی های هوشمند جدید و … می بینیم.

 

این در حالیست که در میکروکنترلر ها قضیه طور دیگریست.میکروکنترلر دارای یک CPU است و علاوه بر آن دارای مقدار مشخصی RAM , ROM و سایر حافظه های جانبی به صورت داخلی است. میکروکنترلر ها را با نام هایی مانند میکروکامپیوتر نیز می شناسند.این روزها کارخانه های متعددی میکروکنترلر ها را با رنج گسترده ای از امکانات و قابلیت ها در انواع اندازه ها تولید می نماین. اتمل (ATMEL) ، میکروچیپ (MICROCHIP) ,فیلیپس (Philips) ، موتورولا (Motorola)، تگزاس اینسترومنتز (TI) از تولید کنندگان معروف و معتبر میکروکنترلر هستند.

میکروکنترلر ها برای انجام کارهای مشخصی طراحی شده اند. مشخص به این معنی که روابط بین پین های ورودی و خروجی همواره مشخص است. در میکرو کنترلر ها با توجه به ورودی ، پردازش هایی صورت میگیرد و خروجی حاصل می شود. برای مثال در دستگاه هایی مانند ماوس ، کیبرد ، ماشین ظرفشویی ، دوربین های دیجیتال ، ماکروویو ، اتومبیل ها ، تلفن ها ، موبایل ها ، ساعت و … از آنجا که کاربرد ها مشخص است ، به مقدار ثابت و کمتری از منابع مانند RAM,ROM , پورت های ورودی/خروجی احتیاج است و می توان از میکروکنترلر ها که دارای منابع به صورت On-Chip هستند استفاده نمود که این امر باعث ساده تر شدن طراحی مدار ، کوچک تر شدن مدار و همین طور کاهش قیمت تمام شده مدار می شود.

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

معمولا فرکانس کلاک میکروپروسسور ها بسیار بیشتر از میکرو کنترلر هاست. میکرو کنترلر هایموجود در بازار معمولا از کمتر از 1 مگاهرتز تا 30 یا 50 مگاهرتز یا در بعضی موارد بیشتر از 50MHz را پشتیبانی می کنند که بازه پشتیبانی شده توسط هرکدام از آنها متفاوت است. برای مثال میکروکنترلر Atmega32A از 0MHz تا 16MHz به صورت گارانتی شده کار میکند و میکروکنترلری مانند Atxmega128a از 0Mhz تا 30Mhz به صورت گارانتی شده کار می کند. این در حالیست که اغلب میکروپردازنده ها یا میکروپروسسور های فعلی کلاک بیش از 1Ghz دارند تا بتوانند عملیات های ترکیبی را اجرا کنند.

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

هنر طراحان مدار در یافتن بهترین گزینه برای هر طراحی است و همواره باید گزینه ای انتخاب شود که از نظر هزینه و کارآیی بهینه ترین باشد.

میکروکنترلر AVR

میکروکنترلر AVR چیست ؟

برای اینکه بتوانیم میکرو کنترلر AVR را تعریف نماییم باید در ابتدا مفهوم میکروکنترلر را درک نماییم.

میکرو کنترلر چیست ؟ 

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

میکرو پروسسور با میکروکنترلر چه تفاوتی دارد؟

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

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

میکروکنترلر AVR

میکروکنترلر AVR چیست ؟

AVR در ابتدا یک خانواده از میکروکنترلر های ۸ بیتی بود که در سال ۱۹۹۶ برپایه معماری تغییر یافته هاروارد طراحی و ساخته شد و توسط شرکت Atmel روانه بازار های جهانی شد. این میکروکنترلر یکی از پرفروش ترین میکروکنترلر ها در کل جهان به شمار می آید و تاکنون در پروژه های کثیر علمی ، تحقیقاتی و تجاری گوناگونی به کارگرفته شده است.

AVR سری های مختلفی را شامل می شود و فرآیند توسعه این خانواده از میکروکنترلر ها همچنان ادامه دارد. از شناخته شده ترین سری های AVR می توان به سری Attiny,Atmega,AtXmega اشاره نمود. در حال حاضر AVR در سری های مختلف و متنوعی با توان های پردازشی گوناگون ، ظرفیت های حافظه ای مختلف و سرعت پردازش متفاوت در بازار های جهانی موجود است. اما چیزی که در حال حاضر در کشورمان به صورت عمومی و گسترده استفاده می شود ، سری Atmega از خانواده AVR است که به علت قیمت مناسب و توان پردازش بالا مورد استقبال قرار گرفته است

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


tagحجم فایل: 406KB 
---------------------------------------------------
دانلوددانلود فایل 
---------------------------------------------------
منبعمنبع : www.bargh24.ir


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

مشخصات این منبع تغذیه به شرح زیر است :

  • ولتاژ ورودی : 24 ولت AC
  • جریان ورودی : 3 آمپر
  • ولتاژ خروجی : 0 تا 30 ولت
  • جریان خروجی : 2 میلی آمپر تا 3 آمپر

ویژگی های این منبع تغذیه :

  • ابعاد کوچک ، ساخت آسان ، عملیات ساده
  • ولتاژ خروجی به سادگی قابل تغییر است
  • محدود کردن جریان خروجی با نشانگر
  • حفاظت دستگاه از اتصال کوتاه

برای توضیحات بیشتر و دانلود فایل به ادامه مطلب مراجعه کنید...



شماتیک مدار را می توانید در تصویر زیر ببینید . برای مشاهده با وضوح بیشتر روی تصویر کلیک کنید .


همچنین پی سی بی آماده منبع تغذیه را می توانید در شکل زیر ببینید . توجه داشته باشید که سایز اصلی پی سی بی (12,5cm x 8,7cm) می باشد .


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





الیبره کردن :

برای اینکه ولتاژ خروجی دقیقا بین 0 تا 30 ولت باشد باید از یک ولتمتر دیجیتال برای کالببره کردن منبع تغذیه استفاده کنید . شما باید RV1 را طوری تنظیم کنید که وقتی P1 در کمترین مقدار خود است ولتاژ خروجی صفر ولت باشد . بهتر است رنج ولتمتر خود را روی دقیق ترین حالت قرار دهید تا دقت منبع تغذیه شما بالا رود

نکات اضافی :

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

هنگام تست مدار قلع یا تکه سیمی زیر کیت منبع تغذیه نباشد . همچنین دقت کنید میزکار شما فلزی نباشد 

شما برای ولتاژ ورودی به یک ترانسفورماتور 220 به 24 ولت احتیاج دارید . لطفا از قرار دادن مقادیر بیشتر خودداری کنید

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

از دست زدن به کیت و قطعات هنگامی که به برق متصل است خودداری کنید

از تعویض فیوز با مقادیر بالاتر خودداری کنید

از دست زدن به مدار هنگامیکه دستانتان مرطوب است خودداری کنید .

 

اگر منبع تغذیه به درستی کار نکرد !!!

لحیم کاری ها خود را چک کنید و مطمئن شوید جایی از پی سی بی بلند نشده است . همچنین تا جای ممکن از روغن لحیم استفاده نکنید که باعت اکسید شدن مس می شود

پایه بندی هایی که در شماتیک به آنها اشاره کردیم را مجددا چک کنید

مطمئن شوید قطعات را بدرستی در جای خود قرار دادید و مقدار مقاومت ها جا بجا نشده باشد

پایه بندی قطعات پلاریته دار را چک کنید

قطعاتی که آسیب دیده اند را تعویض کنید.


لیست قطعات:

 

R1 = 2,2 KOhm 1W

R2 = 82 Ohm 1/4W

R3 = 220 Ohm 1/4W

R4 = 4,7 KOhm 1/4W

R5, R6, R13, R20, R21 = 10 KOhm 1/4W

R7 = 0,47 Ohm 5W

R8, R11 = 27 KOhm 1/4W

R9, R19 = 2,2 KOhm 1/4W

R10 = 270 KOhm 1/4W

R12, R18 = 56KOhm 1/4W

R14 = 1,5 KOhm 1/4W

R15, R16 = 1 KOhm 1/4W

R17 = 33 Ohm 1/4W

R22 = 3,9 KOhm 1/4W

RV1 = 100K trimmer

P1, P2 = 10KOhm  linear pontesiometer

C1 = 3300 uF/50V electrolytic

C2, C3 = 47uF/50V electrolytic

C4 = 100nF polyester

C5 = 200nF polyester

C6 = 100pF ceramic

C7 = 10uF/50V electrolytic

C8 = 330pF ceramic

C9 = 100pF ceramic

D1, D2, D3, D4 = 1N5402,3,4 diode 2A - RAX GI837U

D5, D6 = 1N4148

D7, D8 = 5,6V Zener

D9, D10 = 1N4148

D11 = 1N4001 diode 1A

Q1 = BC548, NPN transistor or BC547

Q2 = 2N2219 NPN transistor

Q3 = BC557, PNP transistor or BC327

Q4 = 2N3055 NPN power transistor

U1, U2, U3 = TL081, operational amplifier

D12 = LED diode








و در نهایت برای راحتی کار شما تمام تصاویر را بصورت یکجا برای دانلود قرار دادیم در پایان همین مطلب میتوانید دانلود نمایید .

امیدواریم این مطلب برای شما مفید بوده باشد . لطفا از کپی برداری بدون ذکر منبع خودداری کنید .


tagحجم فایل: 250KB 

---------------------------------------------------

---------------------------------------------------

پسوردپسورد : www.techno-electro.com 

منبعمنبع : www.techno-electro.com

پروژه ولت متر با میکرو PIC




tagحجم فایل: 85KB 
---------------------------------------------------
---------------------------------------------------

پسوردپسورد : www.kcl.ir

منبعمنبع : http://forum.apek.ir

---------------------------------------------------