Innehållsförteckning:

Temperatursensor (LM35) Gränssnitt med ATmega32 och LCD -skärm - Automatisk fläktkontroll: 6 steg
Temperatursensor (LM35) Gränssnitt med ATmega32 och LCD -skärm - Automatisk fläktkontroll: 6 steg

Video: Temperatursensor (LM35) Gränssnitt med ATmega32 och LCD -skärm - Automatisk fläktkontroll: 6 steg

Video: Temperatursensor (LM35) Gränssnitt med ATmega32 och LCD -skärm - Automatisk fläktkontroll: 6 steg
Video: Temperature Sensor(LM35 ) Interfacing with ATmega32 and LCD Display| Automatics Fan Controll 2024, Juli
Anonim
Temperatursensor (LM35) Gränssnitt med ATmega32 och LCD -skärm | Automatisk fläktkontroll
Temperatursensor (LM35) Gränssnitt med ATmega32 och LCD -skärm | Automatisk fläktkontroll

Temperatursensor (LM35) Gränssnitt med ATmega32 och LCD -skärm

Steg 1:

I det här projektet kommer du att lära dig hur du kopplar en temperatursensor (LM35) till AVR ATmega32 mikrokontroller och LCD -display.

Innan detta projekt behöver du Lär dig mer om följande artiklar

hur man lägger till lcd -bibliotek i avr studio | avr mikrokontroller handledning

introduktion till ADC i AVR Microcontroller | för nybörjare

Temperatursensor (LM35) är en populär och billig temperatursensor. Vcc kan vara från 4V till 20V enligt specifikationen i databladet. För att använda sensorn ansluter du bara Vcc till 5V, GND till Ground och Out till en av ADC (analog till digital omvandlarkanal).

Utgången är 10MilliVolts per grad Celsius. Så om utgången är 310 mV så är temperaturen 31 grader C. För att göra detta projekt bör du vara bekant med ADC för AVR och även använda LCD Så Upplösningen för AVR ADC är 10bit och för referensspänning använder du 5V så upplösningen när det gäller spänning är

5/1024 = 5,1 mV ungefär

Så om ADC: s resultat motsvarar 5,1 mV, dvs. om ADC -avläsning är

10 x 5,1 mV = 51 mV

Du kan läsa värdet på valfri ADC -kanal med funktionen adc_result (ch);

Där ch är kanalnummer (0-5) vid ATmega8. Om du har anslutit LM35 -utgången till ADC -kanal 0, ring sedan

adc_result0 = adc_read (0);

detta kommer att lagra den aktuella ADC -avläsningen i variabeln adc_value. Datatypen adc_value bör vara int eftersom ADC-värdet kan variera från 0-1023.

Som vi såg är ADC -resultaten i faktor 5,1 mV och för 1 grad C är utsignalen för LM35 10 mV, så 2 enheter ADC = 1 grad.

Så för att få temperaturen delar vi adc_value med två

temperatur = adc_result0 /2;

Slutligen visar mikrokontrollern temperaturen i grader Celsius i 16X2 alfanumeriska LCD.

Steg 2: Kretsdiagram

Kretsdiagram
Kretsdiagram

Steg 3: Programmera

#ifndef F_CPU

#define F_CPU 1600000UL

#endif

#omfatta

#omfatta

#inkludera "LCD/lcd.h"

void adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC Aktivera och förkalkning av 128

ADCSRA = (1 <

}

// läs adc -värde

uint16_t adc_read (uint8_t ch)

{

// välj motsvarande kanal 0 ~ 7

ch & = 0b00000111; // OCH drift med 7

ADMUX = (ADMUX & 0xF8) | ch;

// starta enkel konvertering

// skriv '1' till ADSC

ADCSRA | = (1 <

// vänta på att konverteringen är klar

// ADSC blir "0" igen

medan (ADCSRA & (1 <

retur (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int långt;

rödingbuffert [10];

// initiera adc och lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // CURSOR

lcd_clrscr ();

lcd_gotoxy (0, 0);

_fördröjning_ms (50);

medan (1)

{

adc_result0 = adc_read (0); // läs adc -värde vid PA0

temp = adc_result0/2.01; // hitta temperaturen

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, buffert, 10); // visa ADC -värde

// lcd_puts (buffert);

lcd_gotoxy (0, 0);

itoa (temp, buffert, 10);

lcd_puts ("Temp ="); // visningstemperatur

lcd_puts (buffert);

lcd_gotoxy (7, 0);

lcd_puts ("C");

långt = (1,8*temp) +32;

lcd_gotoxy (9, 0);

itoa (långt, buffert, 10);

lcd_puts (buffert);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_fördröjning_ms (1000);

om (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON");

PORTB = (1 <

}

om (temp <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

Steg 4: Kod Förklara

Jag hoppas att du vet att du kommer att veta hur du aktiverar ADC och hur du kopplar ihop LCD med Avr Microcontroller i den här koden när temperaturen är mer än 30 grader då fläkten är på och du kan se på LED Display FAN ON och när temperaturen är mindre än 30 sedan fläkten är avstängd och du kan se FAN OFF

Steg 5: Du kan ladda ner hela projektet

Klicka här

Rekommenderad: