Obsah:

Rozhranie snímača teploty (LM35) s ATmega32 a LCD displejom - Automatické ovládanie ventilátora: 6 krokov
Rozhranie snímača teploty (LM35) s ATmega32 a LCD displejom - Automatické ovládanie ventilátora: 6 krokov

Video: Rozhranie snímača teploty (LM35) s ATmega32 a LCD displejom - Automatické ovládanie ventilátora: 6 krokov

Video: Rozhranie snímača teploty (LM35) s ATmega32 a LCD displejom - Automatické ovládanie ventilátora: 6 krokov
Video: LDmicro 20: решен вопрос жидкокристаллического дисплея I2C (программирование ПЛК микроконтроллера с помощью LDmicro) 2024, November
Anonim
Rozhranie snímača teploty (LM35) s ATmega32 a LCD displejom | Automatické ovládanie ventilátora
Rozhranie snímača teploty (LM35) s ATmega32 a LCD displejom | Automatické ovládanie ventilátora

Rozhranie snímača teploty (LM35) s ATmega32 a LCD displejom

Krok 1:

V tomto projekte sa naučíte prepojiť teplotný snímač (LM35) s mikrokontrolérom AVR ATmega32 a LCD displejom.

Pred týmto projektom musíte vedieť Prečítajte si o nasledujúcich článkoch

ako pridať knižnicu lcd v avr štúdiu | návod na mikrokontrolér avr

úvod do ADC v mikrokontroléri AVR | pre začiatočníkov

Snímač teploty (LM35) je populárny a lacný snímač teploty. Vcc môže byť od 4 V do 20 V, ako je uvedené v technickom liste. Ak chcete použiť senzor, jednoducho pripojte Vcc na 5V, GND k zemi a výstup k jednému z ADC (kanál analógovo -digitálneho prevodníka).

Výstup je 10 miliónov voltov na stupeň Celzia. Ak je teda výstup 310 mV, potom je teplota 31 stupňov C. Aby ste urobili tento projekt, mali by ste byť oboznámení s ADC AVR a tiež pomocou LCD. Rozlíšenie AVR ADC je 10 bitov a pre referenčné napätie používate 5 V, takže rozlíšenie z hľadiska napätia je

5/1024 = približne 5,1 mV

Ak teda výsledok ADC zodpovedá 5,1 mV, tj. Ak je čítanie ADC

10 x 5,1 mV = 51 mV

Môžete prečítať hodnotu akéhokoľvek kanála ADC pomocou funkcie adc_result (ch);

Kde ch je číslo kanála (0-5) v prípade ATmega8. Ak ste zapojili výstupy LM35 do kanála ADC 0, zavolajte

adc_result0 = adc_read (0);

toto uloží aktuálne čítanie ADC do premennej adc_value. Dátový typ adc_value by mal byť int, pretože hodnota ADC sa môže pohybovať od 0 do 1023.

Ako sme videli, výsledky ADC sú faktorom 5,1 mV a pre 1 stupeň C je výkon LM35 10 mV, teda 2 jednotky ADC = 1 stupeň.

Aby sme dostali teplotu, vydelíme hodnotu adc_value dvoma

teplota = adc_result0 /2;

Nakoniec mikrokontrolér zobrazí teplotu v stupňoch Celzia na alfanumerickom LCD displeji 16X2.

Krok 2: Schéma zapojenia

Schéma zapojenia
Schéma zapojenia

Krok 3: Program

#ifndef F_CPU

#define F_CPU 1600000UL

#koniec Ak

#zahrnúť

#zahrnúť

#include "LCD/lcd.h"

neplatné adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// Povolenie ADC a predzobrazovač 128

ADCSRA = (1 <

}

// prečítajte hodnotu adc

uint16_t adc_read (uint8_t ch)

{

// vyberte príslušný kanál 0 ~ 7

ch & = 0b00000111; // A operácia so 7

ADMUX = (ADMUX & 0xF8) | ch;

// spustenie jednoduchej konverzie

// napíšte '1' do ADSC

ADCSRA | = (1 <

// počkajte na dokončenie konverzie

// ADSC sa opäť zmení na „0“

zatiaľ čo (ADCSRA & (1 <

návrat (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int far;

char buffer [10];

// inicializácia adc a lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // KURZOR

lcd_clrscr ();

lcd_gotoxy (0, 0);

_delay_ms (50);

zatiaľ čo (1)

{

adc_result0 = adc_read (0); // prečítajte hodnotu adc na PA0

temp = adc_result0/2,01; // zistenie teploty

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, buffer, 10); // zobrazenie hodnoty ADC

// lcd_puts (buffer);

lcd_gotoxy (0, 0);

itoa (teplota, nárazník, 10);

lcd_puts ("Teplota ="); // zobrazenie teploty

lcd_puts (vyrovnávacia pamäť);

lcd_gotoxy (7, 0);

lcd_puts ("C");

ďaleko = (1,8*teplota) +32;

lcd_gotoxy (9, 0);

itoa (far, buffer, 10);

lcd_puts (vyrovnávacia pamäť);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_delay_ms (1000);

ak (teplota> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON ON");

PORTB = (1 <

}

ak (teplota <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("VENTILÁTOR VYPNUTÝ");

PORTB = (0 <

}

}

}

Krok 4: Vysvetlenie kódu

Dúfam, že budete vedieť, ako budete v tomto kóde povoliť ADC a ako prepojiť LCD s mikrokontrolérom Avr, keď je teplota viac ako 30 stupňov, potom je ventilátor zapnutý a na LED displeji môžete vidieť ZAPNUTÝ VENTILÁTOR a keď je teplota nižšia ako 30, potom bude ventilátor je vypnuté a môžete vidieť VENTILÁTOR VYPNUTÝ

Krok 5: Môžete si stiahnuť celý projekt

Kliknite tu

Odporúča: