ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đề án Bộ đo nhiệt độ hiển thị bằng led 7 đoạn trên PC BÀI TẬP GIỮA KỲ MÔN HỌC VI XỬ LÝ, VI ĐIỀU KHIỂN Ngành Công nghệ kỹ thuật cơ điện tử Họ tên và mã[.]
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đề án: Bộ đo nhiệt độ hiển thị led đoạn PC BÀI TẬP GIỮA KỲ MÔN HỌC VI XỬ LÝ, VI ĐIỀU KHIỂN Ngành: Công nghệ kỹ thuật điện tử Họ tên mã sinh viên: Trần Công Lương – 19021074 Vũ Đức Mạnh – 19021077 Vũ Đức Mạnh – 19021079 Giảng viên : PGS TS Phạm Mạnh Thắng HÀ NỘI - 2022 I Cơ sở lý thuyết Giới thiệu - Ngày nay, với ứng dụng khoa học kỹ thuật tiên tiến, giới ngày thay đổi, văn minh đại Sự phát triển kỹ thuật điện tử tạo hàng loạt thiết bị với đặc điểm bật xác cao, tốc độ nhanh, gọn nhẹ yếu tố cần thiết góp phần cho hoạt động người đạt hiệu cao - Các điều khiển sử dụng vi điều khiển đơn giản để vận hành sử dụng lại điều phức tạp Các vi điều khiển theo thời gian với phát triển công nghệ bán dẫn tiến triển nhanh, từ vi điều khiển bit đơn giản đến vi điều khiển 32 bit, sau 64 bit Điện tử trở thành ngành khoa học đa nhiệm vụ Với môn học Vi điều khiển này, nhóm em định nhận làm thiết kế mạch đo hiển thị nhiệt độ môi trường LED đoạn Các linh kiện dùng cho mạch thiết kế - Vi điều khiển Arduino Arduino Uno bo mạch vi điều khiển dựa chip ATmega168 ATmega 328 Cấu trúc chung bao gồm: 14 chân vào tín hiệu số, có chân sử dụng để điều chế độ rộng xung Có chân đầu vào tín hiệu tương tự cho phép kết nối với cảm biến bên để thu thập số liệu Sử dụng dao động thạch anh tần số dao động 16MHz Có cổng kết nối chuẩn USB để nạp chương trình vào bo mạch chân cấp nguồn cho mạch, nút reset Nó chứa tất thứ cần thiết để hỗ trợ vi điều khiển, nguồn cung cấp cho Arduino từ máy tính thơng qua cổng USB từ nguồn chuyêndụng biến đổi từ xoay chiều sang chiều lấy nguồn từ pin - IC 74HC595 IC 74HC595 IC thông dụng với khả năng dịch bit ghi nhớ tạm thời 8bit Với khả đó, IC 74HC595 có khả mở rộng số lượng chân vốn Board mạch Arduino - Cảm biến LM35 LM35 là cảm biến nhiệt độ sử dụng rộng rãi Nó hiển thị giá trị dạng điện áp đầu thay độ C LM35 hiển thị giá trị điện áp cao cặp nhiệt điện khơng cần khuếch đại điện áp đầu Điện áp đầu LM35 tỷ lệ với nhiệt độ C - Một số linh kiện khác: Led Đoạn LED Điện trở II Nội dung Mô proteus - Trạng thái dừng - Nhiệt độ 35 độ C - Đèn vàng sáng - Nhiệt độ lớn 35 độ C - Đèn xanh sáng - Nhiệt độ nhỏ 35 độ C - Đèn đỏ sáng Code: #define t 10 unsigned char LED_0F[]= {// A b C d E F 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x 86,0xFF,0xbf }; unsigned char LED[4]; int SCLK = 2; int RCLK = 1; int DIO = 0; int ledred = 8; int ledyellow = 7; int ledblue = 4; int LM35Pin = A0; void setup() { pinMode(SCLK,OUTPUT); pinMode(RCLK,OUTPUT); pinMode(DIO,OUTPUT); pinMode(ledred,OUTPUT); pinMode(ledyellow,OUTPUT); pinMode(ledblue,OUTPUT); pinMode(LM35Pin,OUTPUT); } void loop() { int bien =3753; LED[0]=1; LED[1]=2; LED[2]=3; LED[3]=4; while(1) { int reading = analogRead(LM35Pin); //có nhiệm vụ đọc tín hiệu từ chân analog float voltage = reading *5.0 / 1024.0;//voltage = giá trị điện áp từ cảm biến chia cho mức analog lớn ( 1024) float temp = voltage * 100.0;//Nhiệt độ thay đổi tuyến tính 10mV/độ C nên đổi từ volt sang độ C ta cần nhân giá trị điện với 100 Serial.println(temp); hienthi(temp); lệnh hiển thị } } void hienthi(int so) // hàm biến số hiển thị led đoạn { shiftOut(DIO, SCLK, MSBFIRST, LED_0F[(so/1000)%10]); shiftOut(DIO, SCLK, MSBFIRST, 0x01); digitalWrite(RCLK, LOW); digitalWrite(RCLK,HIGH); //delay(t); shiftOut(DIO, SCLK, MSBFIRST, LED_0F[so/100%10]); shiftOut(DIO, SCLK, MSBFIRST, 0x01