Πίνακας περιεχομένων:
- Βήμα 1:
- Βήμα 2: Διάγραμμα κυκλώματος
- Βήμα 3: Πρόγραμμα
- Βήμα 4: Εξηγήστε τον κώδικα
- Βήμα 5: Μπορείτε να κατεβάσετε το πλήρες έργο
- Βήμα 6: Βίντεο
Βίντεο: Αισθητήρας θερμοκρασίας (LM35) Διασύνδεση με οθόνη ATmega32 και LCD - Αυτόματος έλεγχος ανεμιστήρα: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Αισθητήρας θερμοκρασίας (LM35) Διασύνδεση με ATmega32 και οθόνη LCD
Βήμα 1:
Σε αυτό το έργο, θα μάθετε πώς να διασυνδέετε έναν αισθητήρα θερμοκρασίας (LM35) με μικροελεγκτή AVR ATmega32 και οθόνη LCD.
Πριν από αυτό το έργο, πρέπει να μάθετε για τα παρακάτω άρθρα
πώς να προσθέσετε βιβλιοθήκη LCD στο στούντιο avr | φροντιστήριο μικροελεγκτή avr
εισαγωγή στο ADC στον μικροελεγκτή AVR | για αρχάριους
Ο αισθητήρας θερμοκρασίας (LM35) είναι ένας δημοφιλής και χαμηλού κόστους αισθητήρας θερμοκρασίας. Το Vcc μπορεί να είναι από 4V έως 20V όπως καθορίζεται από το φύλλο δεδομένων. Για να χρησιμοποιήσετε τον αισθητήρα, απλώς συνδέστε το Vcc σε 5V, το GND στο Ground και το Out σε ένα από τα ADC (κανάλι μετατροπέα αναλογικού σε ψηφιακό).
Η έξοδος είναι 10MilliVolts ανά βαθμό Κελσίου. Έτσι, εάν η έξοδος είναι 310 mV, τότε η θερμοκρασία είναι 31 βαθμοί C. Για να κάνετε αυτό το έργο, θα πρέπει να είστε εξοικειωμένοι με το ADC των AVR και επίσης με την οθόνη LCD. όσον αφορά την τάση είναι
5/1024 = 5,1mV περίπου
Επομένως, εάν το αποτέλεσμα ADC αντιστοιχεί σε 5,1mV, δηλαδή εάν είναι ανάγνωση ADC
10 χ 5,1 mV = 51 mV
Μπορείτε να διαβάσετε την τιμή οποιουδήποτε καναλιού ADC χρησιμοποιώντας τη συνάρτηση adc_result (ch).
Όπου ch είναι ο αριθμός καναλιού (0-5) σε περίπτωση ATmega8. Εάν έχετε συνδέσει τα LM35 out out στο κανάλι ADC 0, καλέστε
adc_result0 = adc_read (0);
Αυτό θα αποθηκεύσει την τρέχουσα ανάγνωση ADC σε μεταβλητή adc_value. Ο τύπος δεδομένων της adc_value πρέπει να είναι int καθώς η τιμή ADC μπορεί να κυμαίνεται από 0-1023.
Όπως είδαμε τα αποτελέσματα ADC είναι σε συντελεστή 5,1mV και για 1 βαθμό C η έξοδος LM35 είναι 10mV, άρα 2 μονάδες ADC = 1 βαθμός.
Έτσι για να πάρουμε τη θερμοκρασία διαιρούμε την τιμή adc_value με δύο
θερμοκρασία = adc_result0 /2;
Τέλος, ο μικροελεγκτής θα εμφανίσει τη θερμοκρασία σε βαθμούς Κελσίου στην αλφαριθμητική οθόνη LCD 16X2.
Βήμα 2: Διάγραμμα κυκλώματος
Βήμα 3: Πρόγραμμα
#ifndef F_CPU
#define F_CPU 1600000UL
#τέλος εαν
#περιλαμβάνω
#περιλαμβάνω
#include "LCD/lcd.h"
άκυρο adc_init ()
{
// AREF = AVcc
ADMUX = (1 <
// ADC Enable and prescaler of 128
ADCSRA = (1 <
}
// ανάγνωση τιμής adc
uint16_t adc_read (uint8_t ch)
{
// επιλέξτε το αντίστοιχο κανάλι 0 ~ 7
ch & = 0b00000111; // ΚΑΙ λειτουργία με 7
ADMUX = (ADMUX & 0xF8) | ch;
// έναρξη μεμονωμένης μετατροπής
// γράψτε '1' στο ADSC
ADCSRA | = (1 <
// περιμένετε να ολοκληρωθεί η μετατροπή
// Το ADSC γίνεται ξανά «0»
ενώ (ADCSRA & (1 <
επιστροφή (ADC)?
}
int main ()
{
DDRB = 0xff;
uint16_t adc_result0;
int temp?
int μακριά?
buff buff [10];
// αρχικοποίηση adc και lcd
adc_init ();
lcd_init (LCD_DISP_ON_CURSOR); //ΔΡΟΜΕΑΣ
lcd_clrscr ();
lcd_gotoxy (0, 0);
_delay_ms (50);
ενώ (1)
{
adc_result0 = adc_read (0); // διαβάστε την τιμή adc στο PA0
temp = adc_result0/2.01; // εύρεση της θερμοκρασίας
// lcd_gotoxy (0, 0);
// lcd_puts ("Adc =");
// itoa (adc_result0, buffer, 10); // εμφάνιση της τιμής ADC
// lcd_puts (buffer);
lcd_gotoxy (0, 0);
itoa (temp, buffer, 10)?
lcd_puts ("Temp ="); // οθόνη θερμοκρασίας
lcd_puts (buffer);
lcd_gotoxy (7, 0);
lcd_puts ("C");
μακριά = (1,8*θερμοκρασία) +32;
lcd_gotoxy (9, 0);
itoa (μακριά, buffer, 10)?
lcd_puts (buffer);
lcd_gotoxy (12, 0);
lcd_puts ("F");
_delay_ms (1000);
εάν (θερμοκρασία> = 30)
{lcd_clrscr ();
lcd_home ();
lcd_gotoxy (0, 1);
lcd_puts ("FAN ON");
PORTB = (1 <
}
εάν (θερμοκρασία <= 30)
{
lcd_clrscr ();
lcd_home ();
lcd_gotoxy (7, 1);
lcd_puts ("FAN OFF");
PORTB = (0 <
}
}
}
Βήμα 4: Εξηγήστε τον κώδικα
Ελπίζω να γνωρίζετε ότι θα ξέρετε πώς να ενεργοποιήσετε το ADC και πώς να διασυνδέσετε την οθόνη LCD με τον μικροελεγκτή Avr σε αυτόν τον κωδικό όταν η θερμοκρασία είναι πάνω από 30 μοίρες και ο ανεμιστήρας είναι ενεργοποιημένος και μπορείτε να δείτε στο led Display FAN ON και όταν η θερμοκρασία είναι μικρότερη από 30 και στη συνέχεια ο ανεμιστήρας είναι απενεργοποιημένο και μπορείτε να δείτε FAN OFF
Βήμα 5: Μπορείτε να κατεβάσετε το πλήρες έργο
Κάντε κλικ ΕΔΩ
Συνιστάται:
Οθόνη θερμοκρασίας με οθόνη LCD DHT11 και I2C 20x4: 6 βήματα
Παρακολούθηση θερμοκρασίας με DHT11 και I2C 20x4 LCD: Σε αυτό το σεμινάριο θα μάθουμε πώς να φτιάχνουμε μια απλή οθόνη θερμοκρασίας χρησιμοποιώντας έναν αισθητήρα DHT11 και I2C LCDΔείτε το βίντεο
TMP36 Αισθητήρας θερμοκρασίας και οθόνη LCD με χρήση Arduino (Tinkercad): 7 βήματα
TMP36 Αισθητήρας θερμοκρασίας και οθόνη LCD με χρήση Arduino (Tinkercad): Γεια σε όλους! Είμαστε φοιτητές από το University Tun Hussein Onn Malaysia (UTHM) που πραγματοποιούν ένα έργο για να δείξουν πώς μπορούμε να προσομοιώσουμε έναν αισθητήρα θερμοκρασίας, ένα LCD και ένα Arduino χρησιμοποιώντας το Tinkercad ως μέρος του προγράμματος σπουδών μας για το UQD0801 (Robocon 1) (
Αισθητήρας θερμοκρασίας και υγρασίας με οθόνη Arduino και LCD: 4 βήματα
Αισθητήρας θερμοκρασίας και υγρασίας με οθόνη Arduino και LCD: Γεια σας παιδιά, καλώς ήρθατε στο Artuino. Όπως είδατε, ξεκίνησα το An InstructableToday θα κάνουμε μια θερμοκρασία & Μετρητής υγρασίας με τη μονάδα DHT11. Ας ξεκινήσουμε Σκεφτείτε να εγγραφείτε και να κάνετε like στο βίντεο
Οθόνη LCD I2C / IIC - Μετατρέψτε μια οθόνη SPI LCD στην οθόνη LCD I2C: 5 βήματα
Οθόνη LCD I2C / IIC | Μετατρέψτε ένα SPI LCD σε οθόνη I2C LCD: η χρήση της οθόνης spi LCD χρειάζεται πάρα πολλές συνδέσεις για να γίνει κάτι που είναι πραγματικά δύσκολο να το κάνω, έτσι βρήκα μια μονάδα που μπορεί να μετατρέψει το i2c LCD σε spi LCD οπότε ας ξεκινήσουμε
Οθόνη θερμοκρασίας και επιπέδου φωτός με οθόνη στην οθόνη NOKIA 5110: 4 βήματα
Οθόνη θερμοκρασίας και φωτός με οθόνη στην οθόνη NOKIA 5110: Γεια σε όλους! Σε αυτήν την ενότητα κατασκευάζουμε απλή ηλεκτρονική συσκευή για την παρακολούθηση της θερμοκρασίας και του επιπέδου φωτός. Οι μετρήσεις αυτών των παραμέτρων εμφανίζονται στην οθόνη LCD NOKIA 5110. Η συσκευή βασίζεται στον μικροελεγκτή AVR ATMEGA328P. Η παρακολούθηση