Kazalo:
- Korak 1:
- 2. korak: Shema vezja
- 3. korak: Program
- 4. korak: Pojasnite kodo
- 5. korak: Lahko prenesete celoten projekt
- 6. korak: Video
Video: Temperaturni senzor (LM35) v vmesniku z ATmega32 in LCD zaslonom - Samodejni nadzor ventilatorja: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Temperaturni senzor (LM35) Vmesnik z ATmega32 in LCD zaslonom
Korak 1:
V tem projektu se boste naučili, kako povezati temperaturni senzor (LM35) z mikrokontrolerjem AVR ATmega32 in LCD zaslonom.
Pred tem projektom boste morali izvedeti več o naslednjih člankih
kako dodati knjižnico LCD v avr studio | vadnica mikrokrmilnika avr
uvod v ADC v mikrokrmilniku AVR | za začetnike
Senzor temperature (LM35) je priljubljen in poceni temperaturni senzor. Vcc je lahko od 4V do 20V, kot je določeno v podatkovnem listu. Za uporabo senzorja preprosto priključite Vcc na 5V, GND na ozemljitev in Out na enega od ADC (analogno -digitalni kanal pretvornika).
Izhodna moč je 10 milivoltov na stopinj Celzija. Torej, če je izhod 310 mV, potem je temperatura 31 stopinj C. Za ta projekt se morate seznaniti z ADC -jem AVR -jev in tudi z uporabo LCD -ja. Ločljivost ADC -jev AVR -jev je 10 -bitna, za referenčno napetost pa uporabljate 5V, zato je ločljivost 5V. glede na napetost je
5/1024 = približno 5,1 mV
Torej, če rezultat ADC ustreza 5,1 mV, to je, če je odčitek ADC
10 x 5,1 mV = 51 mV
Vrednost katerega koli kanala ADC lahko preberete s funkcijo adc_result (ch);
Kjer je ch številka kanala (0-5) v primeru ATmega8. Če ste izhod LM35 priključili na kanal ADC 0, pokličite
adc_result0 = adc_read (0);
to bo shranilo trenutni odčitek ADC -ja v spremenljivko adc_value. Podatkovni tip adc_value mora biti int, saj se lahko vrednost ADC giblje od 0-1023.
Kot smo videli, so rezultati ADC faktorja 5,1 mV in za 1 stopinjo C je izhod LM35 10 mV, torej sta 2 enoti ADC = 1 stopinja.
Torej, da dobimo temperaturo, delimo vrednost adc_value za dva
temperatura = adc_result0 /2;
Končno bo mikrokrmilnik prikazal temperaturo v stopinjah Celzija na alfanumeričnem LCD -prikazovalniku 16X2.
2. korak: Shema vezja
3. korak: Program
#ifndef F_CPU
#define F_CPU 1600000UL
#endif
#vključi
#vključi
#include "LCD/lcd.h"
void adc_init ()
{
// AREF = AVcc
ADMUX = (1 <
// Omogočanje ADC in prednastavitev 128
ADCSRA = (1 <
}
// prebere vrednost adc
uint16_t adc_read (uint8_t ch)
{
// izberite ustrezen kanal 0 ~ 7
ch & = 0b00000111; // AND delovanje s 7
ADMUX = (ADMUX & 0xF8) | ch;
// začni enojno pretvorbo
// napiši '1' v ADSC
ADCSRA | = (1 <
// počakajte, da se pretvorba dokonča
// ADSC spet postane '0'
medtem ko (ADCSRA & (1 <
vračilo (ADC);
}
int main ()
{
DDRB = 0xff;
uint16_t adc_result0;
int temp;
int daleč;
medpomnilnik char [10];
// inicializiramo adc in lcd
adc_init ();
lcd_init (LCD_DISP_ON_CURSOR); // KURZOR
lcd_clrscr ();
lcd_gotoxy (0, 0);
_dey_ms (50);
medtem ko (1)
{
adc_result0 = adc_read (0); // prebere vrednost adc pri PA0
temp = adc_result0/2.01; // ugotavljanje temperature
// lcd_gotoxy (0, 0);
// lcd_puts ("Adc =");
// itoa (adc_result0, medpomnilnik, 10); // prikaže vrednost ADC
// lcd_puts (vmesnik);
lcd_gotoxy (0, 0);
itoa (temp, pufer, 10);
lcd_puts ("Temp ="); // prikazana temperatura
lcd_puts (vmesnik);
lcd_gotoksi (7, 0);
lcd_puts ("C");
daleč = (1,8*temp) +32;
lcd_gotoksi (9, 0);
itoa (daleč, pufer, 10);
lcd_puts (vmesnik);
lcd_gotoksi (12, 0);
lcd_puts ("F");
_dey_ms (1000);
če (temp> = 30)
{lcd_clrscr ();
lcd_home ();
lcd_gotoksi (0,1);
lcd_puts ("FAN ON");
PORTB = (1 <
}
če (temp <= 30)
{
lcd_clrscr ();
lcd_home ();
lcd_gotoksi (7, 1);
lcd_puts ("FAN OFF");
PORTB = (0 <
}
}
}
4. korak: Pojasnite kodo
Upam, da veste, da boste vedeli, kako v tej kodi omogočiti ADC in kako povezati vmesnik LCD z mikrokrmilnikom Avr, ko je temperatura večja od 30 stopinj, potem je ventilator vklopljen, na LED zaslonu pa vidite VKLOP VKLOPLJENO in ko je temperatura nižja od 30, nato ventilator je izklopljen in lahko vidite FAN OFF
5. korak: Lahko prenesete celoten projekt
Klikni tukaj
Priporočena:
Termostatski nadzor ventilatorja za izmenjavo toplote: 7 korakov (s slikami)
Termostatski nadzor ventilatorja za izmenjavo toplote: Pozdravljeni, v tem navodilu vam bom pokazal, kako avtomatizirati ventilator za izmenjavo toplote s pomočjo poceni termostatskega modula. Nisem prepričan, kaj počnem, ne poskušaj
Arduino temperaturni senzor (LM35): 4 koraki
Arduino temperaturni senzor (LM35): V tem projektu vam bom pokazal, kako meriti temperaturo z vmesnikom LM35 in Arduino. Začnimo
Arduino temperaturni senzor z uporabo LM35: 3 koraki
Arduino temperaturni senzor z uporabo LM35: Uvod Serija LM35 so natančne temperaturne naprave z integriranim vezjem z izhodno napetostjo, linearno sorazmerno s temperaturo Celzija. LM35 je tri terminalni linearni temperaturni senzor iz nacionalnih polprevodnikov. Lahko se meri
Vodoodporen temperaturni senzor LM35: 6 korakov (s slikami)
Vodoodporen temperaturni senzor LM35: Tukaj je navodilo za vodotesnost LM35 za uporabo na privezanem ROV z uporabo avtomobilske 12V baterije kot vira energije. To je nastalo zaradi potrebe po tekmovanju MATE ROV. Serija LM35 so natančni temperaturni senzorji z integriranim vezjem, ki
Uporaba diod za nadzor ventilatorja .: 7 korakov
Uporaba diod za nadzor ventilatorja. To je alternativa uporabi reostatov in čipov za nadzor hitrosti ventilatorja. Ideja za to je prišla s spletnega mesta http://www.cpemma.co.uk/sdiodes.html ZDAJ http: //www.pcsilencioso.com/cpemma/sdiodes.html in želel sem jo še malo razložiti in zgraditi