تبليغاتX
کاویان الکتریک
((با ما فناوری روز را به روز تجربه کنید)) 30 سال سابقه درخشان در امر اجرایی برق
توی این فصل اولین کاری که باید بکنیم اینه که یک کابل درست کنیم تا بتونیم از کامپیوتر توی میکرو برنامه بریزیم. این کابل خیلی پیچیده نیست ولی یک کم دقت میخواد تا پایه‌های میکرو رو درست وصل کنیم. کسانی که یک کم تجربه الکترونیکی دارن حتما شنیدن یا دیدن که میکروها رو باید بوسیله یک دستگاه خاصی به اسم پروگرامر (Programmer) برنامه‌هاشون رو توش ریخت. معمولا ساخت یا خرید این دستگاهها خودشون یک داستان مفصلی دارن و خیلی‌ها از کار با میکرو به خاطر همین دنگ و فنگها صرف نظر می‌کنن. اما..... اما جناب AVR ما، علاوه بر تمام مزیت‌هایی که فصل قبل رو به خودش اختصاص داده بود، برنامه ریزیش هم یک شاهکاره. یعنی کافیه پنج تا سیم از میکرو بکشید به کامپیوتر وصل کنید تا بتونید به راحتی میکرو رو پروگرام کنید. -------------------------------------------------------------------------------- هیچ دستگاه خاصی برای پروگرام کردن میکروهای AVR احتیاج نیست. -------------------------------------------------------------------------------- ساخت کابل مخصوص پروگرام کردن میکروهای AVR برای پروگرام کردن یک میکروی AVR تنها به یک فیش پارالل (Parallel) که بهش LPT یا DB-25 هم میگن نیاز داریم. بعد باید یک سری از پایه‌های میکرو رو به پایه‌های فیش پارالل لحیم کرد. پایه‌های مورد نیاز میکرو، MISO، MOSI، SCK، RESET و پایه زمین (GND) هستند . اول از همه باید این پایه‌های میکرو رو پیدا کنید. برای این کار به Datasheet میکرو احتیاج داریم. بسته به نوع میکرویی که باهاش کار می‌کنید میتونید از سایت ATMEL دیتاشیت مورد نظر رو دانلود کنید و به پایه‌های اون میکرو نگاه کنید. من اینجا پایه‌های 2 تا میکروی معروف بازار رو که به احتمال زیاد شما باهاش کار خواهید کرد نشون دادم. شکل 2-1) پایه‌های میکروهای ATMega 8 (بالا) و میکروهای ATMega16 و ATMega32 (پایین) اگه به شکل 2-1 دقت کنید بطور مثال برای میکروی ATMega16 (و یا میکرو ATMega32 که پایه‌هاشون دقیقاً مشابه همدیگه است.) پایه‌های زیر رو احتیاج خواهیم داشت: جدول 2-1) جدول پایه‌های مورد نیاز برای پروگرام کردن یک میکروی ATMega 16 یا ATMega 32 توسط پورت پارالل پس باید این پایه‌ها رو به همین ترتیبی که نوشته شده به هم وصل کنید یعنی مثلا پایه شماره 6 میکرو که طبق شکل 2-1 پایه MOSI هست رو با یک سیم به پین شماره 2 فیش پارالل وصل کنید. دقت کنید که تمام پایه‌های 18 تا 25 فیش پارالل رو به هم وصل کنید و از یکی از اونها یک سیم بیارید و وصل کنید به پایه 11 میکرو که همزمان باید به منفی (زمین) ترانس یا منبع تغذیه میکرو وصل بشه. (شکل 2-2) در ضمن میکرو باید در زمانی که دارید پروگرامش می‌کنید روشن باشه، یعنی پایه‌های برقش (VCC و GND) به ترانس 5 ولت وصل باشه. -------------------------------------------------------------------------------- سیم برق 5 ولت به پورت پارالل نباید وصل بشه‌ها!! نکنید این کار رو، خطرناکه! نزنید کامپیوتر رو بسوزونید! -------------------------------------------------------------------------------- همونطور که در شکل 2-2 دیده میشه، برق میکرو رو جدا وصل کردیم و اون پنج تا سیم رابط بین میکرو و پورت پارالل رو هم وصل کردیم. اینطوری میکرو ما آماده پروگرام شدنه! شکل 2-2) نقشه کابل پروگرامر مخصوص میکروهای AVR (نقشه پروگرامر معروف به STK-200 ساده) توجه کنید که برای میکروهای دیگه (مثل ATMega8) شماره پایه ها فرق میکنند. باید پایه درست رو بر طبق جدول Datasheet پیدا کنید و به پورت LPT وصل کنید. در فصل بعدی برنامه نویسی و یک پروژه عملی ساده رو شروع میکنیم. -------------------------------------------------------------------------------- توجه شود که در میکروهای ATMega128 و ATMega103 به جای پایه MOSI از PDI و به جای MISO از PDO استفاده میشود.
+ نوشته شده در  یکشنبه دوازدهم خرداد 1387ساعت 1:44  توسط کاویان الکتریک  | 


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

توی چند قسمت چندین پروژه ساده و جالب رو با میکرو کنترلر درست میکنیم که به درد همه بخوره، هم نمره بگیرین و هم خودتون از اینکه یک مدار ساختین لذت ببرین.

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

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

مقدمه خوب برای بچه های خوب

میکرو چیه؟

تو فارسی ما استاد خلاصه کردن کلمه های سخت و قلمب سلمبه خارجی هستیم. میکرو در اصل خلاصه شده میکرو کنترلر (Microcontroller) هست. (بعضی وقتها به میکرو پروسسور هم میکرو میگن که یک سری تفاوت عمده داره و به درد این مطلب نمیخوره)

از وقتی الکترونیک اومد زندگی متحول شد و از وقتی IC اومد الکترونیک متحول شد!
از فرمایشات حکیم بزرگوار Lost !!

IC دیگه چیه؟

آی سی یک قطعه الکترونیکی هست که یک مدار خیلی بزرگ رو توی یک فضای خیلی کوچیک فشرده کردن و تنها سیمهای رابطش رو بیرون آوردن. مثلا فرض کنید همین CPU کامپیوتر شما که یک آی سی فسقلی هست حدود 200 میلیون قطعه مختلف توش کار گذاشته شده. حالا تعداد قطعات روی Motherboard خودتون رو بشمرید به زحمت به 1000 قطعه میرسه.

یعنی اگه قرار بود CPU شما رو توی یک بسته کوچیک جاساز نکنند، الان اندازه اون CPU در حدود یک اتاق بزرگ بود.

ما که آخرش نفهمیدیم میکرو چیه؟

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

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

معرفی جناب AVR 

شرکتهای مختلفی میکرو کنترلر درست میکنن که بعضی از معروفهاش Intel، Atmel، Microchip و چندین شرکت دیگه هستند.

الان میکروهای ارزون قیمت که در اکثر کارهای صنعتی ایران به کار میره PIC محصول Microchip و AVR محصول Atmel هستند که خیلی هم بازار رو گرفتند و کارایی بسیار خوبی هم دارند. هر کدوم از این میکروها خصوصایت ویژه خودشون رو دارن و خیلی ها هم نسبت به یکی از اینها تعصب خاصی دارن.

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

میکرو های AVR هم از نظر امکانات داخلی حرف نداره، هم زبانهای برنامه نویسی بسیار عالی براشون نوشته شده و هم حافظه های بسیار زیادی برای برنامه پذیری دارن و هم اینکه انواع مختلفی برای هر نوع کاری داره که به سادگی میشه بسته به نیاز یکی از اونها رو انتخاب کرد.

شکل 1-1 نمونه چند میکرو AVR

در شکل 1-1 به ترتیب از راست به چپ این میکروها دیده میشن:

  • میکرو ATTiny12 یکی از میکروهای بسیار کوچک AVR با امکانات بسیار بالا
  • میکرو ATMega32 یکی از پرکاربردترین میکروهای بازار ایران
  • میکرو ATMega128 یکی از قوی ترین میکروهای بازار که مخصوص کارهای صنعتیه

میکروهای AVR خیلی گرون نیستند. برای مثال میکروهای ATMega32 رو با یک جستجو در اینترنت ]1[ و ]2[ و]3[ قیمت حدود 3000 تومن رو نشون میده. البته باید خرید از بازار ارزون تر باشه. میکروی ATMega16 تقریبا مثل ATMega32 هست و قیمتش 2000 تومنه. اگه جایی برای خرید ارزونتر میشناسید معرفی کنید.

در ضمن شما یک میکرو که میخرید میتونید تا 10 هزار بار توش برنامه بنویسید و پاک کنید. (بله!10000 بار درست دیدید.) تازه اطلاعات شما داخل آی سی در حدود 100 سال بدون تغییر باقی میمونه!

خرید میکروهای ATTiny رو بهتون پیشنهاد نمیکنم، چون برنامه نویسی اونها یک سری فوت و فن خاصی میخواد که برای شروع بهتره سراغشون نرید.

یک نمونه کاربرد خیلی ساده

یک میکرو داریم و یک LED (دیود نور افشان) میکرو رو طبق جدولی که بعدا میبینید، ابتدا پایه هاش رو شناسایی میکنیم. دوتا پایه VCC و GND پایه های تغذیه اون هستند. یک ترانس 5 ولت لازمه که میکرو رو راه بندازه. + رو به VCC وصل میکنیم و GND رو به پایه منفی ترانس وصل میکنیم. LED رو هم طبق شکل، پایه بلندش که مثبت (آند) هست رو به پایه اول از بالا سمت راست میبندیم و پایه کوتاهه رو که منفی (کاتد) باشه به زمین (GND یا همون منفی ترانس) وصل میکنیم.

یعنی یک چیزی به شکل مدار 1-2 درست میکنیم.


شکل 1-2 ) مدار نمونه یک LED چشمک زن

بعد با چهار پنج خط برنامه نویسی (لیست 1-1) این LED رو بصورت چشمک زن در میاریم. یعنی هر نیم ثانیه یکبار خاموش و روشن بشه.

$regfile = "M32def.dat"
config PORTA = OUTPUT
do
       toggle PORTA
       waitms 500
loop
endش

لیست 1-1) نمونه برنامه LED چشمک زن

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

اینا که گفتم یعنی چه؟! یعنی به همین سادگی و با قطعات بسیار کمی یک مدار عملی کار میکنه.

 در مورد اینکه این چند خط برنامه چی هست وهر خط چیکار میکنه در فصل بعد توضیح میدم.

مثلا همانطور که حدس زدید دستور waitms 500 به مدت زمان 500 میلی ثانیه صبر میکنه. پس با تغییر اون میشه سرعت چشمک زدن رو تغییر داد.

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

+ نوشته شده در  یکشنبه دوازدهم خرداد 1387ساعت 1:13  توسط کاویان الکتریک  |