چه سنسوری میخوای استفاده کنی؟؟؟
یه سرچ ساده هم بزنی کلی مطلب هست
... و (بدانید) گرفتن تصمیمهاى محکم (براى رسیدن به اهداف بزرگ) با خوش گذرانى و سفرهآهاى رنگین سازگار نیست و چه بسیار که خواب شبانه تصمیمهاى محکم روز را از میان برده و تاریکیآها، خاطره همتآهاى بلند را از یادها محو کرده است. (نهجآالبلاغه، خطبه211)
امام علی (ع):کسی که به وقت یاری رهبرش در خواب باشد، با لگد دشمنش بیدار می شود (غررالحکم،ص 422)
سلام
مقدار خروجی سنسور رو باید با ADC بخونید و بعد عددش رو کالیبره کنید و دمارو ازش بدست بیارید و بعدش تبدیلش کنید به رشته که رو LCD نمایشش بدین.
کجاشو مشکل داری؟
کدویزارد کدویژن کارو خیلی راحت کرده.
به سادگی میتونی راه اندازیش کنی.
خب سنسور شما خروجی آنالوگ داره (البته بعد از راه اندازی)
شما نمی تونید مقدار آنالوگ رو به CPU میکروکنترلر بدین چون اونو نمیفهمه. بخاطر اینکه دیجیتاله.
بنابراین اولین کاری که می کنید اینه که باید خروجی آنالوگ سنسورتون رو تبدیل به یه مقدار دیجیتال بکنید. این کارو بوسیله ADC میکرو انجام میدین.
واحد ADC یه مقداری رو لازم داره که به عنوان مرجع ولتاژ در نظر بگیره تا مقدار ولتاژ ورودی رو بتونه با اون مقایسه کنه و حاصل این مقایسه رو به دیجیتال تبدیل کنه.
ولتاژ مرجع تووی میکرو میتونه از چند طریق تامین بشه:
1) استفاده از ولتاژ مرجع داخلی (2.56 ولت)
2) استفاده از مرجع +5 ولت از طریق پایه AVCC
3) استفاده از ولتاژ مرجع خارجی از طریق پایه AREF
برای استفاده از هرکدوم از مرجع ها باید مدار راه انداز مورد نیازش رو هم تامین کنی.
تصویر پایین مربوط میشه به مدار راه انداز برای گزینه های 1 و 2 :
حالا لازمه که تووی کدویزارد ADC رو فعال کنی و گزینه مربوط به ولتاژ مرجع رو هم روی AVCC بذاری تا ولتاژ مرجع 5 ولت انتخاب بشه.
تا اینجا حله؟
حالا میتونی از طریق تابع read_adc() مقدار ولتاژ ورودی رو به دیجیتال بخونی:
[code=c]temp = read_adc(0);[/code]
به عنوان مثال در خط بالا مقدار ولتاژ از روی پایه ADC2 خونده میشه و در temp ذخیره میشه. این مقدار یه عدد هستش بین 0 تا 1023
الان لازمه که کالیبره بشه و به دما تبدیل بشه که باید از روی دیتاشیت سنسورتون رابطه بین ولتاژ خروجی و دما رو بدست بیارید. (البته برای این سنسور شما باید رابطه بین تغییرات دما و تغییرات مقاومت رو پیدا کنید و بعد بر حسب ولتاژ محاسبش کنید.)
بعد از اینکه مقدار دمای بدست اومده کالیبره شد. الان لازمه که روی LCD نمایشش بدین. اول LCD رو تووی کدویزارد فعال می کنید و پورت مورد نظرتون رو برای اتصال LCD تعیین میکنید بعد از این دستورا برای نمایش دما روی LCD استفاده می کنید:
[code=c]itoa(temp,str);[/code]
[code=c]lcd_gotoxy(0,0);[/code]
[code=c]lcd_puts(str);[/code]
[code=c]lcd_putsf(" "[/code]
ضمنا برای استفاده از تابع itoa لازمه که کتابخونه stdlib رو ضمیمه فایلتون کنید.
و اینکه str رو از نوع آرایه کاراکتری تعریف کنید. مثلا این شکلی:
[code=text]char str[15];[/code]
دیدگاه