Temperatursensor (LM35) mit ATmega32 und LCD-Display - Automatische Lüftersteuerung - Gunook
Temperatursensor (LM35) mit ATmega32 und LCD-Display - Automatische Lüftersteuerung - Gunook
Anonim
Temperatursensor (LM35) mit ATmega32 und LCD-Display | Automatische Lüftersteuerung
Temperatursensor (LM35) mit ATmega32 und LCD-Display | Automatische Lüftersteuerung

Temperatursensor (LM35) Schnittstelle mit ATmega32 und LCD-Display

Schritt 1:

In diesem Projekt erfahren Sie, wie Sie einen Temperatursensor (LM35) mit einem AVR ATmega32-Mikrocontroller und einem LCD-Display verbinden.

Vor diesem Projekt müssen Sie Folgendes benötigen Erfahren Sie mehr über die folgenden Artikel

So fügen Sie eine LCD-Bibliothek in avr studio hinzu | avr-Mikrocontroller-Tutorial

Einführung in ADC im AVR-Mikrocontroller | für Anfänger

Der Temperatursensor (LM35) ist ein beliebter und kostengünstiger Temperatursensor. Die Vcc kann von 4 V bis 20 V betragen, wie im Datenblatt angegeben. Um den Sensor zu verwenden, verbinden Sie einfach Vcc mit 5V, GND mit Masse und den Out mit einem der ADC (Analog-Digital-Wandler-Kanal).

Die Leistung beträgt 10MilliVolt pro Grad Celsius. Wenn der Ausgang also 310 mV beträgt, beträgt die Temperatur 31 ° C. Um dieses Projekt zu erstellen, sollten Sie mit dem ADC von AVRs und auch mit LCD vertraut sein. Die Auflösung des AVRs ADC beträgt 10 Bit und für die Referenzspannung verwenden Sie 5 V, also die Auflösung in Bezug auf die Spannung ist

5/1024 = 5,1 mV ungefähr

Wenn das Ergebnis des ADC also 5,1 mV entspricht, d. h. wenn der ADC-Wert ist

10 x 5,1 mV = 51 mV

Sie können den Wert jedes ADC-Kanals mit der Funktion adc_result(ch) lesen;

Dabei ist ch die Kanalnummer (0-5) im Fall von ATmega8. Wenn Sie den Ausgang des LM35 mit dem ADC-Kanal 0 verbunden haben, dann rufen Sie an

adc_result0 = adc_read(0);

Dadurch wird der aktuelle ADC-Wert in der Variablen adc_value gespeichert. Der Datentyp von adc_value sollte int sein, da der ADC-Wert von 0-1023 reichen kann.

Wie wir gesehen haben, liegen die ADC-Ergebnisse bei einem Faktor von 5,1 mV und für 1 Grad C beträgt der Ausgang von LM35 10 mV, also 2 Einheiten ADC = 1 Grad.

Um die Temperatur zu erhalten, teilen wir den adc_value durch zwei

Temperatur = adc_result0 /2;

Schließlich zeigt der Mikrocontroller die Temperatur in Grad Celsius auf dem alphanumerischen 16X2-LCD an.

Schritt 2: Schaltplan

Schaltplan
Schaltplan

Schritt 3: Programm

#ifndef F_CPU

#define F_CPU 1600000UL

#endif

#enthalten

#enthalten

#include "LCD/lcd.h"

void adc_init()

{

// AREF = AVcc

ADMUX = (1<

// ADC Enable und Prescaler von 128

ADCSRA = (1<

}

// Adc-Wert lesen

uint16_t adc_read(uint8_t ch)

{

// den entsprechenden Kanal auswählen 0~7

ch &= 0b00000111; // UND-Verknüpfung mit 7

ADMUX = (ADMUX & 0xF8)|ch;

// Einzelkonvertierung starten

// schreibe '1' in ADSC

ADCSRA |= (1<

// warten, bis die Konvertierung abgeschlossen ist

// ADSC wird wieder '0'

while(ADCSRA & (1<

zurück (ADC);

}

int main()

{

DDRB=0xff;

uint16_t adc_result0;

int-Temp;

int weit;

Zeichenpuffer [10];

// initialisiere adc und lcd

adc_init();

lcd_init(LCD_DISP_ON_CURSOR); //MAUSZEIGER

lcd_clrscr();

lcd_gotoxy (0, 0);

_verzögerung_ms(50);

während(1)

{

adc_result0 = adc_read(0); // Adc-Wert bei PA0 lesen

temp=adc_result0/2.01; // Temperatur finden

// lcd_gotoxy (0, 0);

//lcd_puts("Adc=");

//itoa (adc_result0, Puffer, 10); // ADC-Wert anzeigen

//lcd_puts(Puffer);

lcd_gotoxy (0, 0);

itoa (temp, Puffer, 10);

lcd_puts("Temp="); // Temperatur anzeigen

lcd_puts (Puffer);

lcd_gotoxy(7, 0);

lcd_puts("C");

weit=(1.8*temp)+32;

lcd_gotoxy(9, 0);

itoa (fern, Puffer, 10);

lcd_puts (Puffer);

lcd_gotoxy(12, 0);

lcd_puts("F");

_verzögerung_ms(1000);

wenn(temp>=30)

{lcd_clrscr();

lcd_home();

lcd_gotoxy(0, 1);

lcd_puts("LÜFTER EIN");

PORTB=(1<

}

wenn (temp<=30)

{

lcd_clrscr();

lcd_home();

lcd_gotoxy(7, 1);

lcd_puts("LÜFTER AUS");

PORTB=(0<

}

}

}

Schritt 4: Code erklären

Ich hoffe, Sie wissen, dass Sie wissen, wie Sie den ADC aktivieren und das LCD mit dem Avr-Mikrocontroller in diesem Code verbinden, wenn die Temperatur mehr als 30 Grad beträgt, der Lüfter eingeschaltet ist und Sie auf der LED-Anzeige FAN ON und bei einer Temperatur unter 30 sehen können, dann Lüfter ist ausgeschaltet und Sie können FAN OFF sehen

Schritt 5: Sie können das vollständige Projekt herunterladen

Klicken Sie hier

Empfohlen: