صفحه 2 از 3

Re: آموزش AVR

ارسال شده: سه‌شنبه ۱ مرداد ۱۳۹۲, ۱۰:۴۱ ب.ظ
توسط sinaset
سلام خدمت اقا مهدی عزیز.

خسته نباشید ، :razz:

اقا مهدی یک سوال ، به نظر شما بهتر نیست بجایی ساخت پروگرامر iSP ، مدل usb اون رو بسازیم ؟ (با توجه به اینکه پورت پرینتر دیگه قدیمی شده و مادربردهای جدید کمتر این پورت رو پشتیبانی می کنند و..)
باتشکر. :razz:

Re: آموزش AVR

ارسال شده: چهارشنبه ۲ مرداد ۱۳۹۲, ۴:۰۶ ق.ظ
توسط Mahdi Mahdavi
sinaset, عزیز سلام. :razz:
فکر خوبیه ولی به دو علت اول خواستم پروگرامر isp رو طریقه ساختش رو قرار بدم. هم اینکه جنبه آموزشی بیشتری داره و هم ارزان تر ساخته میشه. و میشه اون رو بدون برد مسی PCB ساخت ولی پروگرامر USB به علت اینکه پیچیده تره نیاز به بورد داره.
خودم چون این پروگرامر رو خریداری کردم نمیتونم بسازم ولی نقشه و وسایل لازم رو در دو سه پست آینده قرار میدم.
" یه نقشه به همراه فایل درایور و ... دیدم که به نظر پروگرامر جالبی میومد.

با تشکر از پیشنهاد خوبتون. :razz:

Re: آموزش AVR

ارسال شده: دوشنبه ۷ مرداد ۱۳۹۲, ۸:۴۵ ب.ظ
توسط Present
Mahdi Mahdavi, سلام خسته نباشی
می دونم که وقتی ادم سرش شلوغه سخته که مطلب آموزشی بذاره ولی ما هنوز منتظر ادامه مطلب هستیم فعلا تا چراغ چشمک زن با موفقیت پیش رفتیم تا بقیه ببینیم چی می شه ، از اونجایی که اکثرا رشته کامپیوتری ها دنبال این موضوع هستند و شما هم که حرف نداری ادامه این مطلب در همچنین انجمنی واقعا خوبه
با تشکر منتظر ادامه هستیم

Re: آموزش AVR

ارسال شده: سه‌شنبه ۸ مرداد ۱۳۹۲, ۱۱:۰۹ ب.ظ
توسط Mahdi Mahdavi
Present, عزیز سلام. نظر لطفتونه .ممنون.
تاخیر به خاطر اینه که دنبال یه نرم افزار خوب هستم برا طراحی شماتیک و ... .
برای شماتیک قبلی با Eagle کار کردم . نرم افزار جالبی نیست به نظرم. رابط کاربری خیلی بدی داره .برای شماتیک قبلی دو ساعت زمان برد.
نرم افزار جدیدی تهیه کردم. Altium Designer که اون هم به نظر برای FPGA کاربرد داره. البته دارم روش کار میکنم. هنوز زیاد باهاش کار نکردم.
رو این حساب این پست رو بدون شماتیک قرار میدم. انشاالله اگر تونستم شماتیک رو در پست بعد قرار میدم.
از هر گونه پیشنهاد نرم افزار برای شماتیک در تاپیک سوالات و اشکالات AVR یا بصورت پیغام خصوصی استقبال خواهد شد. تصویر

خب. میریم سر ادامه کار.
پروژه یک LED پروژه بسیار ساده ای بود. حالا کمی گسترش میدیم پروژه رو . 8 LED داریم و یک بازر . LED ها به پورت A و بازر به یک پین از پورت D متصل میشه " پورت ها مثال هستند و شما میتونید به هر پورتی که میخواهید متصل کنید. ولی در متن برنامه هم کمی باید تغییر بدید"
حالا اگر LED ها رو از 1 تا 8 نامگذاری کنیم پروژه به این صورت میشه که ال ای دی ها به ترتیب زیر روشن میشه و بازر عمل میکنه
1 و 8 - 2 و 7 - 3 و 6 - 4 و 5
BUZZER
4 و 5 - 6 و 3 - 7 و 2 - 8 و 1
یا به این صورت
[External Link Removed for Guests]
متن برنامه بسیار راحته. برای صدا کردن بازر هم کافیه پایه ای که بازر بهش متصله رو یک کنیم.
یک راهش اینه که پورت ها رو یکی یکی خاموش و روشن کنیم
Please Login or Register to see this code
ولی نوشتن همین متن بالا با استفاده از سیستم دو دویی خیلی راحت تره. میشه:
Please Login or Register to see this code
چون در روش قبلی برای روشن کردن هر سری دو تایی LED نیازه که اون دوتایی که در استپ قبلی روشن کردیم خاموش کنیم.ولی در این روش نیازی به این کار نیست.
پس از اینکه ال ای دی های 4 و 5 رو هم روشن کردیم باید همزمان بازر رو هم روشن کنیم.
یعنی بخشی از برنامه یه این صورت میشه "فرض بر اینه که بازر به پایه هشتم از پورت D متصله
Please Login or Register to see this code
در تکه برنامه بالا همزمان با یک کردن پایه های 4 و 5 پورت A یعنی همون LED های 4و5 پایه هشتم پورت D رو یک میکنیم "در سیستم دو دویی مقدار معادل بیت هشتم 128 هست" و پس از تاخیر دوباره پورت متصل به بازر رو صفر میکنیم.

میشه با ترتیب های مختلف صفر و یک کردن پورت ها رقص نورهای مختلفی ایجاد کرد.
فایل های پروژه در پست بعدی قرار میگیره.
در پست بعدی با 7segment ها کار میکنیم.
Please Login or Register to see this code

Re: آموزش AVR

ارسال شده: چهارشنبه ۹ مرداد ۱۳۹۲, ۱۱:۲۷ ب.ظ
توسط electro_officer
سلام
آقا پروگرامر رو که نمیسازن باید بری بازار بخریش! :grin: من حدودا دو سه ساله پروگرامر stk500 شرکت نوآوران رو خریدم هیچ مشکلی تا حالا نداشتم. دوستانی که میخوان AVR کار کنند بهتره حتما نرم افزار ساده و قدرتمند پروتئوس رو یاد بگیرند. با این نرم افزار میشه پروژه رو قبل از ساخت شبیه‌سازی کرد خیلی نرم‌افزار مهمی هست.
راستی اگر مشکلی بود و کمک خواستید میتونید رو من حساب کنید. :m:a

Re: آموزش AVR

ارسال شده: پنج‌شنبه ۱۰ مرداد ۱۳۹۲, ۱۲:۱۵ ق.ظ
توسط Mahdi Mahdavi
electro_officer نوشته شده:سلام
آقا پروگرامر رو که نمیسازن باید بری بازار بخریش! :grin: من حدودا دو سه ساله پروگرامر stk500 شرکت نوآوران رو خریدم هیچ مشکلی تا حالا نداشتم. دوستانی که میخوان AVR کار کنند بهتره حتما نرم افزار ساده و قدرتمند پروتئوس رو یاد بگیرند. با این نرم افزار میشه پروژه رو قبل از ساخت شبیه‌سازی کرد خیلی نرم‌افزار مهمی هست.
راستی اگر مشکلی بود و کمک خواستید میتونید رو من حساب کنید. :m:a



دوست عزیز سلام. تصویر

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

2- ساختن پروگرامر مثلا USB حداکثر 15.000 تومان در میاد . "البته کمتر از ایناس" و همون پروگرامری که با این هزینه میسازیم برای تهیه آماده اش باید 30.000 تومان پرداخت کنیم.

هر چند به دوستان پیشنهاد کردیم که خرید اون بی دردسر تره ولی باز هم آموزشش ضرری نداره .
از هر گونه کمک و همکاری استقبال خواهد شد ! تصویر با تشکر از شما

Re: آموزش AVR

ارسال شده: پنج‌شنبه ۱۰ مرداد ۱۳۹۲, ۵:۱۳ ق.ظ
توسط electro_officer
آره ساختنش تجربه‌ی خوبی هست و بسیار مفید. اگر حوصلش رو دارید حتما اینکارو بکنید منتهی مدل USB به نظرم بسیار مناسب‌تر هست. البته ساختش ریسک هم داره اگر جواب نده پولتون بر باده! ::ns
ولی اگر بخواید حرفه‌ای کار کنید و واقعا برا شغل وارد این عالم بشید یه سری پروگرامرهای یونیورسال هست که خیلی محشرند از اونا بخرید عالیه البته اینم بگم قیمتشون هم محشره ها. :eek:

Re: آموزش AVR

ارسال شده: شنبه ۱۲ مرداد ۱۳۹۲, ۱۱:۲۶ ق.ظ
توسط sinaset
electro_officer نوشته شده:البته ساختش ریسک هم داره اگر جواب نده پولتون بر باده! ::ns
:eek:


سلام بر شما .

من برعکس شما فکر می کنم ،یک تجربه و علم جدید. انرژی که الکی تلف بشه ، بر باده .

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

باتشکر.تصویر

Re: آموزش AVR

ارسال شده: شنبه ۱۲ مرداد ۱۳۹۲, ۳:۱۶ ب.ظ
توسط electro_officer
بعله ایشون که کارشون بیسته. خدا خیرشون بده ایشالا این تاپیک باقیات الصالحات بشه براشون. اجازه بدید بنابر تجربه‌ی شخصیم دو تا کتاب خوب معرفی کنم:
برا برنامه نویسی سی این کتاب عالیست! بهترینه در واقع: تصویر 
[External Link Removed for Guests]

برا خود AVR این کتاب رو پیشنهاد میکنم: تصویر 
[External Link Removed for Guests]

برا کشیدن شماتیک و شبیه سازی برنامه‌ها نرم‌افزار قدرتمند Proteus رو پیشنهاد میکنم: تصویر 
[External Link Removed for Guests]

یه روزه میتونید یادش بگیرید. سراغ هیچ برنامه‌ي دیگه‌ای نمیخواد برید این برنامه مهم ترین نقطه قوتش شبیه سازی میکرو هست بچه‌ها. کتاب نمیخواد براش بخرید فایل آموزشش تو نت فک و فراوونه. اینم فایل آموزشی فارسی:
[External Link Removed for Guests]

یه برنامه مشابه برنامه‌ای که دوستمون ارائه کردند.
پورت سی رو همونطور که آقا مهدی فرمودند خروجی تعریف کنید. این کد رو امتحان کنید:
Please Login or Register to see this code

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

Re: آموزش AVR

ارسال شده: شنبه ۱۲ مرداد ۱۳۹۲, ۴:۳۷ ب.ظ
توسط Mahdi Mahdavi
sinaset, ,   , عزیز ممنونم تصویر


سون سگمنت:
سون سگمنت ها یا 7-segment نوعی نمایشگر برای اعداد هست که در انواع مختلف در بازار پیدا میشه.تکی . دوتایی . وجه تسمیه این نامگذاری اینه که این نمایشگر برای نمایش اعداد از 7 عدد LED استفاده میکنه به علاوه یک LED به عنوان ممیز یا Dot point در مدل های متداول موجود در بازار.
[External Link Removed for Guests]

این قطعه در دو نوع عمده کاتد مشترک و آند مشترک پیدا میشه که نوع کاتد مشترک مورد نظر ماست.
[External Link Removed for Guests]
در تصویر بالا pinout یا اطلاعات پایه های این قطعه رو مشاهده میکنید.
LED ها از a تا g نامگذاری شده و پایه هار مربوط به اون هم مشخص شده.
برای نمایش یک کاراکتر خاص "اصولا اعداد و هگزا عدد "عدد در مبنای 16" باید تعدادی از این LED ها رو همزمان روشن کنیم. مثلا
[External Link Removed for Guests] [External Link Removed for Guests]
این کار رو به راحتی میشه در میکرو کنترلر انجام داد منتها اول مراحلی داره.
میشه پایه های روشن رو به دو صورت دو دویی یا در مبنای دو "مانند قبل" یا در مبنای 16 به میکرو کنترلر بفهمونیم.
به چه صورت؟
ابتدا پایه های سون سگمنت رو به ترتیب a b c d به پایه های مثلا پورت A متصل میکنیم.
پایه a سون سگمنت به PA0 یا اولین پایه پورت A
پایه b سون سگمنت به PA1
و الی اخر تا پایه g به PA6 و دو پایه کاتد داریم. اتصال یک عدد از اون به زمین مدار کافیه و پایه dot point یا همون ممیز هم استفاده نمیشه
در بخش زیر برای نمونه نشون دادیم که برای نمایش دو عدد صفر و یک کدام پایه ها باید یک بشن
Please Login or Register to see this code
تبدیلات مبنا ها رو به راحتی در ماشین حساب مهندسی یا کامیپوتر میتونید انجام بدید.
حالا ما باید اول این پایه ها و مبنا ها رو مشخص کنیم و بعد اون رو در EEPROM میکرو فلش بزنیم .
میتونیم این کار رو هم نکنیم و در طول برنامه این مقادیر رو استفاده کنیم.
ولی در قطعه برنامه زیر میبینید که این کار با معرفی پایه ها به حافظه EEPROM چقدر راحت میشه.
همچنین این کار بهانه ای هست که با این حافظه بیشتر آشنا بشیم.
پایه های روشن در مبنای 16 برای نمایش هگزا عدد به این صورته
Please Login or Register to see this code
برای اینکه کامپایلر بفهمه که داریم اعداد رو در مبنای شانزده HEX معرفی میکنیم باید کاراکتر صفر ایکس رو اول اون بیاریم. برای مثال
to show "1" use 0x06
to show "8" use 0x7F
معرفی کد به حافظه میکرو:
حالا برای معرفی متغیر به حافظه EEPROM هم از دستور flash در کدویژن استفاده میکنم.
flash char digits[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71
ما در این قطعه کد "16" کاراکتر رو به حافظه EEPROM معرفی کردیم. با قطع شدن جریان برق میکرو این کد های معرفی شده در حافظه پایدار میمونه .مثل حافظه فلش که برنامه رو داخلش فلش کردیم.
حالا برای فراخوانی هرکدام کافیه به روش زیر عمل کنیم.

برای مثال با دستور
Please Login or Register to see this code
اعداد صفر و یک روی سون سگمنت به نمایش در میاد.
حالا برای راحتی کار از روشی که   , عزیز گفتند استفاده میکنیم. به قطعه کد زیر توجه کنید:

Please Login or Register to see this code
در قطعه کد بالا مانند کاری که  , در قطعه کدشون انجام دادند به جای اینکه هر بار یک ثابت رو برای پورت تعیین کنیم یک متغیر تعیین کردیم و

مقدار اون متغیر رو تغییر دادیم.

قطعه کد بالا برابر با کد زیر هست:
Please Login or Register to see this code
تعداد خطوط این برنامه به این روش چهار برابر اینی هست که الان بالا نوشتم. پس میبینید که معرفی کردن کاراکتر به حافظه EEPROM خیلی راحته و برنامه نویسی رو راحت میکنه

[/I]نکته:
میشه پایه ها رو به ترتیب 1 2 3 ... یا هر ترتیب دیگه هم به میکرو کنترلر متصل کرد. در این صورت کد های مورد نیاز برای فلش در EEPROM متفاوت از اینی هست که اینجاست.

انشاالله در پروژه بعدی یکی از دو مورد زیر رو پی میگیریم:
استپ موتور
دماستج با حسگر lm35 و نمایش دما روی LCD 2*16

Re: آموزش AVR

ارسال شده: پنج‌شنبه ۱۷ مرداد ۱۳۹۲, ۸:۱۰ ب.ظ
توسط Mahdi Mahdavi
سلام دوستان.
مدتی به دلیل یک امتحان سخت کمتر در خدمتتون هستم. و دیر تر آپدیت میشه.
پست بعدی به زودی طی دو سه روز آینده ارسال میشه. انشاالله بعد از امتحان فاصله زمانی آپدیت کمتر میشه.

عید همگی هم مبارک باشه. التماس دعا :razz: :razz:

Re: آموزش AVR

ارسال شده: چهارشنبه ۲۳ مرداد ۱۳۹۲, ۱۰:۰۷ ق.ظ
توسط sinaset
سلام بر اقا مهدی عزیز.
عید شما هم مبارک ، و اکنون 6 روز از تاریخ پست شما میگذرد .. :shock:
کجایی اقـــــــــــــــا ؟؟؟!!!
:D :razz: