جدول المحتويات:
- الخطوة 1:
- الخطوة 2: مخطط الدائرة
- الخطوة الثالثة: البرنامج
- الخطوة 4: شرح الكود
- الخطوة 5: يمكنك تنزيل المشروع الكامل
- الخطوة 6: الفيديو
فيديو: مستشعر درجة الحرارة (LM35) يتفاعل مع ATmega32 وشاشة LCD - التحكم الآلي في المروحة: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
مستشعر درجة الحرارة (LM35) يتفاعل مع ATmega32 وشاشة LCD
الخطوة 1:
في هذا المشروع ، سوف تتعلم كيفية توصيل مستشعر درجة الحرارة (LM35) مع متحكم AVR ATmega32 وشاشة LCD.
قبل هذا المشروع ، يجب عليك التعرف على المقالات التالية
كيفية إضافة مكتبة LCD في avr studio | AVR ميكروكنترولر تعليمي
مقدمة إلى ADC في متحكم AVR | للمبتدئين
مستشعر درجة الحرارة (LM35) هو مستشعر درجة حرارة مشهور ومنخفض التكلفة. يمكن أن يكون Vcc من 4V إلى 20V كما هو محدد في ورقة البيانات. لاستخدام المستشعر ، قم ببساطة بتوصيل Vcc بـ 5V و GND بالأرضي والخرج بأحد ADC (قناة المحول التناظري إلى الرقمي).
الناتج هو 10MilliVolts لكل درجة مئوية. لذلك إذا كان الناتج 310 مللي فولت ، فإن درجة الحرارة هي 31 درجة مئوية.لجعل هذا المشروع ، يجب أن تكون على دراية بـ ADC لـ AVRs وأيضًا باستخدام شاشة LCD ، لذا فإن دقة AVRs ADC هي 10 بت وللجهد المرجعي تستخدم 5 فولت لذا فإن الدقة من حيث الجهد
5/1024 = 5.1 مللي فولت تقريبًا
لذلك إذا كانت نتيجة ADC تتوافق مع 5.1mV ، أي إذا كانت قراءة ADC
10 × 5.1 مللي فولت = 51 مللي فولت
يمكنك قراءة قيمة أي قناة ADC باستخدام الوظيفة adc_result (ch) ؛
حيث ch هو رقم القناة (0-5) في حالة ATmega8. إذا قمت بتوصيل مخرج LM35 بقناة ADC 0 ، فاتصل
adc_result0 = adc_read (0) ،
سيؤدي هذا إلى تخزين قراءة ADC الحالية في adc_value المتغير. يجب أن يكون نوع بيانات adc_value صحيحًا حيث يمكن أن تتراوح قيمة ADC من 0-1023.
كما رأينا ، فإن نتائج ADC هي في عامل 5.1mV وبالنسبة إلى درجة 1 C يكون ناتج LM35 هو 10mV ، لذا فإن وحدتين من ADC = 1 درجة.
للحصول على درجة الحرارة ، نقسم adc_value على اثنين
درجة الحرارة = adc_result0 / 2 ؛
أخيرًا ، سيعرض المتحكم الدقيق درجة الحرارة بالدرجة المئوية في شاشة LCD الأبجدية الرقمية مقاس 16 × 2.
الخطوة 2: مخطط الدائرة
الخطوة الثالثة: البرنامج
#ifndef F_CPU
#define F_CPU 1600000UL
#إنهاء إذا
#يشمل
#يشمل
# تضمين "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
الفصل & = 0b00000111 ؛ // والتشغيل مع 7
ADMUX = (ADMUX & 0xF8) | الفصل ؛
// بدء تحويل واحد
// اكتب '1' إلى ADSC
ADCSRA | = (1 <
// انتظر حتى يكتمل التحويل
// ADSC يصبح "0" مرة أخرى
بينما (ADCSRA & (1 <
العودة (ADC) ؛
}
انت مين()
{
DDRB = 0xff ؛
uint16_t adc_result0 ؛
درجة الحرارة int
كثافة العمليات بعيدة
شار عازلة [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
درجة الحرارة = adc_result0 / 2.01 ؛ // إيجاد درجة الحرارة
// lcd_gotoxy (0 ، 0) ؛
// lcd_puts ("Adc =") ؛
// itoa (adc_result0، buffer، 10) ؛ // عرض قيمة ADC
// lcd_puts (المخزن المؤقت) ؛
lcd_gotoxy (0 ، 0) ؛
إيتوا (درجة الحرارة ، المخزن المؤقت ، 10) ؛
lcd_puts ("درجة الحرارة =") ؛ // عرض درجة الحرارة
lcd_puts (المخزن المؤقت) ؛
lcd_gotoxy (7 ، 0) ؛
lcd_puts ("C") ؛
بعيد = (1.8 * درجة حرارة) +32 ؛
lcd_gotoxy (9 ، 0) ؛
إيتوا (بعيد ، عازلة ، 10) ؛
lcd_puts (المخزن المؤقت) ؛
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 Microcontroller في هذا الرمز عندما تكون درجة الحرارة أكثر من 30 درجة ثم تكون المروحة قيد التشغيل ويمكنك أن ترى على شاشة العرض LED FAN وعندما تكون درجة الحرارة أقل من 30 ثم مروحة تم إيقاف تشغيل FAN ويمكنك رؤية FAN OFF
الخطوة 5: يمكنك تنزيل المشروع الكامل
انقر هنا
موصى به:
مستشعر درجة الحرارة وشاشة LCD TMP36 باستخدام Arduino (Tinkercad): 7 خطوات
مستشعر درجة الحرارة TMP36 وشاشة LCD باستخدام Arduino (Tinkercad): مرحبًا بالجميع! نحن طلاب من جامعة تون حسين أون ماليزيا (UTHM) ننفذ مشروعًا لتوضيح كيف يمكننا محاكاة مستشعر درجة الحرارة وشاشة LCD و Arduino باستخدام Tinkercad كجزء من منهجنا لـ UQD0801 (Robocon 1) (
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: 4 خطوات
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: مرحبًا يا رفاق في هذه التعليمات ، سوف نتعلم كيفية استخدام LM35 مع Arduino. Lm35 هو مستشعر لدرجة الحرارة يمكنه قراءة قيم درجة الحرارة من -55 درجة مئوية إلى 150 درجة مئوية. إنه جهاز ثلاثي الأطراف يوفر جهدًا تناظريًا يتناسب مع درجة الحرارة. عالية
مستشعر درجة الحرارة والرطوبة مع شاشة اردوينو وشاشة LCD: 4 خطوات
مستشعر درجة الحرارة والرطوبة مع شاشة Arduino وشاشة LCD: مرحبًا يا شباب ، مرحبًا بكم مرة أخرى في Artuino. كما رأيت ، لقد بدأت InstructableToday اليوم سنقوم بعمل درجة حرارة & أمبير ؛ مقياس الرطوبة مع وحدة DHT11. لنبدأ ضع في اعتبارك الاشتراك وإعجاب الفيديو
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: 7 خطوات (بالصور)
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: لا يزال في رحلة لإكمال & quot؛ المشروع القادم & quot ؛، & quot؛ ESP32 NTP ميزان حرارة للطهي بمسبار درجة الحرارة مع تصحيح Steinhart-Hart وإنذار درجة الحرارة & quot؛ هو Instructable يوضح كيف يمكنني إضافة مسبار درجة حرارة NTP ، بيزو ب
أتمتة المروحة باستخدام مستشعر درجة الحرارة MESH: 4 خطوات (بالصور)
أتمتة المروحة باستخدام مستشعر درجة الحرارة MESH: هل سئمت من تبديل المروحة & quot؛ تشغيل & quot؛ و & quot؛ إيقاف & quot ؛؟ ماذا لو كانت مروحتك آلية وقابلة للتخصيص بناءً على إعدادات درجة الحرارة المفضلة لديك؟ لقد قمنا ببناء مروحة آلية باستخدام MESH Temperature & amp؛ الرطوبة ، Wemo و