Indholdsfortegnelse:
- Trin 1:
- Trin 2: Kredsløbsdiagram
- Trin 3: Programmer
- Trin 4: Kode Forklar
- Trin 5: Du kan downloade hele projektet
- Trin 6: Video
Video: Temperatursensor (LM35) Grænseflade Med ATmega32 og LCD Display - Automatisk ventilatorstyring: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Temperatursensor (LM35) Grænseflade med ATmega32 og LCD Display
Trin 1:
I dette projekt lærer du Sådan kobles en temperatursensor (LM35) til AVR ATmega32 mikrokontroller og LCD -display.
Inden dette projekt skal du bruge Lær om følgende artikler
hvordan tilføjer man lcd -bibliotek i avr studio | avr mikrokontroller tutorial
introduktion til ADC i AVR Microcontroller | for begyndere
Temperatursensor (LM35) er en populær og billig temperatursensor. Vcc kan være fra 4V til 20V som angivet i databladet. For at bruge sensoren skal du blot tilslutte Vcc til 5V, GND til Ground og Out til en af ADC (analog til digital converter kanal).
Outputtet er 10MilliVolts pr. Grader celsius. Så hvis output er 310 mV, så er temperaturen 31 grader C. For at lave dette projekt skal du være fortrolig med ADC'en for AVR'er og også bruge LCD Så Opløsningen på AVR'er ADC er 10bit og til referencespænding bruger du 5V, så opløsningen med hensyn til spænding er
5/1024 = 5,1 mV ca.
Så hvis ADCs resultat svarer til 5,1mV, dvs. hvis ADC -læsning er
10 x 5,1 mV = 51 mV
Du kan få læst værdien af enhver ADC -kanal ved hjælp af funktionen adc_result (ch);
Hvor ch er kanalnummer (0-5) i tilfælde af ATmega8. Hvis du har tilsluttet LM35'erne out til ADC -kanal 0, skal du ringe
adc_result0 = adc_read (0);
dette gemmer den aktuelle ADC -læsning i variabelen adc_value. Datatypen for adc_value skal være int, da ADC-værdien kan variere fra 0-1023.
Som vi så, er ADC -resultaterne i faktor 5,1mV, og for 1 grad C er output af LM35 10mV, så 2 enheder ADC = 1 grad.
Så for at få temperaturen dividerer vi adc_værdien med to
temperatur = adc_result0 /2;
Endelig vil mikrokontrolleren vise temperaturen i grader celsius i det 16X2 alfanumeriske LCD.
Trin 2: Kredsløbsdiagram
Trin 3: Programmer
#ifndef F_CPU
#define F_CPU 1600000UL
#Afslut Hvis
#omfatte
#omfatte
#include "LCD/lcd.h"
ugid adc_init ()
{
// AREF = AVcc
ADMUX = (1 <
// ADC Aktiver og forskalering af 128
ADCSRA = (1 <
}
// læs adc -værdi
uint16_t adc_read (uint8_t ch)
{
// vælg den tilsvarende kanal 0 ~ 7
ch & = 0b00000111; // OG drift med 7
ADMUX = (ADMUX & 0xF8) | ch;
// start enkelt konvertering
// skriv '1' til ADSC
ADCSRA | = (1 <
// vent på, at konverteringen er fuldført
// ADSC bliver '0' igen
mens (ADCSRA & (1 <
retur (ADC);
}
int main ()
{
DDRB = 0xff;
uint16_t adc_result0;
int temp;
int langt;
kulbuffer [10];
// initialiser adc og lcd
adc_init ();
lcd_init (LCD_DISP_ON_CURSOR); //CURSOREN
lcd_clrscr ();
lcd_gotoxy (0, 0);
_forsinkelse_ms (50);
mens (1)
{
adc_result0 = adc_read (0); // læs adc -værdi ved PA0
temp = adc_result0/2.01; // at finde temperaturen
// lcd_gotoxy (0, 0);
// lcd_puts ("Adc =");
// itoa (adc_result0, buffer, 10); // vis ADC -værdi
// lcd_puts (buffer);
lcd_gotoxy (0, 0);
itoa (temp, buffer, 10);
lcd_puts ("Temp ="); // visningstemperatur
lcd_puts (buffer);
lcd_gotoxy (7, 0);
lcd_puts ("C");
langt = (1,8*temp) +32;
lcd_gotoxy (9, 0);
itoa (langt, buffer, 10);
lcd_puts (buffer);
lcd_gotoxy (12, 0);
lcd_puts ("F");
_forsinkelse_ms (1000);
hvis (temp> = 30)
{lcd_clrscr ();
lcd_home ();
lcd_gotoxy (0, 1);
lcd_puts ("VENTILATOR TIL");
PORTB = (1 <
}
hvis (temp <= 30)
{
lcd_clrscr ();
lcd_home ();
lcd_gotoxy (7, 1);
lcd_puts ("FAN OFF");
PORTB = (0 <
}
}
}
Trin 4: Kode Forklar
Jeg håber, du ved, at du ved, hvordan du aktiverer ADC og hvordan du tilslutter LCD med Avr Microcontroller i denne kode, når temperaturen er mere end 30 grader, derefter er ventilatoren tændt, og du kan se på LED Display FAN ON og når temperatur mindre end 30 derefter blæser er slukket, og du kan se FAN FAN
Trin 5: Du kan downloade hele projektet
Klik her
Anbefalede:
Grænseflade LM35 temperatursensor med Arduino: 4 trin
Grænseflade LM35 temperatursensor med Arduino: Termometre er nyttige apparater, der bruges i lang tid til temperaturmåling. I dette projekt har vi lavet et Arduino -baseret digitalt termometer til at vise de aktuelle omgivelsestemperaturer og temperaturændringer på en LCD. Det kan nedbrydes
Grænseflade Atmega16 mikrokontroller med Dot Matrix LED display: 5 trin
Interfacing Atmega16 Microcontroller With Dot Matrix Led Display: I dette projekt skal vi interface en dot matrix LED display med AVR (Atmega16) mikrocontroller. Her vil vi vise simulering i proteus, du kan anvende det samme i din hardware. Så her vil vi først udskrive et tegn, lad os sige 'A' på t
Arduino -grænseflade med ultralydssensor og kontaktløs temperatursensor: 8 trin
Arduino -grænseflade med ultralydssensor og kontaktløs temperatursensor: I dag foretrækker producenter, udviklere Arduino til hurtig udvikling af prototyping af projekter. Arduino er en open-source elektronikplatform baseret på brugervenlig hardware og software. Arduino har et meget godt brugerfællesskab. I dette projekt
Bevægelsessensorbaseret DC -ventilatorstyring uden Arduino: 4 trin
Bevægelsessensorbaseret DC -udstødningsventilatorstyring uden Arduino: Hej brødre og søstre i verden, jeg havde lavet et lille projekt til styring af din DC -udstødningsventilator (Hvis du tilføjer et relæ til dette, kan du også styre AC -udstødningsventilatoren) .Dette kan bruges i hvile plads til at tørre dine våde hænder. og også brugt anden applikation
Brug af dioder til ventilatorstyring .: 7 trin
Brug af dioder til blæserstyring .: Dette i alternativ til brug af reostater og chips til styring af blæserhastighed. Ideen til dette kom fra http://www.cpemma.co.uk/sdiodes.html NU http: //www.pcsilencioso.com/cpemma/sdiodes.html, og jeg ville forklare det lidt mere og bygge