ዝርዝር ሁኔታ:

የሙቀት ዳሳሽ (LM35) ከ ATmega32 እና ከ LCD ማሳያ ጋር መገናኘት - አውቶማቲክ የደጋፊ ቁጥጥር 6 ደረጃዎች
የሙቀት ዳሳሽ (LM35) ከ ATmega32 እና ከ LCD ማሳያ ጋር መገናኘት - አውቶማቲክ የደጋፊ ቁጥጥር 6 ደረጃዎች

ቪዲዮ: የሙቀት ዳሳሽ (LM35) ከ ATmega32 እና ከ LCD ማሳያ ጋር መገናኘት - አውቶማቲክ የደጋፊ ቁጥጥር 6 ደረጃዎች

ቪዲዮ: የሙቀት ዳሳሽ (LM35) ከ ATmega32 እና ከ LCD ማሳያ ጋር መገናኘት - አውቶማቲክ የደጋፊ ቁጥጥር 6 ደረጃዎች
ቪዲዮ: BTT SKR2 - Extruder and cooling fan automation 2024, ህዳር
Anonim
የሙቀት ዳሳሽ (LM35) ከ ATmega32 እና ከ LCD ማሳያ ጋር መገናኘት | አውቶማቲክ የደጋፊ ቁጥጥር
የሙቀት ዳሳሽ (LM35) ከ ATmega32 እና ከ LCD ማሳያ ጋር መገናኘት | አውቶማቲክ የደጋፊ ቁጥጥር

የሙቀት ዳሳሽ (LM35) ከ ATmega32 እና ከ LCD ማሳያ ጋር መገናኘት

ደረጃ 1

በዚህ ፕሮጀክት ውስጥ የሙቀት ዳሳሽ (LM35) ከ AVR ATmega32 ማይክሮ መቆጣጠሪያ እና ከ LCD ማሳያ ጋር እንዴት እንደሚገናኝ ይማራሉ።

ከዚህ ፕሮጀክት በፊት ስለሚከተሉት መጣጥፎች ይወቁ

በአቪ ስቱዲዮ ውስጥ የኤልሲዲ ቤተ -መጽሐፍት እንዴት እንደሚታከል | avr ማይክሮ መቆጣጠሪያ ትምህርት

ለኤዲሲ መግቢያ በ AVR ማይክሮ መቆጣጠሪያ | ለጀማሪዎች

የሙቀት ዳሳሽ (LM35) ታዋቂ እና ዝቅተኛ ዋጋ የሙቀት ዳሳሽ ነው። በውሂብ ሉህ እንደተገለጸው ቪሲሲው ከ 4 ቮ እስከ 20 ቮ ሊሆን ይችላል። አነፍናፊውን ለመጠቀም በቀላሉ ቪሲሲን ከ 5 ቮ ፣ GND ወደ መሬት እና መውጫውን ከ ADC (ከአናሎግ ወደ ዲጂታል መቀየሪያ ሰርጥ) ያገናኙ።

ውጤቱ በአንድ ዲግሪ ሴንቲግሬድ 10MilliVolts ነው። ስለዚህ ምርቱ 310 ሜጋ ከሆነ ታዲያ የሙቀት መጠኑ 31 ዲግሪ ሲ ነው። ይህንን ፕሮጀክት ለመሥራት የኤ.ቪ.ኤስ.ዲ.ዲ.ን ማወቅ እና እንዲሁም ኤልሲዲ መጠቀም አለብዎት። ከ voltage ልቴጅ አንፃር ነው

5/1024 = 5.1mV በግምት

ስለዚህ የ ADC ውጤት ከ 5.1mV ጋር የሚዛመድ ከሆነ ማለትም የኤዲሲ ንባብ ከሆነ

10 x 5.1mV = 51mV

ተግባሩን adc_result (ch) በመጠቀም የማንኛውንም የኤዲሲ ሰርጥ ዋጋ ማንበብ ይችላሉ።

ATmega8 በሚሆንበት ጊዜ የሰርጥ ቁጥር (0-5) የት ነው። የ LM35 ን መውጫ ወደ ADC ሰርጥ 0 ከተገናኙ ከዚያ ይደውሉ

adc_result0 = adc_read (0);

ይህ የአሁኑን የ ADC ን ንባብ በተለዋዋጭ adc_value ውስጥ ያከማቻል። የ ADC እሴት ከ0-1023 ሊደርስ ስለሚችል የ adc_value የውሂብ አይነት int መሆን አለበት።

እንዳየነው የኤ.ዲ.ሲ ውጤቶች በ 5.1mV ውስጥ እና ለ 1 ዲግሪ ሲ የ LM35 ውፅዓት 10mV ነው ፣ ስለዚህ 2 አሃዶች = 1 ዲግሪ።

ስለዚህ ሙቀቱን ለማግኘት adc_value ን ለሁለት እንከፍላለን

የሙቀት መጠን = adc_result0 /2;

በመጨረሻም ማይክሮ መቆጣጠሪያው በ 16X2 ፊደላት ኤልሲዲ ውስጥ ሙቀቱን በዲግሪ ሴንቲግሬድ ያሳያል።

ደረጃ 2 የወረዳ ዲያግራም

የወረዳ ዲያግራም
የወረዳ ዲያግራም

ደረጃ 3 - ፕሮግራም

#ifndef F_CPU

#ጥራት F_CPU 1600000UL

#ኤንዲፍ

#ያካትቱ

#ያካትቱ

#LCD/lcd.h ን ያካትቱ

ባዶነት adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ኤዲሲ የ 128 ን አንቃ እና ተጠባባቂ

ADCSRA = (1 <

}

// የአድክ ዋጋን ያንብቡ

uint16_t adc_read (uint8_t ch)

{

// ተጓዳኝ ሰርጡን ይምረጡ 0 ~ 7

ቸ & = 0b00000111; // እና ከ 7 ጋር ክወና

ADMUX = (ADMUX & 0xF8) | ምዕ;

// ነጠላ ልወጣ ይጀምሩ

// ለ ADSC '1' ይጻፉ

ADCSRA | = (1 <

// ልወጣ እስኪጠናቀቅ ድረስ ይጠብቁ

// ADSC እንደገና '0' ይሆናል

ሳለ (ADCSRA & (1 <

መመለስ (ኤዲሲ);

}

int ዋና ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int ሩቅ;

የቻር ቋት [10];

// adc እና lcd ን ያስጀምሩ

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // ተሳዳቢ

lcd_clrscr ();

lcd_gotoxy (0, 0);

_ መዘግየት_ms (50);

ሳለ (1)

{

adc_result0 = adc_read (0); // የማስታወቂያ እሴት በ PA0 ያንብቡ

temp = adc_result0/2.01; // የሙቀት መጠንን መፈለግ

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0 ፣ ቋት ፣ 10); // የ ADC እሴት ያሳዩ

// lcd_puts (ቋት);

lcd_gotoxy (0, 0);

ኢዮዋ (የሙቀት መጠን ፣ ቋት ፣ 10);

lcd_puts ("Temp ="); // የማሳያ ሙቀት

lcd_puts (ቋት);

lcd_gotoxy (7, 0);

lcd_puts ("C");

ሩቅ = (1.8*ሙቀት) +32;

lcd_gotoxy (9, 0);

ኢዮዋ (ሩቅ ፣ ቋት ፣ 10);

lcd_puts (ቋት);

lcd_gotoxy (12 ፣ 0);

lcd_puts ("F");

_ መዘግየት_ኤምኤስ (1000);

ከሆነ (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("ደጋፊ በርቷል");

PORTB = (1 <

}

ከሆነ (ቴምፕ <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

ደረጃ 4: ኮድ ያብራሩ

እርስዎ እንደሚያውቁ ተስፋ አደርጋለሁ ኤዲሲን እንዴት ማንቃት እንደሚቻል እና የሙቀት መጠኑ ከ 30 ዲግሪ በላይ ከሆነ እና አድናቂው በሚበራበት ጊዜ በዚህ ኮድ ውስጥ ከአቪ ማይክሮ መቆጣጠሪያ ጋር LCD ን እንዴት እንደሚገናኝ እና በሚመራ ማሳያ FAN ላይ እና የሙቀት መጠኑ ከ 30 በታች ከዚያ ደጋፊ መሆኑን ማየት ይችላሉ። ጠፍቷል እና FAN OFF ን ማየት ይችላሉ

ደረጃ 5 - ሙሉውን ፕሮጀክት ማውረድ ይችላሉ

እዚህ ጠቅ ያድርጉ

የሚመከር: