تو یه پروژه با ATmega16 یه دکمه وصل کردم به یکی از پایهها. وقتی دکمه فشار داده نشده، پایه بعضی وقتا خود به خود فعال میشه. مقاومت pull-down گذاشتم، درست شد. ولی تو بعضی نمونه مدارها دیدم بدون اونم کار میکنن. این مقاومت لازمه یا نه؟ چرا بعضی جاها میذارن و بعضی جاها نه؟
اگه میکروکنترلرت pull-up یا pull-down داخلی داشته باشه و فعالش کنی، نیازی به مقاومت خارجی نیست. ATmega داخلی pull-up داره ولی pull-down نه.
دقیقاً، تو ATmega باید از pull-up استفاده کنی و دکمه رو به زمین وصل کنی. اگه اون حالت برات برعکس بود، باید مقاومت pull-down خارجی بذاری.
تو ورودیهای میکرو، اگه ورودی "باز" بمونه (floating)، احتمال نویز و تریگرهای اشتباه بالاست. چه pull-up، چه pull-down، یهجوری باید حالت ثابت براش تعریف شه.
من چند بار مقاومت نذاشتم چون توی طراحی وقت کم داشتم، ولی نتیجهش تپتپ پایهها و رفتار عجیب بود. الان همیشه میذارم، مگر اینکه مدار خیلی تمیز باشه.
تجربهی من اینه که اگه پروژه battery-powered باشه، pull-down خارجی بهتره چون مصرفش کمتر از pull-up داخلی هست. ولی تو اکثر موارد فرق چندانی نمیکنه.
بهطور کلی اگه پایهای به ورودی اختصاص دادی، هیچ وقت رهاش نکن. یا مستقیم ببندش به VCC یا GND، یا یه مقاومت در حد 10k بذار برا پایداری.