Inhoudsopgave:
- Stap 1:
- Stap 2: Schakelschema
- Stap 3: Programma
- Stap 4: Code Uitleg
- Stap 5: U kunt het volledige project downloaden
- Stap 6: Video
Video: Temperatuursensor (LM35) interface met ATmega32 en LCD-scherm - Automatische ventilatorregeling - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Temperatuursensor (LM35) Interfacing met ATmega32 en LCD-scherm
Stap 1:
In dit project leer je hoe je een temperatuursensor (LM35) kunt koppelen aan een AVR ATmega32-microcontroller en een LCD-scherm.
Voor dit project moet je leren over de volgende artikelen
hoe een lcd-bibliotheek toe te voegen in avr studio| zelfstudie over avr microcontroller
inleiding tot ADC in AVR Microcontroller | voor beginners
Temperatuursensor (LM35) is een populaire en goedkope temperatuursensor. De Vcc kan van 4V tot 20V zijn, zoals gespecificeerd in de datasheet. Om de sensor te gebruiken, sluit u eenvoudig de Vcc aan op 5V, GND op aarde en de Out op een van de ADC (analoog naar digitaal converterkanaal).
De output is 10MilliVolts per graad Celsius. Dus als de output 310 mV is, dan is de temperatuur 31 graden C. Om dit project te maken, moet u bekend zijn met de ADC van AVR's en ook met het gebruik van LCD. Dus de resolutie van AVR's ADC is 10 bit en voor referentiespanning gebruikt u 5V, dus de resolutie in termen van spanning is
5/1024 = 5,1 mV ongeveer
Dus als het resultaat van ADC overeenkomt met 5,1 mV, d.w.z. als de ADC-waarde is
10 x 5,1mV = 51mV
U kunt de waarde van elk ADC-kanaal lezen met behulp van de functie adc_result(ch);
Waarbij ch het kanaalnummer (0-5) is in het geval van ATmega8. Als je de uitgang van de LM35 hebt aangesloten op ADC-kanaal 0, bel dan
adc_result0 = adc_read(0);
hierdoor wordt de huidige ADC-waarde opgeslagen in de variabele adc_value. Het gegevenstype adc_value moet int zijn, aangezien de ADC-waarde kan variëren van 0-1023.
Zoals we zagen, zijn ADC-resultaten een factor van 5,1 mV en voor 1 graad C is de output van LM35 10 mV, dus 2 eenheden ADC = 1 graad.
Dus om de temperatuur te krijgen delen we de adc_value door twee
temperatuur = adc_result0 /2;
Ten slotte zal de microcontroller de temperatuur in graden Celsius weergeven op het 16X2 alfanumerieke LCD-scherm.
Stap 2: Schakelschema
Stap 3: Programma
#ifndef F_CPU
#define F_CPU 1600000UL
#stop als
#erbij betrekken
#erbij betrekken
#include "LCD/lcd.h"
ongeldig adc_init()
{
// AREF = AVcc
ADMUX = (1<
// ADC inschakelen en prescaler van 128
ADCSRA = (1<
}
// lees adc-waarde
uint16_t adc_read(uint8_t ch)
{
// selecteer het corresponderende kanaal 0~7
ch &= 0b00000111; // AND-bewerking met 7
ADMUX = (ADMUX & 0xF8)|ch;
// start enkele conversie
// schrijf '1' naar ADSC
ADCSRA |= (1<
// wacht tot de conversie is voltooid
// ADSC wordt weer '0'
terwijl(ADCSRA & (1<
retour (ADC);
}
int hoofd()
{
DDRB=0xff;
uint16_t adc_result0;
int-temp;
int ver;
char-buffer[10];
// initialiseer adc en lcd
adc_init();
lcd_init(LCD_DISP_ON_CURSOR); //CURSOR
lcd_clrscr();
lcd_gotoxy(0, 0);
_delay_ms(50);
terwijl(1)
{
adc_result0 = adc_read(0); // lees adc-waarde bij PA0
temp=adc_result0/2.01; // de temperatuur vinden
//lcd_gotoxy(0, 0);
//lcd_puts("Adc=");
//itoa(adc_result0, buffer, 10); // ADC-waarde weergeven
//lcd_puts(buffer);
lcd_gotoxy(0, 0);
itoa(temp, buffer, 10);
lcd_puts("Temp="); // temperatuur weergeven
lcd_puts(buffer);
lcd_gotoxy(7, 0);
lcd_puts("C");
ver=(1.8*temp)+32;
lcd_gotoxy(9, 0);
itoa(ver, buffer, 10);
lcd_puts(buffer);
lcd_gotoxy(12, 0);
lcd_puts("F");
_delay_ms(1000);
als(temp>=30)
{lcd_clrscr();
lcd_home();
lcd_gotoxy(0, 1);
lcd_puts("VENTILATOR AAN");
POORTB=(1<
}
als (temp<=30)
{
lcd_clrscr();
lcd_home();
lcd_gotoxy(7, 1);
lcd_puts("VENTILATOR UIT");
POORTB=(0<
}
}
}
Stap 4: Code Uitleg
Ik hoop dat je weet dat je weet hoe je ADC inschakelt en hoe je het lcd-scherm met Avr-microcontroller in deze code kunt interfacen wanneer de temperatuur meer dan 30 graden is, dan is de ventilator aan en kun je zien op de led-display FAN AAN en wanneer de temperatuur lager is dan 30 dan ventilator is uit en je kunt VENTILATOR UIT zien
Stap 5: U kunt het volledige project downloaden
Klik hier
Aanbevolen:
Armband met temperatuursensor en LED's: 5 stappen
Armband met temperatuursensor en LED's: in dit project heb ik een armband gemaakt met een temperatuursensor met betrokken LED-lampjes
ESP8266 NodeMCU + LM35 + Blynk (IOT-weerstation / digitale temperatuursensor): 4 stappen
ESP8266 NodeMCU + LM35 + Blynk (IOT-weerstation / digitale temperatuursensor): Hallo allemaal! In deze Instructable gaan we leren hoe we de LM35-sensor op NodeMCU kunnen aansluiten en die temperatuurinformatie via internet kunnen weergeven op een smartphone met de Blynk-applicatie. (Ook in dit project zullen we de SuperChart-widget gebruiken in de Bl
Arduino temperatuursensor (LM35): 4 stappen
Arduino Temperature Sensor (LM35): In dit project laat ik je zien hoe je de temperatuur kunt meten met behulp van de LM35 en Arduino-interface. Laten we beginnen
Arduino-temperatuursensor met LM35: 3 stappen
Arduino-temperatuursensor met LM35: Inleiding De LM35-serie zijn precisie-geïntegreerde circuittemperatuurapparaten met een uitgangsspanning die lineair evenredig is met de temperatuur van Celsius. LM35 is een lineaire temperatuursensor met drie aansluitingen van National halfgeleiders. Het kan meten
Diodes gebruiken voor ventilatorregeling: 7 stappen
Diodes gebruiken voor ventilatorregeling: Dit in plaats van reostaten en chips te gebruiken voor het regelen van de ventilatorsnelheid. Het idee hiervoor kwam van http://www.cpemma.co.uk/sdiodes.html NOW http://www.pcsilencioso.com/cpemma/sdiodes.html en ik wilde het een beetje meer uitleggen en bouwen