وبلاگ آموزشی جم ترونیک

آموزش راه اندازی max6675 با avr

آموزش راه اندازی max6675 با avr

ماژول ترموکوپل max6675 یک سنسور تشخیص دمای ترموالکتریک مدار بسته از دو سیم غیرمشابه است که در یک انتها به هم متصل هستند. هنگامی که دمای یک طرف با دمای طرف دیگر متفاوت است، جریان الکتریکی در مسیر برقرار می‌شود. این پدیده را اثر سیبک می نامند که اساس کار ترموکوپل‌ها را تشکیل می‌دهد. این ماژول را می‌توان با برد avr Wizard راه اندازی کرد تا دمای اندازه‌گیری شده بر روی LCD نمایش داده شود. در این بررسی به طور کامل در مورد راه اندازی ترموکوپل با avr صحبت می‌کنیم. اگر میخواهید بدانید ماژول الکترونیکی چیست کلیک کنید.

نحوه اندازی max6675 با avr

ماژول max6675 یک مبدل 12 بیتی آنالوگ به دیجیتال برای ترموکوپل های سری K است. این ماژول دارای تقویت کننده داخلی است و قادر خواهد بود دما را از «صفر» تا «1024» درجه سانتی‌گراد با وضوح 0.25 درجه سانتیگراد اندازه گیری کند. این ماژول داده‌ها را به صورت سریالی انتقال می‌دهد.

با صفر قرار دادن پایه CS، تبدیل داده توسط ADC متوقف شده و با اعمال پالس ساعت به پایه SCK، داده‌های آماده شده روی خط SDO منتقل می‌شود. داده‌های خروجی 16 بیت است و بیت‌های 3 تا 14 شامل داده‌های مربوط به دمای ترموکوپل خواهند بود. همچنین بیت 2 نشان می‌دهد که آیا ترموکوپل قطع شده یا وصل شده است.

لوازم مورد نیاز برای راه اندازی max6675 با avr عبارتند از:

  •     ماژول و سنسور ترموکوپل MAX6675 تایپ K
  •     میکروکنترلر Atmega8
  •     نمایشگر LCD کاراکتری 16×2
  •     پتانسیومتر 5 کیلو اهم

مشخصات سنسور ترموکوپل MAX6675 تایپ  Kبه شرح زیر است:

  •     ولتاژ مورد نیاز: 3 تا 5.5 ولت DC
  •     جریان: جریان ماژول 50 میلی‌آمپر
  •     پروتکل ارتباطی: SPI

برای خرید میکروکنترلر AVR کلیک کنید.

مراحل راه اندازی max6675 با avr

پایه های ماژول ها و قطعات استفاده شده را به صورت زیر به پین های میکروکنترلر ببندید:

MAX6675 :

SCK: PB7 (Pin 13)
CS: PB2 (Pin 11)
SO: PB4 (Pin 14)

LCD:
RS: PD0 (Pin 2)
EN: PD1 (Pin 3)
D4-D7: PD4-PD7 (Pins 6-9)

Potentiometer:
ADC0 (Pin 23)

* کد زیر بر اساس پین های فوق نوشته شده است.

 

دمای کار ترموکوپل max6675 بین صفر تا 1024 درجه سانتی‌گراد است. دقت اندازه گیری ماژول برابر با 0.25 و دقت اندازه گیری ترموکوپل برابر با 8 LSB است. این ماژول برای مصارف صنعتی مناسب است. معمولاً سنسور توسط یک کابل با پوشش حرارتی ویژه به ماژول متصل می‌شود.

برای خرید پتانسیومتر از جم ترونیک کلیک کنید.

کد AVR در کدویژن (CodeVision)

باید کدها را در نرم افزار کدویژن تهیه و پروگرام کنید. برای ایجاد پروژه کدویژن جدید، پس از باز کردن نرم افزار کدویژن، از منوی File گزینه New و سپس Project را انتخاب کنید. پیام باز شده از شما می‌پرسد که آیا می‌خواهید از بخش کدویزارد استفاده کنید. صفحه باز شده در نرم افزار کدویژن مربوط به آدرس ذخیره سازی پروژه است. ابتدا محل ذخیره سازی مورد نظر را انتخاب کرده و سپس نامی برای پروژه تعیین کنید.

کد AVR در کدویژن (CodeVision)

در این صفحه از کدویژن باید مدل میکروکنترلر خود را انتخاب کنید. برای مثال Atmega8 را انتخاب کنید و سپس OK را انتخاب کنید. قسمت پایین مربوط به فایلی است که کدهای پروژه در آن ذخیره شده است. در قسمت C Compiler از منوی باز شده به تنظیماتی مانند تغییر مدل میکروکنترلر، کریستال و غیره دسترسی دارید که با انتخاب گزینه OK پروژه در نرم افزار کدویژن ایجاد شده و آماده کدنویسی می‌شود.

پس از اتمام کدنویسی، از منوی Project گزینه Compile را انتخاب کنید. اگر خطایی مشاهده نکردید، از همان منوی Project در نرم افزار کدویژن گزینه Build All را انتخاب کنید. به طوری که برنامه به زبان ماشین ترجمه شده و در فایلی با پسوند hex ذخیره می‌شود. در این قسمت از آموزش کدویژن، برنامه نویس را به سیستم متصل کنید. میکروکنترلر را به درستی روی پروگرامر قرار دهید. سپس نرم افزار میکروکنترلر را باز کرده و از منوی Buffer گزینه Load Buffer را انتخاب کنید.

در صفحه باز شده باید فایل hex مربوط به برنامه را انتخاب کنید سپس به محل ذخیره پروژه رفته و از پوشه Debug داخل پوشه Exe فایل با پسوند hex را انتخاب کنید. توجه داشته باشید که فیوز بیت های آی سی به طور پیش فرض روی یک مگاهرتز تنظیم شده اند. پس اگر برنامه را در نرم افزار کدویژن با کریستال 8 مگاهرتز کامپایل کرده‌اید. در قسمت Fuses باید فیوز بیت‌ها را روی 8 مگاهرتز تنظیم کنید.

انتخاب مدل میکروکنترلر در کد ویژن

پس از انجام مراحل بالا گزینه Auto Program را انتخاب کرده و منتظر بمانید تا آی سی برنامه ریزی شود. اکنون آی سی میکروکنترلر AVR برای استفاده در مدار آماده است. پس از ایجاد یک پروژه جدید در نرم افزار CodeVision، کدهای ترموکوپل max6675 زیر را در آن کپی کنید. سپس تراشه میکروکنترلر Atmega8 را برنامه ریزی کنید.

جهت تهیه و خرید نمایشگر LCD کلیک کنید.

تحلیل کد پروژه ترموکوپل max6675

ابتدا کتابخانه‌های مورد نیاز به برنامه اضافه شده است. سپس LCD روی پورت D تنظیم می‌شود. ما یک متغیر برای ذخیره دما و یک رشته برای پیکربندی LCD تعریف کردیم. تابع read_temp یک تابع خروجی است. در داخل این تابع تنظیمات پروتکل SPI برای ماژول ترموکوپل max6675 انجام شده است و خروجی این تابع دمای اندازه گیری شده توسط ماژول خواهد بود.

در داخل تابع اصلی، ابتدا پورت B به عنوان ورودی و خروجی در صورت نیاز برای اتصال به ماژول تعریف می شود و سپس پروتکل SPI فعال می‌شود. در داخل حلقه بی‌نهایت ابتدا دما از تابع read_temp خوانده می‌شود و سپس داخل LCD نمایش داده خواهد شد. هنگام برنامه ریزی کد روی میکروکنترلر AVR، فیوز بیت‌ها را روی کریستال خارجی تنظیم کنید. سپس وارد حلقه اصلی برنامه شده و طبق الگوی ذکر شده در دیتا شیت ماژول Max6675 داده‌ها را دریافت کرده و به دو مقدار درجه سانتیگراد و درجه فارنهایت تبدیل می‌کنیم. در نهایت این دو مقدار روی LCD نشان داده می‌شود.

کلام آخر

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

 

بازگشت به لیست

5 دیدگاه در “آموزش راه اندازی max6675 با avr

  1. احمد گفت:

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

    1. پشتیبان جم ترونیک گفت:

      یا سلام و وقت بخیر کدها داخل مقاله برای استفاده قرار داده شده است

  2. علیرضا گفت:

    درود و تشکر از آموزش شما
    این کتابخانه LCD در برنامه را از کجا اضافه کنیم به برنامه؟
    شما برنامه را برای اتمل نوشتید بعد از کدویژن استفاده کردید ؟
    با تشکر

    1. پشتیبان جم ترونیک گفت:

      سلام و وقت بخیر اگر از کد ویژن استفاده کنید نیاز به اضافه کردن کتابخانه ال سی دی ندارید و پیشفرض داخل خودش قرار داره فقط نیاز هست که در ابتدای کد نویسی فراخوانی بشه.

      موفق باشید.

  3. علی گفت:

    با درود

    در دیتاشیت نوشته شده دقت 12 بیتی، ودر قسمت دیگر نوشته دقت 8 بیتی !!
    چرا 8 بیت جهت دریافت دما خوانده میشود در حالیکه در دیتاشیت هم 12 بیت خروجی اطلاعات رو مشخص کرده؟

    با تشکر

دیدگاهتان را بنویسید