با توجه به فرمایش جناب حاجی زاده، نوع ترموکوپل مهمه، که اکثر ترموکوپلهای بازار از نوع K هستند، حالا بسته به نوع ترموکوپل یه جدول داره که ولتاژ دو سر ترموکوپل به ازای درجه سانتیگراد بر حسب میلی ولت در اون ذکر شده که با سرچ تو گوگل به راحتی پیدا میشه، اما چون مقادیر مندرج در جدول در حد میلی ولت هستند استفاده از op_amp اجتناب ناپذیره،مسئله مهمه دیگه در ترموکوپلها،دمای نقطه اتصال سرد(COLD JUNCTION) هست که مربوط به دمای محل اتصال سیمهای ترموکوپل به ترمینال مدار شماست، در حالت کلی باید بوسیله یک سنسور دمایی مثلا LM35 دمای ترمینال گرفته بشه و این مقدار از مقدار خونده شده توسط ترموکوپل کسر بشه، البته این مرحله توسط نرم افزار هم رفع شدنیه،تمام مراحل گفته شده در آیسی AD595 و AD594 در نظر گرفته شده و خروجی این آیسی 10 میلی ولت به ازای هر درجه سانتیگراد تغییر میکنه.موفق باشید
من یه مدار که میخواستم ازش بسازم ماله چین بود قسمت ترموکوپل که به پایه ADC0 میکرو M32میره رو در آوردم روی دستگاه که تا 200 سانتیگراد کار کرده با خطای 1 درجه بود . ببینید چه جوره یا چیزی درست هست روش کار کنم لطفان نظر بدین
http://www.pic.iran-forum.ir/images/r2llv17vspeyqxi5bday.bmp
دایی جان یه توضیح مفصل میدین ممنون میشم چه نرم افزاری چه سخت افزاری
وقتی داخل میکرو پ امپی برای تقویت گذاشتند، من چی بگم دایی جان؟!
کافیه دو سر ترموکوپل رو به پایه های ADC0 و ADC1 میکروی ATmega16 وصل کنی و یه خط برنامه زیر رو بنویسی:
ADMUX=203
شما که مایه داری و می خوای پ امپ خارجی استفاده کنی. تازه LM324 که با مقاومت های کناریش دقت دما رو برباد میده.
با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.
دایی جان بعداز این دستور چیکار کنم از کجا بخونم دمارو
حتما برای راه اندازی ADC پایه AVCC , AGND رو با استفاده از یک فیلتر LC به تغذیه میکرو وصل بکنید.
تقویت کننده داخلی وقتی که میکرو در مد دیفرانسیلی قرار داره قابل استفاده اس. متاسفانه تا جائی که من میدونم بسکام برای این مد دستوری در نظر نگرفته!!!
واسه همین مجبورید مستقیما با رجیسترهای مخصوص بخش ADC کار بکنید(زیاد سخت نیس )
با توجه به توضیحات داده شده شما وقتی ADMUX = 203 باید پایه مثبت رو به ADC1 و پایه منفی رو به ADC0 وصل بکنید. بهره تقویت کننده داخلی برای این حالت 200برابر می باشد.
نوع ولتاژ مرجع مورد استفاده ولتاژ 2.56 ولت داخلی انتخاب شده و نیازی به اعمال ولتاژ رفرنس داخلی به پایه Aref ندارید.فقط شما اجازه ندارید پایه AREF روآزادبگذارید و طبق توصیه دیتا شیت این پایه رو با یک خازن 100 نانوفاراد زمین بکنید.
داخل بسکام
یک متغییر دو بایتی تعریف بکن
dim adc_result as word
بعد از Start ADC هر جائی برنامه که خواستین محتوای رجیستر دیتای ADC یعنی به صورت زیر بخونید.
adc_result = adc
ممکنه یه چند تا مشکل کوچولو داشته باشی که اونم وقتی سرت اومد حلش میکنیم :mrgreen:
مقایسه کننده نه دایی جان. این تقویت کننده است که بصورت دیفرانسیلی(تفاضلی) کار می کنه. یعنی ولتاژ پایه ADC0 رو از ولتاژ پایه ADC1 تفریق می کنه و ضربدر 200 میکنه.
مقایسه کننده داخلی میکرو قسمت مستقلیه.
با تشکر از دایی رضا با توضیحات فولش
با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.
حتما برای راه اندازی ADC پایه AVCC , AGND رو با استفاده از یک فیلتر LC به تغذیه میکرو وصل بکنید.
تقویت کننده داخلی وقتی که میکرو در مد دیفرانسیلی قرار داره قابل استفاده اس. متاسفانه تا جائی که من میدونم بسکام برای این مد دستوری در نظر نگرفته!!!
واسه همین مجبورید مستقیما با رجیسترهای مخصوص بخش ADC کار بکنید(زیاد سخت نیس )
با توجه به توضیحات داده شده شما وقتی ADMUX = 203 باید پایه مثبت رو به ADC1 و پایه منفی رو به ADC0 وصل بکنید. بهره تقویت کننده داخلی برای این حالت 200برابر می باشد.
نوع ولتاژ مرجع مورد استفاده ولتاژ 2.56 ولت داخلی انتخاب شده و نیازی به اعمال ولتاژ رفرنس داخلی به پایه Aref ندارید.فقط شما اجازه ندارید پایه AREF روآزادبگذارید و طبق توصیه دیتا شیت این پایه رو با یک خازن 100 نانوفاراد زمین بکنید.
داخل بسکام
یک متغییر دو بایتی تعریف بکن
dim adc_result as word
بعد از Start ADC هر جائی برنامه که خواستین محتوای رجیستر دیتای ADC یعنی به صورت زیر بخونید.
adc_result = adc
ممکنه یه چند تا مشکل کوچولو داشته باشی که اونم وقتی سرت اومد حلش میکنیم :mrgreen:
با سلام
ممنون از توضیحات کاملاتان،اگر امکان دارد این مبحث را برای زبان سی در codvision بیشتر توضیح دهید
با سپاس
نادانترین مردم کسانی هستند که فکر می کنند داناترین آنها هستند.
دیدگاه