Obsah:
- Krok 1:
- Krok 2: Schéma zapojení
- Krok 3: Program
- Krok 4: Vysvětlení kódu
- Krok 5: Můžete si stáhnout celý projekt
- Krok 6: Video
Video: Rozhraní teplotního senzoru (LM35) s ATmega32 a LCD displejem - Automatické ovládání ventilátoru: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Rozhraní teplotního senzoru (LM35) s ATmega32 a LCD displejem
Krok 1:
V tomto projektu se naučíte, jak propojit teplotní senzor (LM35) s mikrokontrolérem AVR ATmega32 a LCD displejem.
Před tímto projektem musíte znát Informace o následujících článcích
jak přidat knihovnu lcd v avr studiu | návod k mikrokontroléru avr
úvod do ADC v mikrokontroléru AVR | pro začátečníky
Teplotní senzor (LM35) je populární a levný teplotní senzor. Vcc může být od 4V do 20V, jak je uvedeno v datovém listu. Chcete -li použít senzor, jednoduše připojte Vcc k 5V, GND k uzemnění a Out k jednomu z ADC (kanál analogového na digitální převodník).
Výstup je 10 mil. Voltů na stupeň Celsia. Pokud je tedy výstup 310 mV, pak je teplota 31 stupňů C. K provedení tohoto projektu byste měli být obeznámeni s ADC AVR a také pomocí LCD So. Rozlišení AVRs ADC je 10bit a pro referenční napětí používáte 5V, takže rozlišení z hlediska napětí je
5/1024 = přibližně 5,1 mV
Pokud tedy výsledek ADC odpovídá 5,1 mV, tj. Pokud je čtení ADC
10 x 5,1 mV = 51 mV
Můžete přečíst hodnotu jakéhokoli kanálu ADC pomocí funkce adc_result (ch);
Kde ch je číslo kanálu (0-5) v případě ATmega8. Pokud jste připojili výstup LM35 k ADC kanálu 0, zavolejte
adc_result0 = adc_read (0);
toto uloží aktuální čtení ADC do proměnné adc_value. Datový typ adc_value by měl být int, protože hodnota ADC se může pohybovat od 0-1023.
Jak jsme viděli, výsledky ADC jsou faktorem 5,1 mV a pro 1 stupeň C je výstup LM35 10 mV, tedy 2 jednotky ADC = 1 stupeň.
Abychom získali teplotu, vydělíme hodnotu adc_value dvěma
teplota = adc_result0 /2;
Nakonec mikrokontrolér zobrazí teplotu ve stupních Celsia na alfanumerickém LCD displeji 16X2.
Krok 2: Schéma zapojení
Krok 3: Program
#ifndef F_CPU
#define F_CPU 1600000UL
#endif
#zahrnout
#zahrnout
#include "LCD/lcd.h"
neplatné adc_init ()
{
// AREF = AVcc
ADMUX = (1 <
// ADC Enable and prescaler of 128
ADCSRA = (1 <
}
// číst hodnotu adc
uint16_t adc_read (uint8_t ch)
{
// vyberte odpovídající kanál 0 ~ 7
ch & = 0b00000111; // A operace se 7
ADMUX = (ADMUX & 0xF8) | ch;
// zahájení jednotlivé konverze
// napište '1' do ADSC
ADCSRA | = (1 <
// počkejte na dokončení převodu
// ADSC se opět změní na '0'
while (ADCSRA & (1 <
návrat (ADC);
}
int main ()
{
DDRB = 0xff;
uint16_t adc_result0;
int temp;
int daleko;
char buffer [10];
// inicializace adc a lcd
adc_init ();
lcd_init (LCD_DISP_ON_CURSOR); //KURZOR
lcd_clrscr ();
lcd_gotoxy (0, 0);
_delay_ms (50);
zatímco (1)
{
adc_result0 = adc_read (0); // čtení hodnoty adc na PA0
temp = adc_result0/2,01; // zjištění teploty
// lcd_gotoxy (0, 0);
// lcd_puts ("Adc =");
// itoa (adc_result0, buffer, 10); // zobrazení hodnoty ADC
// lcd_puts (buffer);
lcd_gotoxy (0, 0);
itoa (teplota, vyrovnávací paměť, 10);
lcd_puts ("Teplota ="); // zobrazení teploty
lcd_puts (vyrovnávací paměť);
lcd_gotoxy (7, 0);
lcd_puts ("C");
far = (1,8*teplota) +32;
lcd_gotoxy (9, 0);
itoa (far, buffer, 10);
lcd_puts (vyrovnávací paměť);
lcd_gotoxy (12, 0);
lcd_puts ("F");
_delay_ms (1000);
pokud (teplota> = 30)
{lcd_clrscr ();
lcd_home ();
lcd_gotoxy (0, 1);
lcd_puts ("FAN ON");
PORTB = (1 <
}
if (teplota <= 30)
{
lcd_clrscr ();
lcd_home ();
lcd_gotoxy (7, 1);
lcd_puts ("VENTILÁTOR VYPNUT");
PORTB = (0 <
}
}
}
Krok 4: Vysvětlení kódu
Doufám, že víte, že budete vědět, jak povolit ADC a jak propojit LCD s mikrokontrolérem Avr v tomto kódu, když je teplota více než 30 stupňů, pak je ventilátor zapnutý a na LED displeji můžete vidět FAN ON a když teplota menší než 30, pak ventilátor je vypnuto a můžete vidět VENTILÁTOR VYPNUT
Krok 5: Můžete si stáhnout celý projekt
Klikněte zde
Doporučuje:
Propojení teplotního senzoru LM35 s Arduino: 4 kroky
Propojení teplotního senzoru LM35 s Arduinem: teploměry jsou užitečné přístroje, které se používají k měření teploty po dlouhou dobu. V tomto projektu jsme vytvořili digitální teploměr na bázi Arduina, který zobrazuje aktuální teplotu okolí a změny teploty na LCD displeji. Může to být vyčerpatelné
Propojení teplotního senzoru DS18B20 s Arduino a ESP8266: 8 kroků
Propojení teplotního senzoru DS18B20 s Arduino a ESP8266: Hej, co se děje, lidi! Akarsh zde od CETech. Dnes přidáme do našeho arzenálu nový senzor známý jako teplotní senzor DS18B20. Jedná se o teplotní senzor podobný DHT11, ale má jinou sadu aplikací. Budeme to porovnávat s
Vykreslování živých dat teplotního senzoru (TMP006) pomocí MSP432 LaunchPad a Pythonu: 9 kroků
Vykreslování živých dat teplotního senzoru (TMP006) pomocí MSP432 LaunchPad a Pythonu: TMP006 je teplotní senzor, který měří teplotu objektu bez nutnosti kontaktu s objektem. V tomto tutoriálu vykreslíme data o živé teplotě z BoosterPack (TI BOOSTXL-EDUMKII) pomocí Pythonu
Čtení teploty pomocí teplotního senzoru LM35 s Arduino Uno: 4 kroky
Čtení teploty pomocí snímače teploty LM35 s Arduino Uno: Ahoj, v tomto návodu se naučíme používat LM35 s Arduino. Lm35 je teplotní senzor, který dokáže číst hodnoty teploty od -55 ° C do 150 ° C. Jedná se o 3-koncový přístroj, který poskytuje analogové napětí úměrné teplotě. Vysoký
Automatizace ventilátoru pomocí teplotního senzoru MESH: 4 kroky (s obrázky)
Automatizujte ventilátor pomocí teplotního čidla MESH: Už vás nebaví přepínat ventilátor " na " a " vypnuto "? Co kdyby byl váš ventilátor automatizovaný a přizpůsobitelný podle vašich oblíbených nastavení teploty? Postavili jsme automatizovaný ventilátor pomocí MESH Temperature & Vlhkost, Wemo a