Temperatursensor (LM35) Grensesnitt med ATmega32 og LCD -skjerm - Automatisk viftekontroll: 6 trinn
Temperatursensor (LM35) Grensesnitt med ATmega32 og LCD -skjerm - Automatisk viftekontroll: 6 trinn
Anonim
Temperatursensor (LM35) Grensesnitt med ATmega32 og LCD -skjerm | Automatisk viftekontroll
Temperatursensor (LM35) Grensesnitt med ATmega32 og LCD -skjerm | Automatisk viftekontroll

Temperatursensor (LM35) Grensesnitt med ATmega32 og LCD -skjerm

Trinn 1:

I dette prosjektet lærer du hvordan du kobler til en temperatursensor (LM35) med AVR ATmega32 mikrokontroller og LCD -skjerm.

Før dette prosjektet må du Lær om følgende artikler

hvordan legge til lcd -bibliotek i avr studio | avr mikrokontrolleropplæring

introduksjon til ADC i AVR Microcontroller | for nybegynnere

Temperatursensor (LM35) er en populær og rimelig temperatursensor. Vcc kan være fra 4V til 20V som spesifisert av databladet. For å bruke sensoren kobler du bare Vcc til 5V, GND til Ground og Out til en av ADC (analog til digital omformer kanal).

Utgangen er 10MilliVolts per grader celsius. Så hvis utgangen er 310 mV så er temperaturen 31 grader C. For å lage dette prosjektet bør du være kjent med ADC for AVR og også bruke LCD Så Oppløsningen til AVR ADC er 10bit og for referansespenning bruker du 5V så oppløsningen når det gjelder spenning er

5/1024 = 5,1 mV omtrent

Så hvis ADCs resultat tilsvarer 5,1 mV, dvs. hvis ADC -lesing er

10 x 5,1 mV = 51 mV

Du kan lese verdien av en hvilken som helst ADC -kanal ved å bruke funksjonen adc_result (ch);

Hvor ch er kanalnummer (0-5) i tilfelle av ATmega8. Hvis du har koblet LM35 -utgangen til ADC -kanal 0, ring

adc_result0 = adc_read (0);

dette vil lagre den nåværende ADC -avlesningen i variabelen adc_value. Datatypen for adc_value bør være int ettersom ADC-verdien kan variere fra 0-1023.

Som vi så er ADC -resultatene i faktor 5,1mV, og for 1 grad C er utgangen til LM35 10mV, så 2 enheter ADC = 1 grad.

Så for å få temperaturen deler vi adc_value med to

temperatur = adc_result0 /2;

Til slutt vil mikrokontrolleren vise temperaturen i grader Celsius i det 16X2 alfanumeriske LCD -displayet.

Trinn 2: Kretsdiagram

Kretsdiagram
Kretsdiagram

Trinn 3: Program

#ifndef F_CPU

#define F_CPU 1600000UL

#slutt om

#inkludere

#inkludere

#include "LCD/lcd.h"

ugid adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC Aktiver og forhåndskalkulator på 128

ADCSRA = (1 <

}

// les adc -verdi

uint16_t adc_read (uint8_t ch)

{

// velg den tilsvarende kanalen 0 ~ 7

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

ADMUX = (ADMUX & 0xF8) | ch;

// start enkelt konvertering

// skriv '1' til ADSC

ADCSRA | = (1 <

// vent på at konverteringen er fullført

// ADSC blir '0' igjen

mens (ADCSRA & (1 <

retur (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int langt;

røyebuffer [10];

// initialiser adc og lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // CURSOR

lcd_clrscr ();

lcd_gotoxy (0, 0);

_forsinkelse_ms (50);

mens (1)

{

adc_result0 = adc_read (0); // les adc -verdi ved PA0

temp = adc_result0/2.01; // finne temperaturen

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, buffer, 10); // vis ADC -verdi

// lcd_puts (buffer);

lcd_gotoxy (0, 0);

itoa (temp, buffer, 10);

lcd_puts ("Temp ="); // visningstemperatur

lcd_puts (buffer);

lcd_gotoxy (7, 0);

lcd_puts ("C");

langt = (1,8*temp) +32;

lcd_gotoxy (9, 0);

itoa (langt, buffer, 10);

lcd_puts (buffer);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_forsinkelse_ms (1000);

hvis (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("VIFT PÅ");

PORTB = (1 <

}

hvis (temp <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("VIFTE AV");

PORTB = (0 <

}

}

}

Trinn 4: Kode Forklar

Jeg håper du vet at du vil vite hvordan du aktiverer ADC og hvordan du grensesnitter LCD med Avr Microcontroller i denne koden når temperaturen er mer enn 30 grader, så er viften på og du kan se på LED Display FAN ON og når temperaturen er mindre enn 30 deretter viften er slått av, og du kan se VIFTE AV

Trinn 5: Du kan laste ned hele prosjektet

Klikk her

Anbefalt: