ايران ويج

نسخه‌ی کامل: switch
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام

من یه مدار سوییچ بستم. عکسش رو گذاشتم . . .
اینم کدش :
کد:
#include <mega32.h>

void main()
{
DDRA.0 = 0;
PORTA.0 = 1;

DDRA.1 = 1;
PORTA.1 = 0;

while(1)
{
PORTA.1 = PINA.0;
}
}

همون اول ال ای دی روشن میشه و سوییچ رو که ببندم ال ای دی خاموش میشه. چطور میشه برعکسش کرد ؟ یعنی با بستن سوییچ ال ای دی روشن بشه.

یه توضیح هم در مورد ورودی میدین ؟ DDRA.0 رو 0 گذاشتم تا به عنوان ورودی تعریف بشه. حالا 0 یا 1 بودن PORTA.0 چه فرقی می کنه ؟ منظورم اینه که وقتی ورودی تعریف کردیم (با DDR) بعد 0 یا 1 PORT چه تغییری رو اون pin میده ؟
تواین مدار اگه PORTA.0 رو برابر 0 قرار بدم هیچ فرقی نمیکنه !

ببخشید تازه کارم !
راستی در مورد اون مقاومت 10 کیلو و ولتاژ 5 ولتی که به پایه 0 A داده شده توضیح میدین ؟ کارش چیه ؟

با proteus امتحان کردم اگه اون ولتاز 5 ولت رو از اون بالا حذف کنم بازم مدار کار میکنه (البته در حالت PORTA.0 = 1) ولی اگه PORTA.0 = 0 باشه بدون اون 5 ولت کار نمیکنه.

کلا در مورد این مدار توضیح بدین. Biggrin ! اصلا از این ورودی هیچی نفهمیدم!

ممنون . . .
اون مقاومت ده کیلو رو نباید حذفش کنید. لازمه. در اصطلاح به این مقاومتا بسته به اینکه به 0 یا 5 وصل باشه پول داون یا پول آپ میگن. اگه اونو حذفش کنید شاید یه لحظه درست عمل کنه ولی زیاد نمیشه روش حساب کرد و مشکل ایجاد میکنه.

برای برعکس شدن حالت کار ال ای دی هم از چندین روش میتونین استفاده کنین:
1) یا جای 0 و 1 ها رو تو پورت A عوضشون کنیدو همزمان موقعیت سوئیچ و مقاومتو جابجا کنید. یعنی سوئیچ به 5 ولت وصل بشه و مقاومت به زمین
2) زبان c رو نمیدونم . از معادل دستور Toggle بیسیک تو زبان c استفاده کنید
3) همون برنامه رو داشته باشین ولی از یه ترانزیستور مثبت تو پایه ال ای دی استفاده کنید
سلام
میشه یه شرط هم قرار داد :
(if(PORTA.1 = 1
{
PORTA.1 =0;
}
سلام

می خوام مفهومی بفهمم . . . Biggrin

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

اصلا تو اون مداری که من گذاشتم اون مقاومت مهمه یا اون 5 ولت ؟ من فکر میکردم اون 5 ولت نقش اصلی رو داره! مگه مقاومت چیکار میتونه بکنه ؟!

وقتی سوییچ بسته بشه پایه آی سی هم به 5 ولت وصله هم به زمین !! این یعنی چی ؟! مگه میشه ؟! جریان از کجا به کجا مبره ؟!

وقتی یه پایه رو ورودی تعریف کردم (با DDR) بعد از این که مدار رو وصل کردم در چه حالتی port اون پایه صفر و در چه حالتی 1 میشه ؟ البته احتمالا سوالم اشتباه باشه. یعنی باید بپرسم بعد از تعریف ورودی در چه حالتی PIN پایه 0 و در چه حالتی 1 میشه! فکر میکنم 1nafat هم می خواست اینو بگه! با الهامی که از کدش گرفتم کد خودمو اینطوری تغییر دادم و همونی که می خواستم شد!
کد:
#include <mega32.h>

void main()
{
        DDRA.0 = 0;
        PORTA.0 = 1;
        
        DDRA.1 = 1;
        PORTA.1 = 0;
        
        while(1)
        {      
                if (PINA.0 == 0)
                {
                        PORTA.1 = 1;
                }
                else
                {
                        PORTA.1 = 0;
                }
        }
}

نقل قول: 1) یا جای 0 و 1 ها رو تو پورت A عوضشون کنیدو همزمان موقعیت سوئیچ و مقاومتو جابجا کنید. یعنی سوئیچ به 5 ولت وصل بشه و مقاومت به زمین
درسته. جواب داد. ولی می خوام بدونم دقیقا چه اتفاقی میفته؟ تو این حالتی که شما گفتی بنظر میرسه وقتی سوییچ پایین باشه فرقی با مداری که من گذاشتم نمیکنه ! یعنی واقعا اون مقاومت ایتقد مهمه ؟!

ببخشید سوالام زیاد شد! خواهش می کنم کمکم کنید را بیفتم ! فک میکنم این مفاهیم پایه ای و ساده که برام جا بیفته با سرعت بیشتری پیش برم! خیلی بده رو اینا مشکل دارم ؟! نه؟!
مرسی . . .
(۱۴-تير-۱۳۸۸, ۱۱:۵۵:۵۶)Sp!d3rm4n نوشته است: [ -> ]سلام
می خوام مفهومی بفهمم . . . Biggrin
پول آپ و پول دان دقیقا یعنی چی؟

آقا مهرداد توضیحات خوبی دادن


http://forum.iranled.com/showthread.php?tid=13332



(۱۴-تير-۱۳۸۸, ۱۱:۵۵:۵۶)Sp!d3rm4n نوشته است: [ -> ]اصلا تو اون مداری که من گذاشتم اون مقاومت مهمه یا اون 5 ولت ؟
هر دوتاش. 5 ولت واجبه مقاومت مستحب. اما احتیاط واجب اینکه از مقاومت هم استفاده کنین.

(۱۴-تير-۱۳۸۸, ۱۱:۵۵:۵۶)Sp!d3rm4n نوشته است: [ -> ]وقتی سوییچ بسته بشه پایه آی سی هم به 5 ولت وصله هم به زمین !! این یعنی چی ؟! مگه میشه ؟! جریان از کجا به کجا مبره ؟!
نه همچی چیزی نیست. قرار شد جای مقاومت و سوئیچ عوض بشه
(۱۴-تير-۱۳۸۸, ۱۶:۵۸:۰۴)mehrdadgh نوشته است: [ -> ]سلام
دوست عزیز من فکر کنم که شما مقاومتهای pull up رو با مقاومتی که به ال ای دی سری میشه اشتباه گرفتید که باید عرض شود مقاومت pull up برای نگه داشتن سیگنال ورودی به میکرو در سطح منطقی یک (+5v) و مقاومت های pull down هم برای نگه داشتن پایه های میکرو در سطح منطقی صفر هستش و این مقاومت ها درسته که قرار دادنشون اجباری نیست اما بهتره هر وقت خواستی یه کلیدی رو تعریف کنی ( یا یه ورودی ) اونا رو بزاری چون ممکنه در اثر نویز یا عدم ثبات ولتاژ ورودی و ... سطح سیگنال ورودی که قراره +5 ولت (یک منطقی ) باشه ، کاهش پبدا کنه که با استفاده از مقاومت های pull up و یا در موقعی که قراره ورودی تون به سطح منطقی صفر حساس باشه سطح سیگنال افزاریش پیدا کنه که در این صورت استفاده از مقاومت های پایین کش( pull down) میتونه مشکل رو حل کنه!!
اگه به شکل زیر دقت کنی می بینی که پایه میکرو ابتدا در سطح منطقی یک (+5v) هستش و اگه کلید فشرده بشه جریان از مقاومت عبور نمیکنه و به سطح منطقی صفر (0v) میرسه! (pull up)
[تصویر:  33xzmh0.jpg]
خیلی خیلی ممنونم از مهرداد عزیز.
هنوز یکم برام گنگه!
دوستان اگه میشه به تک تک سوالایی که تو هر پست میپرسم جواب بدین! واقعا رو همه اینایی که میپرسم مشکل دارم! خیلی عذاب میکشم! خواهش میکنم از این جهل بیرونم بیارید !

ببینید من یه پایه رو با 0 کردن DDR ورودی تعریف میکنم. الان 0 یا 1 کردن PORT این پایه دقیقا چیکار میکنه؟ تا اونجایی که من میدونستم اگه 1 بشه یه مقاومت داخلی پول آپ به پایه وصل میشه. ولی اینی که آقای مهرداد گفت مقاومت بیرونه ! مگه مقاومت های پول دان و پول آپ مربوط به خود آی سی نیستن؟!
اون توضیحی هم که تو شکل دادین مربوط به شکل راسته یا چپ؟ میشه در مورد اون یکی هم بگین؟ و مسیر دقیق جریان در حالت های مختلف . . .

نقل قول: نه همچی چیزی نیست. قرار شد جای مقاومت و سوئیچ عوض بشه
خوب همون میشه دیگه! هم به 5 ولت وصل میشه هم زمین ! فکر میکنم اگه مسیر دقیق جریان رو در حالت های مختلف بگین مشکلم حل بشه.
ببینید تا حالا من چی فهمیدم : (خواهش میکنم درست بودنش رو تایید کنید! Biggrin)
یه پایه رو با 1 کردن DDR خروجی تعریف میکنم.
اگه PORT این پایه رو 1 کنم آی سی به اون پایه جریان مثبت میده. یعنی اگه پایه مثبت ال ای دی رو به اون پایه آی سی و منفی ال ای دی رو به زمین وصل کنم روشن میشه. (درسته؟)
اگه PORT اون پایه رو 0 کنم اون پایه به زمین وصل میشه. یعنی اگه پایه منفی ال ای دی رو به اون پایه آی سی و مثبت ال ای دی رو به مثبت منبع وصل کنم روشن میشه. (درسته؟)

یه پایه رو با 0 کردن DDR ورودی تعریف می کنم.
اگه PORT پایه رو 1 کنم. یه مقاومت داخل آی سی به پایه و به مثبت 5 ولت وصل میشه.(درسته؟) در این حالت دستور PIN مقدار 1 رو بر میگردونه. (درسته؟) اگه اینا درسته حالا اگه پایه رو به زمین وصل کنم چه اتفاقی میفته؟ جریان کدوم طرف میره. ببنید تا حالا منظورم این مدار بود :
[تصویر:  1.jpg]
حالا اون مقاومت و 5 ولت خارجی رو هم به مدار اضافه میکنم. یعنی این شکل :
[تصویر:  2.jpg]
در مورد این چی ؟ چه اتفاقی میفته؟


اگه PORT اون پایه ورودی رو 0 کنم اون پایه با یه مقاومت داخل آی سی به زمین وصل میشه. (درسته؟) حالا اگه اون پایه رو به +5 ولت وصل کنم جریان برقرار میشه و PIN مقدار 1 برمیگردونه! (درسته؟)



اصلا دستور PIN بر اساس چی 0 یا 1 برمیگردونه؟ به چی بستگی داره ؟ دقیقا چه حالتی 0 و چه حالتی 1 ؟

دعاتون میکنما ! Biggrin
نقل قول: ببینید من یه پایه رو با 0 کردن DDR ورودی تعریف میکنم. الان 0 یا 1 کردن PORT این پایه دقیقا چیکار میکنه؟
پول آپ داخلی رو فعال می کنه !

نقل قول: اون توضیحی هم که تو شکل دادین مربوط به شکل راسته یا چپ؟
چپ

نقل قول: یه پایه رو با 1 کردن DDR خروجی تعریف میکنم.
اگه PORT این پایه رو 1 کنم آی سی به اون پایه جریان مثبت میده. یعنی اگه پایه مثبت ال ای دی رو به اون پایه آی سی و منفی ال ای دی رو به زمین وصل کنم روشن میشه. (درسته؟)
اگه PORT اون پایه رو 0 کنم اون پایه به زمین وصل میشه. یعنی اگه پایه منفی ال ای دی رو به اون پایه آی سی و مثبت ال ای دی رو به مثبت منبع وصل کنم روشن میشه. (درسته؟)
درسته

نقل قول: یه پایه رو با 0 کردن DDR ورودی تعریف می کنم.
اگه PORT پایه رو 1 کنم. یه مقاومت داخل آی سی به پایه و به مثبت 5 ولت وصل میشه.(درسته؟) در این حالت دستور PIN مقدار 1 رو بر میگردونه. (درسته؟)
درسته

نقل قول: اگه اینا درسته حالا اگه پایه رو به زمین وصل کنم چه اتفاقی میفته؟
خوب ورودی میکرو رو زمین کردین و جریان ناچیزی از مقاومت پول آپ می گذره !

نقل قول: اصلا دستور PIN بر اساس چی 0 یا 1 برمیگردونه؟ به چی بستگی داره ؟ دقیقا چه حالتی 0 و چه حالتی 1 ؟
بستگی به ورودی داره .
اگه پول آپ فعال نباشه و پایه آی ول باشه نویز برق شهر رو می گیره و اگه پول آپ فعال در حالت بدون اتصال یک رو می گیره !

مهندس شکل ها نیومد !
شکل ها درست شد . . . میشه یه نگاه دیگه بندازی . . .
نقل قول: خوب ورودی میکرو رو زمین کردین و جریان ناچیزی از مقاومت پول آپ می گذره !
در این حالت دستور PIN مقدار 0 برمیگردونه. (درسته؟) این شکل رو میگم
[تصویر:  1.jpg]

پس اون مقاومت و 5 ولت مثبت تو شکل دوم برای چیه ؟! همون که آقای مهرداد در موردش صحبت کرد و گفت بهتره حذف نشه . . .
نقل قول: در این حالت دستور PIN مقدار 0 برمیگردونه. (درسته؟) این شکل رو میگ
اگه کلید فشار داده شده باشه صفر رو بر می گردونه !


نقل قول: پس اون مقاومت و 5 ولت مثبت تو شکل دوم برای چیه ؟
خوب اونجا بجاش از پول آپ خارجی استفاده شده !
و مثل قبلی اگه کلید رو فشار دهیم صفر رو بر می گردونه !

البته وقتی پول آپ داخلی داریم دلیلی وجود نداره که مدار رو بزرگ کنیم !