پروژه راه اندازی ماژول MAX6675 توسط برد AVR Wizard

 پروژه راه اندازی ماژول MAX6675 توسط برد AVR Wizard

راهنما راه اندازی ماژول MAX6675 توسط برد AVR Wizard

هدف از این آموزش چگونگی برقراری ارتباط با یک سنسور دیجیتال و راه اندازی یک LCD می باشد

در نهایت شما قادر خواهید بود ماژول max6675 را راه اندازی کرده و دمای اندازه‌گیری شده را بر روی LCD نمایش دهید.

لوازم مورد نیاز :

  1. برد AVR Wizard
  2. ماژول max6675
  3. پروگرامر MKII
  4. منبع تغذیه 6-12 ولتی

مقدمه:

ترموکوپل (Thermocouple) یک سنسور تشخیص دمای ترمو-الکتریکی مدار-بسته شامل دو سیم غیر هم جنس است، که در یک انتها به هم متصل شده‌اند. زمانیکه دما در یک سمت با دما در سمت دیگر تفاوت داشته باشد یک جریان الکتریکی در مسیر برقرار می‌شود. به این پدیده اثر سیبک گفته می‌شود که اساس کار ترموکوپل‌ها می‌باشد.

ترموکوپل‌ها دارای انواع مختلفی (تیپ‌ها) برای اندازه‌گیری دما هستند. به‌طور مثال انواع R – S – B با قابلیت اندازه‌گیری دما در محدوه ۲۰۰- الی ۱۸۰۰ و انواع L – K- J با قابلیت اندازه‌گیری دما در محدوده ۱۸۰- الی ۱۰۰۰ درجه سلسیوس بکار می‌روند.

ترموکوپل‌ها در صنعت دارای کاربردهای بسیاری هستند. از جمله مهم‌ترین کاربردها در صنایع تولید لوازم گرمازا است. مثلاً از ترموکوپل برای ایمنی تجهیزات گازسوز وقتی شعله گاز به دلایلی (از جمله باد) خاموش می‌گردد و برای قطع‌کردن گاز استفاده می‌شود.

ماژول max6675 یک مبدل آنالوگ به دیجیتال 12 بیتی برای ترموکوبل‌های سری K می‌باشد. این ماژول دارای تقویت کننده داخلی است و قادر است دمای “0” تا “1023.75” درجه سانتی‌گراد را با رزولوشن 0.25 درجه سانتی‌گراد انداز‌ه‌گیری نماید.

این ماژول به صورت سریال داده را منتقل می‌کند؛ به این صورت که با صفر کردن پایه CS، تبدیل داده توسط ADC متوقف شده و با اعمال پالس-ساعت به پایه SCK، داده آماده شده روی خط SDO منتقل می‌شود. دیتای خروجی 16 بیت است که بیت‌های 3 تا 14، دیتای مربوط به دمای ترموکوبل را در بر می‌گیرند. همچنین بیت 2 نشان دهنده قطع یا وصل بودن ترموکوبل می‌باشد (در صورت قطع بودن ترموکوبل، “1” می‌باشد).

max6675

توضیحات برنامه:

ابتدا در CodeVision یک پروژه جدید ایجاد کنید.

پروژه جدید در CODE VISION

سپس ورودی و خروجی‌ها، LCD و Chip مربوطه را تعیین کنید.

تعیین ورودی و خروجی LCD و CHIP در CODE VIsion .

پس از ذخیره و تولید فایل‌ها، وارد محیط برنامه نویسی می‌شویم.

متغیرها و توابع مورد نیاز را در ابتدای برنامه تعریف می‌کنیم.

#include <stdlib.h>
#include <delay.h>
#include <stdint.h>

// Declare your global variables here
float temp_c,temp_f;
uint16_t temp;
int8_t i;
char lcd_data[15];

قبل از ورود به حلقه اصلی برنامه، می‌توانید نوشته دلخواهتان را بر روی LCD به نمایش درآورید

lcd_clear();
lcd_gotoxy(6,0); //line 1, char 6
lcd_printf("KEI");
lcd_gotoxy(6,1); //line 2, char 6
lcd_printf("CAN");
delay_ms(3000);
lcd_clear();

سپس وارد حلقه اصلی برنامه شده و طبق الگوی ذکر شده در دیتاشیت ماژول max6675، دیتا را دریافت می‌کنیم و به دو مقدار درجه سانتی‌گراد و درجه فارنهایت تبدیل می‌کنیم. در نهایت این دو مقدار را بر روی LCD نشان می‌دهیم.

PORTB.4=0; //cs pin go to low   
        delay_ms(10);
        temp=0;
        for (i=15; i>=0; --i)
        {
                PORTB.7=1;
                
                if (PINB.6==1) {
                //set the bit to 0 no matter what
                temp |= (1 << i); 
                }  
                delay_ms(1);
                PORTB.7=0;  
                delay_ms(1);
              
        }
        PORTB.4=1; //cs pin go to high 
        if((temp & 0x04))
        { 
         lcd_clear();
         lcd_gotoxy(0,0);
         lcd_printf("  Input Error! ");
        }  
        else{
                temp=temp/8; // >>3  
                temp_c=(float)(temp)*.25;
                temp_f=temp_c*(9/5)+32;
                lcd_clear(); 
                lcd_gotoxy(0,0);
                lcd_printf("T= ");
                ftoa(temp_c,2,lcd_data); // Convert integer to string
                lcd_puts(lcd_data); //display temperature value in °C    
                lcd_printf(" 'C ");   
                lcd_gotoxy(0,1); 
                lcd_printf("T= ");
                ftoa(temp_f,2,lcd_data); // Convert integer to string
                lcd_puts(lcd_data); //display temperature value in °F     
                lcd_printf(" 'F "); 
      }  
        delay_ms(1000);
      }

نتیجه:

تشخیص-قطعی-ترموکوبل

نمایش-دمای-محیط

 

zahra_ahmadi

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

10 + پنج =