Sadržaj:
- Korak 1:
- Korak 2: Dijagram kola
- Korak 3: Program
- Korak 4: Objasnite kôd
- Korak 5: Možete preuzeti cijeli projekt
- Korak 6: Video
Video: Senzor temperature (LM35) Interfejs sa ATmega32 i LCD ekranom - Automatsko upravljanje ventilatorom: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Senzor temperature (LM35) Interfejs sa ATmega32 i LCD ekranom
Korak 1:
U ovom projektu ćete naučiti kako spojiti temperaturni senzor (LM35) sa AVR ATmega32 mikrokontrolerom i LCD ekranom.
Prije ovog projekta morate saznati sljedeće članke
kako dodati lcd biblioteku u avr studio | avr mikrokontroler vodič
uvod u ADC u AVR mikrokontroleru | za početnike
Senzor temperature (LM35) popularan je i jeftin senzor temperature. Vcc može biti od 4V do 20V prema specifikaciji. Za korištenje senzora jednostavno spojite Vcc na 5V, GND na uzemljenje i izlaz na jedan od ADC -a (analogno -digitalni kanal pretvarača).
Izlaz je 10 milivolti po stepenu Celzijusa. Dakle, ako je izlaz 310 mV, tada je temperatura 31 stupanj C. Da biste napravili ovaj projekt, trebali biste biti upoznati s ADC -om AVR -a, a također i korištenjem LCD -a. Dakle, rezolucija AVR -ova ADC -a je 10 bita, a za referentni napon koristite 5 V tako da je rezolucija u pogledu napona je
5/1024 = približno 5,1 mV
Dakle, ako rezultat ADC -a odgovara 5.1mV, tj. Ako je očitanje ADC -a
10 x 5,1 mV = 51 mV
Vrijednost bilo kojeg ADC kanala možete pročitati pomoću funkcije adc_result (ch);
Gdje je ch broj kanala (0-5) u slučaju ATmega8. Ako ste spojili izlaz LM35 na ADC kanal 0, tada nazovite
adc_result0 = adc_read (0);
ovo će pohraniti trenutno očitanje ADC -a u varijablu adc_value. Tip podataka adc_value trebao bi biti int jer vrijednost ADC-a može biti u rasponu od 0-1023.
Kao što smo vidjeli, rezultati ADC -a su faktor 5.1mV i za 1 stepen C izlaz LM35 je 10mV, tako da su 2 jedinice ADC -a = 1 stepen.
Dakle, da bismo dobili temperaturu, podijelimo vrijednost adc_value na dva
temperatura = adc_result0 /2;
Konačno, mikrokontroler će prikazati temperaturu u stepenima Celzijusa na alfanumeričkom LCD ekranu 16X2.
Korak 2: Dijagram kola
Korak 3: Program
#ifndef F_CPU
#define F_CPU 1600000UL
#endif
#include
#include
#include "LCD/lcd.h"
void adc_init ()
{
// AREF = AVcc
ADMUX = (1 <
// Omogućivanje ADC -a i predskaler 128
ADCSRA = (1 <
}
// očitavanje adc vrijednosti
uint16_t adc_read (uint8_t ch)
{
// odabir odgovarajućeg kanala 0 ~ 7
ch & = 0b00000111; // AND operacija sa 7
ADMUX = (ADMUX & 0xF8) | ch;
// pokretanje pojedinačne konverzije
// upisuje '1' u ADSC
ADCSRA | = (1 <
// čekati da se konverzija dovrši
// ADSC ponovo postaje '0'
dok (ADCSRA & (1 <
povrat (ADC);
}
int main ()
{
DDRB = 0xff;
uint16_t adc_result0;
int temp;
int far;
me uspremnik [10];
// inicijaliziramo adc i lcd
adc_init ();
lcd_init (LCD_DISP_ON_CURSOR); // KURSOR
lcd_clrscr ();
lcd_gotoxy (0, 0);
_kašnjenje_ms (50);
dok (1)
{
adc_result0 = adc_read (0); // očitavanje adc vrijednosti na PA0
temp = adc_result0/2.01; // utvrđivanje temperature
// lcd_gotoxy (0, 0);
// lcd_puts ("Adc =");
// itoa (adc_result0, bafer, 10); // prikazuje vrijednost ADC -a
// lcd_puts (bafer);
lcd_gotoxy (0, 0);
itoa (temp, bafer, 10);
lcd_puts ("Temp ="); // temperatura prikaza
lcd_puts (bafer);
lcd_gotoxy (7, 0);
lcd_puts ("C");
daleko = (1,8*temp) +32;
lcd_gotoxy (9, 0);
itoa (daleko, tampon, 10);
lcd_puts (bafer);
lcd_gotoxy (12, 0);
lcd_puts ("F");
_dey_ms (1000);
if (temp> = 30)
{lcd_clrscr ();
lcd_home ();
lcd_gotoxy (0, 1);
lcd_puts ("FAN ON");
PORTB = (1 <
}
ako (temp <= 30)
{
lcd_clrscr ();
lcd_home ();
lcd_gotoxy (7, 1);
lcd_puts ("FAN OFF");
PORTB = (0 <
}
}
}
Korak 4: Objasnite kôd
Nadam se da znate da ćete znati kako omogućiti ADC i kako spojiti LCD sa Avr mikrokontrolerom u ovom kodu kada je temperatura veća od 30 stepeni, onda je ventilator uključen i možete vidjeti na LED ekranu VENTILATOR UKLJUČEN, a kada je temperatura manja od 30 onda ventilator je isključen i možete vidjeti da je ventilator isključen
Korak 5: Možete preuzeti cijeli projekt
Kliknite ovdje
Preporučuje se:
ESP8266 NodeMCU + LM35 + Blynk (IOT meteorološka stanica/ digitalni senzor temperature): 4 koraka
ESP8266 NodeMCU + LM35 + Blynk (IOT meteorološka stanica/ digitalni senzor temperature): Zdravo momci! U ovom Instructable -u naučit ćemo kako spojiti LM35 senzor na NodeMCU i prikazati te podatke o temperaturi na internetu na pametnom telefonu s aplikacijom Blynk. (Također u ovom projektu koristit ćemo SuperChart widget u Bl
Senzor u boji sa LCD ekranom: 6 koraka
Senzor u boji sa LCD ekranom: Cilj je stvoriti uređaj koji bi daltonistima omogućio otkrivanje boja bez potrebe da vide boju. Korištenjem LCD ekrana sa senzorom boja bi se pokupila, a zatim prenijela u riječi na LCD ekran. Ovaj uređaj bi
Senzor temperature i vlažnosti sa Arduino i LCD ekranom: 4 koraka
Senzor temperature i vlažnosti sa Arduinom i LCD ekranom: Zdravo momci, dobrodošli nazad u Artuino. Kao što ste vidjeli, započeo sam InstructableToday ćemo napraviti Temperature & Mjerač vlage sa DHT11 modulom. PočnimoP.S. Pretplatite se i lajkujte video
Android (remotexy) korisnički interfejs za upravljanje servo motorom koristeći Arduino i Bluetooth: 7 koraka (sa slikama)
Android (remotexy) korisnički interfejs za upravljanje servo motorom pomoću Arduina i Bluetootha: U ovom uputstvu ću vam dati brzi korak da napravite Android korisničko sučelje koristeći Remotexy Interface Maker za upravljanje Servo motorom povezanim na Arduino Mega putem Bluetooth -a. Ovaj video prikazuje kako će korisničko sučelje kontrolirati brzinu i položaj servo motora
Korištenje dioda za upravljanje ventilatorom .: 7 koraka
Korištenje dioda za kontrolu ventilatora. Ovo je alternativa korištenju reostata i čipova za kontrolu brzine ventilatora. Ideja za ovo došla je sa http://www.cpemma.co.uk/sdiodes.html SADA http: //www.pcsilencioso.com/cpemma/sdiodes.html i htio sam to još malo objasniti i izgraditi