Spisu treści:

Czujnik temperatury (LM35) Interfejs z ATmega32 i wyświetlaczem LCD- Automatyka Sterowanie wentylatorem: 6 kroków
Czujnik temperatury (LM35) Interfejs z ATmega32 i wyświetlaczem LCD- Automatyka Sterowanie wentylatorem: 6 kroków

Wideo: Czujnik temperatury (LM35) Interfejs z ATmega32 i wyświetlaczem LCD- Automatyka Sterowanie wentylatorem: 6 kroków

Wideo: Czujnik temperatury (LM35) Interfejs z ATmega32 i wyświetlaczem LCD- Automatyka Sterowanie wentylatorem: 6 kroków
Wideo: 🌡 Termometr przy pomocy LM35 i ARDUINO 2024, Listopad
Anonim
Czujnik temperatury (LM35) Interfejs z ATmega32 i wyświetlaczem LCD| Automatyka Sterowanie wentylatorem
Czujnik temperatury (LM35) Interfejs z ATmega32 i wyświetlaczem LCD| Automatyka Sterowanie wentylatorem

Czujnik temperatury (LM35) Interfejs z ATmega32 i wyświetlaczem LCD

Krok 1:

W tym projekcie dowiesz się, jak połączyć czujnik temperatury (LM35) z mikrokontrolerem AVR ATmega32 i wyświetlaczem LCD.

Przed tym projektem musisz wiedzieć o następujących artykułach

jak dodać bibliotekę lcd w avr studio| Samouczek mikrokontrolera avr

wprowadzenie do ADC w mikrokontrolerze AVR | dla początkujących

Czujnik temperatury (LM35) to popularny i tani czujnik temperatury. Vcc może wynosić od 4 V do 20 V, jak określono w arkuszu danych. Aby użyć czujnika, wystarczy podłączyć Vcc do 5 V, GND do uziemienia, a wyjście do jednego z ADC (kanał przetwornika analogowo-cyfrowego).

Wyjście wynosi 10 miliwoltów na stopień Celsjusza. Więc jeśli wyjście wynosi 310 mV, to temperatura wynosi 31 stopni C. Aby wykonać ten projekt, powinieneś znać ADC AVR, a także używać LCD. Tak więc rozdzielczość AVR ADC wynosi 10 bitów, a dla napięcia odniesienia używasz 5 V, więc rozdzielczość pod względem napięcia jest

5/1024 = około 5,1 mV

Więc jeśli wynik ADC odpowiada 5,1mV, tj. Czy odczyt ADC jest

10x5,1mV = 51mV

Możesz odczytać wartość dowolnego kanału ADC za pomocą funkcji adc_result(ch);

Gdzie ch to numer kanału (0-5) w przypadku ATmega8. Jeśli podłączyłeś wyjścia LM35 do kanału ADC 0, zadzwoń

adc_result0 = adc_read(0);

to zapisze bieżący odczyt ADC w zmiennej adc_value. Typ danych adc_value powinien być int, ponieważ wartość ADC może wynosić od 0-1023.

Jak widzieliśmy, wyniki ADC mają współczynnik 5,1 mV i dla 1 stopnia C wyjście LM35 wynosi 10 mV, więc 2 jednostki ADC = 1 stopień.

Aby uzyskać temperaturę, dzielimy wartość adc_value przez dwa

temperatura = adc_result0 /2;

Na koniec mikrokontroler wyświetli temperaturę w stopniach Celsjusza na alfanumerycznym wyświetlaczu LCD 16X2.

Krok 2: Schemat obwodu

Schemat obwodu
Schemat obwodu

Krok 3: Program

#ifndef F_CPU

#zdefiniuj F_CPU 1600000UL

#endif

#włączać

#włączać

#include "LCD/lcd.h"

nieważne adc_init()

{

// AREF = AVcc

ADMUX = (1<

// ADC Włącz i preskaler 128

ADCSRA = (1<

}

// odczytaj wartość adc

uint16_t adc_read(uint8_t ch)

{

// wybierz odpowiedni kanał 0~7

ch &= 0b00000111; // operacja AND z 7

ADMUX = (ADMUX & 0xF8)|ch;

// rozpocznij pojedynczą konwersję

// napisz '1' do ADSC

ADCSRA |= (1<

// czekaj na zakończenie konwersji

// ADSC ponownie staje się '0'

while(ADCSRA i (1<

powrót (ADC);

}

int main()

{

DDRB=0xff;

uint16_t adc_result0;

temp. wewn;

daleko;

bufor znaków[10];

// zainicjuj adc i lcd

adc_init();

lcd_init(LCD_DISP_ON_CURSOR); //KURSOR

lcd_clrscr();

lcd_gotoxy(0, 0);

_opóźnienie_ms(50);

póki(1)

{

adc_result0 = adc_read(0); // odczytaj wartość adc w PA0

temp=adc_result0/2.01; // znalezienie temperatury

//lcd_gotoxy(0, 0);

//lcd_puts("Adc=");

//itoa(adc_result0, bufor, 10); //wyświetl wartość ADC

//lcd_puts(bufor);

lcd_gotoxy(0, 0);

itoa(temp, bufor, 10);

lcd_puts("Temp="); //wyświetlanie temperatury

lcd_puts(bufor);

lcd_gotoxy(7, 0);

lcd_puts("C");

daleko=(1.8*temp)+32;

lcd_gotoxy(9, 0);

itoa(daleko, bufor, 10);

lcd_puts(bufor);

lcd_gotoxy(12, 0);

lcd_puts("F");

_delay_ms(1000);

jeśli (temp>=30)

{lcd_clrscr();

lcd_home();

lcd_gotoxy(0, 1);

lcd_puts("WENTYLATOR WŁĄCZONY");

PORTB=(1<

}

jeśli (temp<=30)

{

lcd_clrscr();

lcd_home();

lcd_gotoxy(7, 1);

lcd_puts("WENTYLATOR WYŁĄCZONY");

PORTB=(0<

}

}

}

Krok 4: Wyjaśnienie kodu

Mam nadzieję, że wiesz, że wiesz, jak włączyć ADC i jak połączyć wyświetlacz LCD z mikrokontrolerem Avr w tym kodzie, gdy temperatura jest większa niż 30 stopni, wtedy wentylator jest włączony i możesz zobaczyć na wyświetlaczu LED WŁĄCZONY WENTYLATOR i kiedy temperatura jest niższa niż 30 stopni niż wentylator jest wyłączony i widać WENTYLATOR WYŁĄCZONY

Krok 5: Możesz pobrać pełny projekt

Kliknij tutaj

Zalecana: