نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
مهدی دمیرچیلو

آموزش جامع میکروکنترلر AVR جلسه12

به نام خدا

آموزش جامع میکروکنترلر AVR جلسه12 : اول باس بگم که این مطلب رو باید تو جلسات اولیه میگفتم که نگفتم crazy ….ولی الان میگم pardon چیکار میشه کرد آخه….بگذریم از این حرف ها….بریم سر اصل مطلب….والا تو این جلسه میخوام درمورد بحث پول اپ داخلی(INTERNAL PULL UP) صحبت کنیم….حالا پول آپ در Avr چی هستش و کارش چیه و غیره( bomb ) رو در ادامه میگم…..این مطلب هم نیخواستم بگم …. میگفتم سادس و غیره ولی بعد دیدم ملت و خودم تو کار با کیپد مشکل دارن….و بازم دیدم laugh که اگه این مطلب ساده رو بزارم برا خیلیا میتونه مفید باشه….در ضمن میشه گفت پیش نیاز مطلب کیپد هستش که چند روز دیگه میخوام بزارم تو سایت. shout
آموزش جامع میکروکنترلر AVR جلسه12

مقاومت پول اپ (PULL UP)

والا لپ کلوم این میشه : یه مقاومت که اگه به زمین وصل بشه بهش میگن مقاومت پول دان(pull down resistor)….اگه به منبع ولتاژ وصل بشه این مقاومته بهش میگن مقاومت پول آپ(pull up resistor) …. با مقاومت پول دان هم ما فعلا کاری نداریم….حالا اگه از پول آپ داخل میکرو استفاده کنی میگل پول آپ داخلی و اگه از مقاومت استفاده کنی میگن چول آپ خارجی( shock >>> laugh  ) …. خوب از اونجایی که کسی نفهمیده بریم با هم چند تا عکس ببینیم laugh
در زیر میخوام با مثال بهتون توضیح بدم….یه پروژه رو میخوام به 3 روش براتون انجام بدم…پروژه هم روشن و خاموش کردن led با دکمه(کلید) هستش….مثلا اگه فشار دادی رشن بشه و ولش کردی خاموش بشه
 

حالت1) با مقاومت پول آپ خارجی

این از مدار ما
مقاومت پول اپ

توجه مهم : تو پروتئوس کنار پایه ها معمولا یکی از 3 رنگ زیر هستش..که در زیر توضیح هر کدوم رو میبینید :
پایه آبی = ولتاژ پایه ۰ ولت است.
پایه قرمز = ولتاژ پایه ۵ ولت است.
پایه خاکستری = ولتاژ پایه نامعلوم است.
(در عکس های زیر میتونید این رنگ ها رو ببینید)
همون طور که میبینید به دکمه یه مقاومت وصل کردم که به مقاومت هم منبع ولتاژ وصل هستش >>> به این مقاومت میگن >>> مقاومت پول آپ
دلیل گزاشتن هم جلوگیری از بوجود اومدن حالت نامعلوم هستش….
مثلا فرض کنید اون مقاومته نبود چه اتفاقی میوفتاد؟؟؟ >>>بیاین با هم بررسی کنیم(در زیر وقتی میگم پایه میکرو منظورم PORTA.0 هستش) :
وقتی کلید وصله : ولتاژ 0 ولت زمین میوفته رو پایه میکرو….تو این مورد فک نکنم کسی مشکل داشته باشه(شکل بالا رو هم بیبنید بد نیست)
اما وقتی کلید قطع هستش : هیچ ولتاژی روی پایه میکرو نمیوفته ، نه 0 ولت و نه 5 ولت ….. چون چیزی به پایه میکرو وصل نیست….اون وقته که میکرو برنامه ای که بهش دادیم رو درست و بر طبق میل ما  اجرا نمیکنه. wacko ….حالا  ما میایم و اون مقاومت رو میزاریم تا وقتی که کلید قطع هستش ولتاژ منبع تغزیه سری با مقاومت بیوفته روی پایه میکرو و حالت نامعلوم پیش نیاد smile
توجه : حالا تو این حالا وقتی کلید رو فشار بدیم ولتاژ 0 ولت میوفته رو پایه میکرو و وقتی کلید رو فشار ندادیم و رو حالت عادی خودش هستش ، ولتاژ 5 ولت میوفته رو پایه میکرو.
 
اینم از کد این پروژه

چیز خاصی نداره که بخوام توضیح بدم blum
 
 

حالت2) با مقاومت پول دان خارجی

شماتیک پروژه
مقاومت پول دان
توجه: تو این حالت فرقش با این حالت قبل(با مقاومت پول آپ خارجی) اینه که تو این حالت مقاومت به زمین وصل میشه و دکمه یا همون کلید dash به منبع ولتاژ وصل میشه و بازم تو این حالت  laugh وقتی کلید رو فشار ندادیم ولتاژ 0 ولت میوفته رو میکرو و وقتی فشار میدیم ولتاژ 5 ولت میوفته رو میکرو…..(در شکل بالا همون طور که میبیند وقتی کلید وصل نیست ولتاژ 0 ولت میوفته روی پایه میکرو
 
اینم از کد این پروژه

توجه مهم : 3 کد پروژه…در هر 3 حالت رو حتما با هم مقایسه کنید….این بحث ، بحث مهمی هستش……درسته سادس ولی مهمه…جالا  کو گوش شنوا buba
 
 

حالت3) با مقاومت پول آپ داخلی

بعد کلی چرت و پرت گفتن(که لازم بود و باس میگفتم) بریم سر اصل مطلب….و هدف این مطلب آموزش AVR
توجه1 : اول کار اینو بگم که تا اونجایی که من میدونم و تست کردم مقاومت پول دان داخلی تو AVR ندارم….دیدلش رو هم نمیدنم bomb
توجه2 : این حالت مثل حالت1 (با مقاومت پول آپ خارجی) هستش…فقط با این تفاوت که دیگه اون مقاومته رو قرار نمیدیم در مدار و از طریق کدنویسی این مقاومت پول آپ رو فعال میکنیم.
 
شماتیک پروژه
آموزش AVR
همون طور که در شکل بالا میبینید…پایه های PORTA همگی قرمز هستن…یعنی ولتاژ 5 ولت روشون هستش…یعنی پول آپ داخلی شدن و در حالت عادی ولتاژ 5 ولت دارن…وقتی کلید وصل میشه ولتاژ 0 ولت میوفته رو اون پایه میکرو….که دقیقا مثل حالت1 هستش(که وقتی کلید قطع هستش ولتاژ 5 ولت مقاومت میوفته رو میکرو…یعنی حالت عادی و وقتی دکمه رو فشار میدیم ولتاژ 0 ولت مبوفته روی میکرو)….لذا تو این حالت دیگه نیاز ب گزاشتن اون مقاومته نیست ok
 
اینم از کد این پروژه

این کد رو دیگه نمیشه توضیح نداد و پیوند…اینو باس توضیح داد…
وقتی یه پورت میکرو رو (مثلا پورت A) ورودی میکنیم(با DDRA=0X00 ) ….اگه خط بعدش مثلا بنویسیم PORTA=0XFF یعنی ما اومدیم مقاومت پول آپ داخلی پورت A (تمام بایه هاش…با توجه به کد 0XFF) رو فعال کردیم…..
ولی اگه یه پورتی از میکرو رو (مثلا پورت C) خروجی تعریف کنیم و خط بعد بیایم و (مثلا) بنویسیم PORTC=0XFF (الان مقدارش 0XFF هست که کاری باهاش نداریم…همین طوری این مقدار رو دادم) تو این حالت اومدیم پایه های پورت C رو مقادر اولیه دادیم….تو این حالت با توجه به مقدار 0XFF به پایه ها مقدار 5 ولت دادم….و اگه مینوشتم 0X00 به تمام پایه ها مقدار 0 ولت میدادم….
جمع بندی : وقتی پورتی رو خروجی تعریف کنی اون وقت کار ریجستر PORT اینه که مقدار اولیه پورت رو تعیین میکنه و وقتی پورتی ورودی باشه اون وقت کار ریجستر PORT این هستش که مقاومت پول آپ داخلی برای این پورت فعال باشه یا نه(0>>> غیر فعال  —  1>>> فعال)
 

عکس زیر رو هم ببینید ظرر نداره (روش کلیک کنید و در اندازه بزرگتر ببینیدش)

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

دانلود پروژه این مطلب

 
اگه مطلب مفید بود 3 تا صلوات برا شادی روح شهدا بفرستید…..برا ظهور آقا هم دعا کنید….دیروز جشن نیمه شعبان بود…عیدتون هم مبارک give_rose
فعلا یا علی…

پسورد فایل های سایت :
www.dmf313.ir
مهدی دمیرچیلو جنگ ما فتح قدس را در پی خواهد داشت (امام خمینی) >>>>>> اگر از صدام بگذریم، اگر مسأله قدس را فراموش کنیم، اگر از جنایت های امریکا بگذریم از آل سعود نخواهیم گذشت. ان‌شاالله اندوه دلمان را را در وقت مناسب با انتقام از امریکا و ال سعود برطرف خواهیم کرد و داغ و حسرت حلاوت این جنایت بزرگ را بر دلشان خواهیم گذاشت و با برپایی جشن پیروزی حق بر جنود کفر و نفاق و آزادی کعبه از دست نااهلان و نامحرمان به مسجد الحرام وارد خواهیم شد (امام خمینی)
ارسال دیدگاه
116

1) تعداد حروف غیر فارسی از حروف فارسی بیشتر باشه دیدگاه به صورت خودکار حذف میشه.

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. Avatar

    مهمان

    شاهین

    با سلام
    دانلود پروژها چرا انجام نمیشود

    1398/01/22
    05:20
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – برای من مشکلی نداره – الان تست کردم.

      1398/01/22
      06:11
  2. Avatar

    مهمان

    احمد

    سلام
    خیلی ممنون

    1397/12/12
    12:42
  3. Avatar

    مهمان

    amir

    سلام آقای دمیرچیلو
    خسته نباشید
    مطالبتون خیلی خوبه
    1-ببخشید اونجایی که گفتید اگر مقامت پول آپ نباشه و حالت های قطع و وصل کلید رو گفتید من متوجه نشدم
    بنده راسیتش اینطوری متوجه شدم که وقتی مقاومت پول آپ نباشه
    اگر کلید باز باشه:ولتاژ vcc میفته روی پایه ی میکرو و 1 منطقی میشه
    اگر کلید بسته باشه:vcc و زمین اتصال کوتاه میشند و وضعیت نامعلومه
    2-چرا وقتی که به پایه ی میکرو چیزی وصل نیست وضعیتش نامعلومه نمیشه بگیم چون ولتاژ بهش وصل نیست پس صفر منطقیه؟
    3- ببخشید یه سوال دیگه هم داشتم وقتی که مقاومت پول آپ باشه وکلید هم وصل باشه آیا جریان از vcc هم به طرف زمین و هم به طرف میکرو میره؟
    ببخشید طولانی شد
    با تشکر از شما

    1397/11/10
    12:28
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام.

      1) عکس زیر رو ببینید : حالات وسطی ( که از مقاومت پول آپ یا دان استفاده نکردیم ) – خب وقتی کلید باز هستش – چیزی که میکرو میخونه نامعلوم هستش – بین 0 و 1 جابجا میشه همش ( وقتی کلید باز هسش / فشرده نشده ) – اگه کلید رو فشار بدیم ( ببندیم ) – مقدار gnd روی پایه میکرو میوفته و میکرو 0 میخونه.
      مقاومت پول آپ و پول دان

      2) فک کنم ( مطمئن نیستم ) وقتی پایه معلق میشه ( چیزی بهش وصل نیست ) بهش میگن “امپدانس بالا” – که نه 0 هستش و نه 1 :

      در مدارهای دیجیتال خروجی با امپدانس بالا (همچنین hi-Z یا حالت سوم (به انگلیسی: tri-stated)(اشاره به منطق سه حالته) یا شناور(به انگلیسی: floating)) هیچ سطح منقطی خاصی ندارد و نه سطح بالا به حساب می‌آید نه سطح پایین. این حالت سوم باعث می‌شود که به آن خروجی “حالت سوم” نیز بگوییم. این خروجی را می‌توان مدار باز (یا سیم “شناور”) درنظر گرفت چرا که اگر آن را به یک مدار با امپدانس بالا نیز وصل کنیم تأثیری نخواهد داشت و در عوض به ولتاژ بقیهٔ مدار خواهد رسید. ورودی‌ها و خروجی‌های خیلی از ICها قابلیت منطق سه حالته را دارند. این سیستم در گذرگاه رایانه‌ها نیز کاربرد فراوان دارد.
      منبع : امپدانس بالا

      3) یعنی شکل بالا، مورد سمت راست ( وقتی کلید وصله ) – به صورت تئوری چیزی که ما خوندیم – مستقیم میره تو gnd – چون مقاومتی سر راهش نیست…

      1397/11/10
      12:51
  4. Avatar

    مهمان

    محمدهادی

    سلام خسته نباشید چطوری می تونم تو برنامه نویسی اردوینو یونو ام برای خوندن یه مقدار ای دی سی و نمایش اون در سریال مانیتور کاری کنم که مثلا اگه پایه A5که به عنوان ورودی انالوگ ام انتخاب شده اگه به چیزی وصل نبود توی سریال مانیتور ام بنویسه FALSE
    ممنون

    1397/08/29
    03:37
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-یه راهش اینه
      یه مقاومت پول دان مثلا وصل کنی به اون پایه – تا زمانی که مقدار 0 میخونی یعنی سنسور وصل نی – زمانی که سنسور وصل بشه – یه ولتاژی میوفته رو پایه فوق که اینطوری متوجه میشی سنسور وصل شده.

      1397/08/29
      06:28
  5. Avatar

    مهمان

    سید علی

    باعرض سلام با همین دستور ddrدر زبان بسکام داخل یه برنامه میتونم یک pinیاport را هم ورودی و هم خروجی تعریف کنیم

    1397/04/25
    01:35
    • Avatar

      مهمان

      vk

      این زبان بسکام چه فرقی با C داره ؟؟ اکثر جاها من دیدم آموزش ها بر اساس زبان C هستش سخت نیست براتون؟

      1397/06/16
      10:36
      • مهدی دمیرچیلو

        نویسنده این مطلب

        مهدی دمیرچیلو

        بسکام کار نکردم ولی شما سی کار کن – اکثر چیزا با سی هستش یا زبون های مشابه سی- برنامه نویسی میکرو-موبایل-کامپیوتر و …

        1397/06/26
        02:52
  6. Avatar

    مهمان

    Suha

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

    1397/02/30
    11:28
  7. Avatar

    مهمان

    پزوفسور

    سلام
    مطلبتون مفید بود. yes خسته نباشید.

    1397/02/03
    04:50
  8. Avatar

    مهمان

    محمد

    مطالب تون عالیه . و خیلی ممنون به خاطر این مطالب مفید

    1397/01/13
    11:19
  9. Avatar

    مهمان

    سجاد

    توضیحاتت حرف نداره
    دعا میکنم همیشه سلامت باشی و پر انرژی ادامه بدی این اموزش ها رو heart

    1397/01/08
    06:13
  10. Avatar

    مهمان

    parviz

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

    1396/10/29
    08:07
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/10/29
      11:05
  11. Avatar

    مهمان

    مهیار

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

    1396/08/26
    07:24
  12. Avatar

    مهمان

    ماری

    واقعا دستتون درد نکنه…ازونجایی ک استاد بدون اینکه یاد بده تمرین میده ،خیلی کمک میکنه مطالبی که میذارید???

    1396/08/17
    03:23
  13. Avatar

    مهمان

    محمدحسین

    با سلام مهندس در مورد ارتباط شیلد اترنت با برد آردوینو مگا هم چیزی میتونید بزارید برای اینترنت اشیا ممنون میشم.
    مثال سنسور اثر انگشت هم عالی بود مثل همیشه

    1396/06/25
    08:17
  14. Avatar

    مهمان

    اکبر

    تو این زمونه که همه چی پولی شده ، شما که مطالب رو رایگان در اختیار میذارین خدا خیرتون بده good good give_rose smile

    1396/06/24
    05:34
  15. Avatar

    مهمان

    mohammad

    خدا خیرت بده اموزشات عالیههههههههههههههههههههه bye bye bye heart

    1396/06/17
    08:14
  16. Avatar

    مهمان

    نام

    اقا چون این مطلبو هیچ جا درستو حسابی ندیدم و اینجا فهمیدم قضیه چیه نظر گذاشتم دمتگرم عالی بود دیگه مشتری سایتت شدیم

    1396/05/18
    04:37
  17. Avatar

    مهمان

    mohammad

    حرف نداری آقا مهدی ، سایتت هم حرف نداره ، خیلی چیزا یادم داد . همیشه موفق باشی heart give_rose

    1396/04/22
    05:50
  18. Avatar

    مهمان

    ناشناس

    خیلی ممنون
    عالی بود. کاملا متوجه شدم. اول اومدم انگلیسی جستجو کنم کلی حاشیه رفته بود.
    بهتره اول آدم فارسی جستجو کنه. heart

    1396/04/08
    06:50
  19. Avatar

    مهمان

    mahan

    سلام
    اول واسه اموزشاتون ممنون good
    دوم اینکه چرا Atmega32 با اینکه حافظه فلش و… بیشتری نسبت بهAtmega16 داره از اون ارزونتره؟ dash

    1396/03/22
    10:07
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      بعد از اسم میکرو یه پسوندی قرار میگیره به اون توجه کن – دیتاشیتو دانلود کن و تفاوت رو بررسی کن
      مثلا +ATMEGA16A-PU از ATMEGA32A-PU گرون تره – که حالا یه مرودش بر میگرده به نسخه میکرو – که باید با توجه به پسوند میکرو – بری دیتاشیت مروبطه شونو دانلود کنی و …

      1396/03/22
      10:27
  20. Avatar

    مهمان

    mhsh

    سلام bye .مطالبتون خیلی جالب و بدرد بخور هستش good .خیلی هم باحال توضیح میدید ok .فقط یه چیزی فک کنم توی خانواده xmega که مال avr هستش هم پول آپ باشه هم پول دان+چند تا حالت دیگه mail .گفتم شاید جالب باشه blush .

    1396/03/16
    12:40
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – تو LPC هم همین طوره – چند حالت داریم – good

      1396/03/16
      02:06
  21. Avatar

    مهمان

    saeed

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

    1396/03/02
    08:49
  22. Avatar

    مهمان

    علیرضا آهنی

    سلام.
    تو دستورifچطوری بنویسیم ۲ بار؟

    1396/02/30
    06:11
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      متوجه نشدم – یعنی میگی یه IF داخل یه IF دیگه بزاریم؟

      1396/02/30
      06:45
      • Avatar

        مهمان

        علیرضا آهنی

        سلام.
        نه.
        مثلا ۲بار کلید رو زدیم یهledروشن اکه۱با زدیم خاموش .
        راهنمایی می خوام.
        نه کد نویسی.

        1396/02/31
        01:47
        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          خب یه متغییر تعریف میکنی – مقدارش رو ۰ میکنی – هر بار که کلید فشرده شد مقدارشو + ۱ کن بعد بررسی کن – هر موقع ۲ شد – کار مد نظرتو انجام بشه.
          این چیزی که تو میخوای – باید به کمک تایمر انجام بشه.

          1396/02/31
          02:25
  23. Avatar

    مهمان

    زهرا

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

    1396/02/05
    07:40
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      پروتئوس دیگه کار نمیکنم.

      1396/02/05
      08:02
    • Avatar

      مهمان

      امیراحمد

      سلام خدمت شما
      شاید یکم دیر شده باشه اما امیدوارم مفید واقع بشه.
      این فایل رو از اینجا دانلود کنید:
      http://projects.m32.ir/up/2012/08/Proteus-7-Professional_LIBRARY.rar
      دو فایل AVR.LIB و AVR.IDX رو در مسیر برنامه پروتئوس یعنی
      C:\Program Files \Labcenter Electronics\Proteus 7 Professional\LIBRARY
      بریزید و ریپلایس کنید و در هنگام شبیه سازی از میکروکنترلر جدید اضافه شده استفاده کنید
      در خط پایانی برنامه هم این دیتا رو اضافه کنید(البته من چون C بلد نیستم کد دسیمال رو میذارم)
      ۱,۲,۳,۱۰,۴,۵,۶,۱۱,۷,۸,۹,۱۲,۱۳,۰,۱۴,۱۵
      موفق باشید
      منبع:m32.ir

      1396/05/16
      05:19