สารบัญ:
- ขั้นตอนที่ 1:
- ขั้นตอนที่ 2: แผนภาพวงจร
- ขั้นตอนที่ 3: โปรแกรม
- ขั้นตอนที่ 4: รหัสอธิบาย
- ขั้นตอนที่ 5: คุณสามารถดาวน์โหลด Project ตัวเต็มได้
- ขั้นตอนที่ 6: วิดีโอ
วีดีโอ: เซ็นเซอร์อุณหภูมิ (LM35) เชื่อมต่อกับ ATmega32 และจอแสดงผล LCD- ระบบควบคุมพัดลมอัตโนมัติ: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
เซ็นเซอร์อุณหภูมิ (LM35) เชื่อมต่อกับ ATmega32 และจอแสดงผล LCD
ขั้นตอนที่ 1:
ในโครงการนี้ คุณจะได้เรียนรู้วิธีเชื่อมต่อเซ็นเซอร์อุณหภูมิ (LM35) กับไมโครคอนโทรลเลอร์ AVR ATmega32 และจอ LCD
ก่อน โครงการนี้ คุณต้องมี เรียนรู้เกี่ยวกับบทความต่อไปนี้
วิธีเพิ่มไลบรารี่ lcd ใน avr studio| กวดวิชาไมโครคอนโทรลเลอร์ avr
บทนำสู่ ADC ในไมโครคอนโทรลเลอร์ AVR | สำหรับผู้เริ่มต้น
เซ็นเซอร์อุณหภูมิ (LM35) เป็นเซ็นเซอร์อุณหภูมิยอดนิยมและราคาประหยัด Vcc สามารถมีได้ตั้งแต่ 4V ถึง 20V ตามที่ระบุไว้ในแผ่นข้อมูล ในการใช้เซ็นเซอร์ เพียงเชื่อมต่อ Vcc กับ 5V, GND กับ Ground และ Out กับหนึ่งใน ADC (ช่องสัญญาณตัวแปลงอนาล็อกเป็นดิจิตอล)
เอาต์พุตคือ 10 มิลลิโวลต์ต่อองศาเซนติเกรด ดังนั้นถ้าเอาท์พุต 310 mV อุณหภูมิจะอยู่ที่ 31 องศาเซลเซียส ในการทำโปรเจ็กต์นี้ คุณควรทำความคุ้นเคยกับ ADC ของ AVR และการใช้ LCD ด้วย ดังนั้น ความละเอียดของ AVRs ADC คือ 10 บิต และสำหรับแรงดันอ้างอิงคุณใช้ 5V ดังนั้น ความละเอียด ในแง่ของแรงดันไฟฟ้าคือ
5/1024 = 5.1mV โดยประมาณ
ดังนั้นหากผลลัพธ์ของ ADC สอดคล้องกับ 5.1mV เช่น ถ้าค่าที่อ่านได้จาก ADC คือ
10 x 5.1mV = 51mV
คุณสามารถอ่านค่าของช่องสัญญาณ ADC ใดก็ได้โดยใช้ฟังก์ชัน adc_result(ch);
โดยที่ ch คือหมายเลขช่อง (0-5) ในกรณีของ ATmega8 หากคุณเชื่อมต่อเอาท์พุตของ LM35 เข้ากับช่อง ADC 0 แล้วให้โทร
adc_result0 = adc_read(0);
สิ่งนี้จะเก็บการอ่าน ADC ปัจจุบันในตัวแปร adc_value ชนิดข้อมูลของ adc_value ควรเป็น int เนื่องจากค่า ADC สามารถอยู่ในช่วงตั้งแต่ 0-1023
ตามที่เราเห็นผลลัพธ์ของ ADC เป็นปัจจัยที่ 5.1mV และสำหรับ 1 องศา C ผลลัพธ์ของ LM35 คือ 10mV ดังนั้น ADC 2 หน่วย = 1 องศา
เพื่อให้ได้อุณหภูมิเราหาร adc_value ด้วยสอง
อุณหภูมิ = adc_result0 /2;
สุดท้ายไมโครคอนโทรลเลอร์จะแสดงอุณหภูมิเป็นองศาเซนติเกรดในจอ LCD ตัวอักษรและตัวเลขขนาด 16X2
ขั้นตอนที่ 2: แผนภาพวงจร
ขั้นตอนที่ 3: โปรแกรม
#ifndef F_CPU
#define F_CPU 16000000UL
#endif
#รวม
#รวม
#รวม "LCD/lcd.h"
เป็นโมฆะ adc_init()
{
// AREF = AVcc
ADMUX = (1<
// เปิดใช้งาน ADC และพรีสเกลเลอร์ 128
ADCSRA = (1<
}
// อ่านค่า adc
uint16_t adc_read (uint8_t ch)
{
// เลือกช่องที่สอดคล้องกัน 0~7
ช &= 0b00000111; // AND การดำเนินการกับ 7
ADMUX = (ADMUX & 0xF8)|ch;
// เริ่มการแปลงเดี่ยว
// เขียน '1' ไปยัง ADSC
ADCSRA |= (1<
//รอการแปลงให้เสร็จ
// ADSC กลายเป็น '0' อีกครั้ง
ในขณะที่ (ADCSRA & (1<
ผลตอบแทน (ADC);
}
int หลัก ()
{
DDRB=0xff;
uint16_t adc_result0;
อุณหภูมิภายใน;
ภายในไกล;
ถ่านบัฟเฟอร์[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, บัฟเฟอร์, 10); //แสดงค่า ADC
//lcd_puts(บัฟเฟอร์);
lcd_gotoxy(0, 0);
itoa(อุณหภูมิ บัฟเฟอร์ 10);
lcd_puts("Temp="); //แสดงอุณหภูมิ
lcd_puts(บัฟเฟอร์);
lcd_gotoxy(7, 0);
lcd_puts("C");
ไกล=(1.8*อุณหภูมิ)+32;
lcd_gotoxy(9, 0);
itoa(ไกล, บัฟเฟอร์, 10);
lcd_puts(บัฟเฟอร์);
lcd_gotoxy(12, 0);
lcd_puts("F");
_delay_ms(1000);
ถ้า(อุณหภูมิ>=30)
{lcd_clrscr();
lcd_home();
lcd_gotoxy(0, 1);
lcd_puts("เปิดพัดลม");
PORTB=(1<
}
ถ้า (อุณหภูมิ <=30)
{
lcd_clrscr();
lcd_home();
lcd_gotoxy(7, 1);
lcd_puts("ปิดพัดลม");
PORTB=(0<
}
}
}
ขั้นตอนที่ 4: รหัสอธิบาย
ฉันหวังว่าคุณจะรู้ว่าคุณจะรู้วิธีเปิดใช้งาน ADC และวิธีเชื่อมต่อ LCD กับไมโครคอนโทรลเลอร์ Avr ในรหัสนี้เมื่ออุณหภูมิมากกว่า 30 องศาจากนั้นพัดลมจะเปิดขึ้นและคุณสามารถเห็นบนจอแสดงผล LED FAN ON และเมื่ออุณหภูมิน้อยกว่า 30 แล้วพัดลม ปิดอยู่และคุณจะเห็น FAN OFF
ขั้นตอนที่ 5: คุณสามารถดาวน์โหลด Project ตัวเต็มได้
คลิกที่นี่
แนะนำ:
เซ็นเซอร์อุณหภูมิ TMP36 และจอแสดงผล LCD โดยใช้ Arduino (Tinkercad): 7 ขั้นตอน
เซ็นเซอร์อุณหภูมิ TMP36 และจอ LCD โดยใช้ Arduino (Tinkercad): สวัสดีทุกคน! เราเป็นนักศึกษาจากมหาวิทยาลัย Tun Hussein Onn Malaysia (UTHM) ดำเนินโครงการเพื่อสาธิตวิธีที่เราสามารถจำลองเซ็นเซอร์อุณหภูมิ จอแอลซีดี และ Arduino โดยใช้ Tinkercad เป็นส่วนหนึ่งของหลักสูตรสำหรับ UQD0801 (Robocon 1) (
LPC2148 เชื่อมต่อกับ LCD 16*2: 5 ขั้นตอน
LPC2148 การเชื่อมต่อกับ LCD 16*2: ในบทช่วยสอนนี้ ฉันจะบอกคุณเกี่ยวกับวิธีการเชื่อมต่อ lpc2148 กับ LCD 16*2
Magic Answers Ball พร้อม Arduino Pro Mini และจอแสดงผล TFT: 7 ขั้นตอน
Magic Answers Ball พร้อม Arduino Pro Mini และจอแสดงผล TFT: ไม่นานมานี้ ฉันกับลูกสาวได้แยกลูกบอล Magic 8 ออก เพื่อที่เธอจะได้แทนที่คำตอบยี่สิบรายการด้วยตัวเลือกที่เธอเลือก นี่เป็นของขวัญสำหรับเพื่อนของเธอ นั่นทำให้ฉันนึกถึงวิธีการทำในระดับที่ใหญ่ขึ้น เราขอมีม
Atmega16 เชื่อมต่อกับ LCD ในโหมด 4 บิต (Proteus Simulation): 5 ขั้นตอน
Atmega16 การเชื่อมต่อกับ LCD ในโหมด 4 บิต (การจำลอง Proteus): ในบทช่วยสอนนี้ เราจะบอกคุณเกี่ยวกับวิธีที่คุณสามารถเชื่อมต่อไมโครคอนโทรลเลอร์ atmega16 กับ LCD 16*2 ในโหมด 4 บิต
LCD เชื่อมต่อกับ 8051 (AT89S52): 4 ขั้นตอน
LCD Interfacing With 8051 (AT89S52): สวัสดีนี่คือจุดเริ่มต้นของ 8051 LCD สามารถเรียกใช้ด้วยโหมด 8 บิตและ 4 บิต แต่ในกรณีของ 8051 8 บิตส่วนใหญ่จะใช้ 4 บิตในกรณีของ Arduino ,AVR และ PIC โหมด 8 บิตหมายความว่าใช้ 8 สายสำหรับการส่งที่อยู่และข้อมูล