THIẾT KẾ CÂN ĐIỆN TỬ VÀ HIỂN THỊ TRÊN MÁY TÍNH

73 556 16
THIẾT KẾ CÂN ĐIỆN TỬ VÀ HIỂN THỊ TRÊN MÁY TÍNH

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Thiết kế cân điện tử giao tiếp máy tính dùng Adruino. Cân trọng lượng là một nhu cầu cần thiết và không thể thiếu trong đời sống xã hội, từ người nông dân đến các khu chế xuất, các nhà máy, xí nghiệp, ... Xuất phát từ nhu cầu thực tế và ứng dụng công nghệ vi điều khiển các nhà khoa học đã nghiên cứu ra các loại cân điện tử hiển thị số có thể cân được trọng lượng từ mg đến hàng trăm tấn mà các loại cân cơ học bình thường không thể thực hiện được. Trên thực tế các siêu thị, các nơi trao đổi hàng hóa, các nhà máy sản xuất đều muốn biết khối lượng hàng hóa, sản phẩm hay nguyên liệu một cách nhanh chóng và chính xác, và kể cả cho các lĩnh vực khác như bến cảng, trạm cân xe giao thông, ... đều được sử dụng cân điện tử.

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT KHOA CÔNG NGHỆ THÔNG TIN Nguyễn Đức Thành THIẾT KẾ CÂN ĐIỆN TỬ HIỂN THỊ TRÊN MÁY TÍNH ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: CNKT Điện tử Viễn thơng Cán hướng dẫn: ThS Nguyễn Thu Hiền TÓM TẮT Tóm tắt: Cân trọng lượng nhu cầu cần thiết thiếu đời sống xã hội, từ người nông dân đến khu chế xuất, nhà máy, xí nghiệp, Xuất phát từ nhu cầu thực tế ứng dụng công nghệ vi điều khiển nhà khoa học nghiên cứu loại cân điện tử hiển thị số cân trọng lượng từ mg đến hàng trăm mà loại cân học bình thường khơng thể thực Trên thực tế siêu thị, nơi trao đổi hàng hóa, nhà máy sản xuất muốn biết khối lượng hàng hóa, sản phẩm hay nguyên liệu cách nhanh chóng xác, kể cho lĩnh vực khác khoáng sản, bến cảng, trạm cân xe giao thông, sử dụng cân điện tử Từ khóa: Load cell, HX711, Arduino Hà Nội, ngày tháng năm 2018 Xác nhận GVHD LỜI CAM ĐOAN Em xin cam đoan đồ án tốt nghiệp với đề tài “Thiết kế cân điện tử hiển thị máy tính” cơng trình nghiên cứu riêng em, không chép người khác Các số liệu, kết đồ án trung thực chưa cơng bố cơng trình khác Nếu khơng nêu trên, em xin hồn toàn chịu trách nhiệm đề tài Hà Nội, ngày tháng năm 2018 Người cam đoan MỤC LỤC Danh mục hình ảnh Danh mục bảng biểu MỞ ĐẦU Chương Tổng quan Cân điện tử 1.1 Tìm hiểu loại cân điện tử thường dùng 1.2 Lựa chọn phương án thi công Chương Giới thiệu linh kiện sử dụng 2.1 Cảm biến Loadcell 2.1.1 Loadcell 2.1.2 Giới thiệu Loadcell sử dụng mạch 15 2.1.3 Thành phần cấu tạo cân điện tử 16 2.1.4 Module HX711 .17 2.2 LCD 18 2.2.1 Thông số kĩ thuật LCD 19 2.2.2 Bộ nhớ LCD .21 2.2.3 Các chân điều khiển LCD .23 2.3 Các linh kiện khác .24 Arduino Uno R3 24 2.3.1 Một số loại Arduino 25 2.3.2 Arduino Uno R3 .29 2.3.3 Atmega328 33 2.3.4 Lập trình cho Arduino Uno .37 2.4 Giao tiếp với máy tính 45 Chương Thiết kế thi công .47 3.1 Sơ đồ khối 47 3.2 Sơ đồ nguyên lý 47 3.3 Nguyên lý hoạt động 49 Kết luận hướng phát triển đề tài 52 PHỤ LỤC 53 Chương trình .53 Lập trình cho giao diện .56 TÀI LIỆU THAM KHẢO 59 Danh mục hình ảnh Hình 1.1 Cân bàn điện tử Hình 1.2 Cân sàn điện tử Hình 1.3 Cân phân tích điện tử .3 Hình 1.4 Cân đếm vật liệu Hình 1.5 Cân vàng điện tử Hình 1.6 Cân khối lượng tính thành tiền Hình 1.7 Cân dùng để đo khối lượng oto Hình 1.8 Sơ đồ khối cân điện tử Hình 2.1 Loadcell kiểu điện trở .9 Hình 2.2 Strain gauge 10 Hình 2.3 Điện trở tỉ lệ với lực tác động 11 Hình 2.4 Các strain gauge bố trí loadcell .11 Hình 2.5 Strain gauge biến dạng theo thân loadcell 12 Hình 2.6 Loadcell strain gauge 12 Hình 2.7 Cầu điện trở Wheatstone .13 Hình 2.8 Loadcell cân 14 Hình 2.9 Loadcell thay đổi 14 Hình 2.10 Loadcell dạng kéo chữ S .14 Hình 2.11 Loadcell dạng uốn 14 Hình 2.12 Loadcell dạng nén bề mặt thấp 15 Hình 2.13 Loadcell dạng nén hình 15 Hình 2.14 Module HX711 17 Hình 2.15 Sơ đồ chân Module HX711 18 Hình 2.16 Sơ đồ chân Wheatstone (loadcell) 18 Hình 2.17 LCD 1604 19 Hình 2.18 LCD 12864 19 Hình 2.19 LCD 2004 19 Hình 2.20 LCD 1602 19 Hình 2.21 Màn hình LCD 1602 xanh 19 Hình 2.22 Sơ đồ chân LCD 1602 20 Hình 2.23 Vùng nhớ DDRAM 21 Hình 2.24 Vùng nhớ CGROM 22 Hình 2.25 Hoạt động chân RS .23 Hình 2.26 Arduino Due 25 Hình 2.27 Arduino Mega 2560 R3 25 Hình 2.28 Arduino UNO R3 26 Hinh 2.29 Arduino Leonardo 26 Hình 2.30 Arduino Uno R3 SMD .27 Hình 2.31 Arduino Nano 27 Hình 2.32 Arduino Pro Micro 28 Hình 2.33 Arduino Pro Mini 28 Hình 2.34 Board USB-UART 28 Hình 2.35 Sơ đồ cấu trúc board Arduino Uno .30 Hình 2.36 Sơ đồ chân Arduino Uno 31 Hình 2.37 Các chân Analog Digital board 32 Hình 2.38 Một số linh kiện sử dụng cho board Arduino Uno 33 Hình 2.39 Atmega328 34 Hình 2.40 Sơ đồ chân Atmega328 34 Hình 2.41 Chức bit ghi SREG .36 Hình 2.42 Giao diện Arduino IDE 37 Hình 2.43 Một số ký hiệu chức Arduino IDE 38 Hình 2.44 Vùng thơng báo Arduino IDE .38 Hình 2.45 Menu File Arduino IDE 39 Hình 2.46 Kết nối Arduino Uno R3 với máy tính 41 Hình 2.47 Arduino Uno R3 kết nối với COM3 .42 Hình 2.48 Chọn board Arduino Uno IDE 42 Hình 2.49 Chọn cổng COM cho Arduino IDE 43 Hình 2.50 Xác nhận cổng COM .43 Hình 2.51 Cửa sổ thiết kế dòng lệnh 44 Hình 2.52 Nạp chương trình xuống Arduino Uno R3 .44 Hình 2.53 Visual Studio 45 Hình 2.54 Ví dụ Visual Basic 45 Hình 2.55 Ví dụ Visual Basic 46 Hình 3.1 Sơ đồ khối tổng quát 47 Hình 3.2 Sơ đồ nguyên lý mạch 47 Hình 3.3 Mô mạch 49 Hình 3.4 Chỉnh sửa giao diện 50 Hình 3.5 Hồn thành giao diện .50 Hình 3.6 Hồn thành thi cơng mạch .51 Danh mục bảng biểu Bảng 1.1 Thông số cân bàn điện tử Bảng 1.2 Thông số cân sàn điện tử Bảng 1.3 Thông số cân phân tích điện tử .4 Bảng 1.4 Thông số cân đếm vật liệu Bảng 1.5 Thông số cân vàng điện tử Bảng 1.6 Thông số cân khối lượng tính tiền Bảng 1.7 Thơng số cân khối lượng oto Bảng 2.1 Thông số kỹ thuật Loadcell 5Kg 15 Bảng 2.2 Thông số kỹ thuật module HX711 17 Bảng 2.3 Thông số kỹ thuật LCD 1602 19 Bảng 2.4 Chức chân LCD 20 Bảng 2.5 Thông số kỹ thuật board Arduino Uno 29 Bảng 2.6 Thông số Atmega328 34 Bảng 2.7 Một số câu lệnh, cấu trúc thường gặp 40 Bảng 2.8 Bảng so sánh với cân thực tế 51 MỞ ĐẦU Ngày nay, với phát triển công nghệ vi điện tử, kỹ thuật số hệ thống điều khiển dần tự động hóa Với kỹ thuật tiên tiến vi xử lý, vi mạch số ứng dụng vào lĩnh vực điều khiển, hệ thống điều khiển khí thơ sơ, với tốc độ xử lí chậm chạp xác thay hệ thống điều khiển tự động với lệnh chương trình thiết lập trước Cân điện tử nhu cầu cần thiết xã hội Do có tốc độ đo khối lượng nhanh xác, cân khối lượng nhỏ từ vài gam hàng Từ ưu điểm mà cân điện tử ứng dụng phổ biến nhiều loại ngành nghề như: xây dựng – đo vật liệu, vận tải – kiểm tra trọng lượng xe, khoáng sản – đong đếm khoáng sản thu được, hay siêu thị, nhà hàng dùng loại cân nhỏ để kiểm tra nguyên vật liệu đầu vào đầu ra, … 10 Giới thiệu chung giao diện máy tính cho cân điện tử Phần mềm Visual Studio phần mềm công ty phần mềm Mycrosoft cung cấp Phần mềm giúp để lập trình tạo giao diện (phần mềm máy tính) cách dễ dàng tiện lợi Hình 2.53 Visual Studio Microsoft Visual Studio mơi trường phát triển tích hợp (IDE) từ Microsoft Được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, trang web, ứng dụng web dịch vụ web Visual Studio sử dụng tảng phát triển phần mềm Microsoft Windows API, Windows Forms, Windows Presentation Foundation, Windows Store Microsoft Silverlight Microsoft Visual Studio sản xuất hai ngôn ngữ máy mã số quản lý 59 Hình 2.54 Ví dụ Visual Basic Visual Studio bao gồm trình soạn thảo mã hỗ trợ IntelliSense cải tiến mã nguồn Trình gỡ lỗi tích hợp hoạt động trình gỡ lỗi mức độ mã nguồn gỡ lỗi mức độ máy Cơng cụ tích hợp khác bao gồm mẫu thiết kế hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp thiết kế giản đồ sở liệu Nó chấp nhận plug-in nâng cao chức hầu hết cấp bao gồm thêm hỗ trợ cho hệ thống quản lý phiên (như Subversion) bổ sung thêm công cụ biên tập thiết kế trực quan cho miền ngôn ngữ cụ thể cơng cụ dành cho khía cạnh khác quy trình phát triển phần mềm Hình 2.55 Ví dụ Visual Basic Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác cho phép trình biên tập mã gỡ lỗi để hỗ trợ (mức độ khác nhau) ngơn ngữ lập trình Các ngơn ngữ tích hợp gồm có C, C++ C++/CLI (thông qua Visual C++), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#) F# (như Visual Studio 2010) Hỗ trợ cho ngôn ngữ khác J++/J#, Python Ruby thông qua dịch vụ cài đặt riêng rẽ Nó hỗ trợ XML/XSLT, HTML/XHTML, JavaScript CSS Trong đề tài này, giao diện cân điện tử viết phần mềm Visual Studio ngôn ngữ Visual Basic 60 CHƯƠNG 3: THIẾT KẾ THI CÔNG 3.1 Sơ đồ khối Hình 3.1 Sơ đồ khối tổng quát 3.2 Sơ đồ nguyên lý Hình 3.2 Sơ đồ nguyên lý mạch 61 Lưu đồ thuật toán: Bắt đầu Khởi tạo liệu Đọc tín hiệu từ HX711 Chuyển đổi giá trị Xử lý trung tâm Nút bấm Bấm nút Không bấm nút Hiển thị LCD Hiển thị máy tính 62 3.3 Ngun lý hoạt động Hình 3.3 Mơ mạch Cấp nguồn cho mạch điện tử thông qua cổng USB board Arduino Dùng vật (nhỏ 5kg) đặt lên bàn cân, loadcell bị biến dạng, HX711 đọc liệu từ loadcell, qua chân DT SCK đưa chân D5 D6 board Arduino Sau đó, Arduino xử lí liệu, thơng qua chân D7, D8, D9, D10, D11, D12, D13, trả kết lên hình LCD Đồng thời, giao diện máy tính kết nối với board Arduino hiển thị giá trị đo tương ứng LCD Ngồi ra, mạch sử dụng thêm nút bấm để reset giá trị Ví dụ sử dụng đĩa để đựng loại hạt muốn cân, đặt đĩa lên mặt cân nhấn nút reset, giá trị hiển thị trở 0, sau cho loại hạt lên cân khối lượng bình thường 63 Lưu ý: không sử dụng đĩa cân nữa, ta ấn nút reset lần • Thiết kế giao diện hiển thị lên máy tính Hình 3.4 Chỉnh sửa giao diện Hình 3.5 Hồn thành giao diện 64 Board Arduino Uno sử dụng dây cáp board để kết nối với giao diện Cân điện tử thông qua cổng COM máy tính (PC/ Laptop) Giao diện Cân điện tử có bố cục hình 2.61, có khung chọn cổng COM phù hợp với cổng kết nối, nút Kết nối – Ngắt kết nối với board Hình 3.6 Hồn thành thi cơng mạch Bảng 2.8 Bảng so sánh với cân thực tế Mạch cân tự thiết kế Cân tự động có sẵn Smartphone 159g 159g Chai dầu gội 559g 557g 10 truyện tranh 1430g 1727g Laptop 2260g 2255g Kết so sánh cho thấy mạch cân điện tử tự thiết kế có sai số khoảng từ kg đến kg 65 Kết luận hướng phát triển đề tài Trong ngành công nghiệp khác nhau, cân điện tử ngày trở nên cần thiết để đo lường tin học hóa trọng lượng (khối lượng) sản phẩm để nâng cao chất lượng suất giảm chi phí Do tính linh hoạt xử lý, tuỳ theo mục đích cụ thể mà chương trình viết cho xử lý khác Do đó, hệ thống cân ứng dụng nhiều lĩnh vực có liên quan đến việc đo khối lượng Với yêu cầu đặt trình bày trước Các phần thực hoạt động kể sau: Mơ hình cân có gắn Loadcell, nguồn cung cấp ổn định, hình hiển thị kết rõ Q trình thiết kế thi cơng mạch cân điện tử hồn thành nhiều tínhcân điện tử khơng có nên phát triển thêm như: cân khối lượng cao hơn, đổi đơn vị cân nặng, giao diện hiển thị lên máy tính xuất file excel, …cho mạch ổn định, hiển thị kết LCD máy tính Để nâng cao tính cho phần mạch dùng vi xử lý thiết kế thêm nút nhấn để chỉnh bước cân (span) nhằm cài đặt hệ số cho vi xử lý tính tốn giá trị cân xác theo khối lượng chuẩn quy định, chọn dấu chấm thập phân cách thay đổi nút nhấn,… Một số chức đầu cân thực tế thực sử dụng nhớ nguồn ni cho dùng linh kiện có chất lượng cao 66 PHỤ LỤC • Chương trình Chương trình nạp vào board Arduino Uno: #include "HX711.h" #include #include LiquidCrystal lcd(13,8,9,10,11,12); #define rw HX711 scale(6,5); unsigned char check_e=0; unsigned char temp_e=0; int temp; float calibration_factor = 2230; load cell int units; int ounces; void setup() { check_e=EEPROM.read(0); if(check_e!=1) { EEPROM.write(0,1); EEPROM.write(10,0); EEPROM.write(11,0); } temp_e=EEPROM.read(10); 67 temp=temp_e*256 + EEPROM.read(11); pinMode(rw, OUTPUT); pinMode(4, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); digitalWrite(rw,0); lcd.begin(16,2); lcd.backlight(); Serial.begin(9600); scale.set_scale(); scale.tare(); long zero_factor = scale.read_average(); lcd.setCursor(0,1); lcd.print("FIX="); lcd.print(temp); lcd.print(" G "); } void loop() { scale.set_scale(calibration_factor); units = scale.get_units(), 10; units=units*10 - temp; if (units < 0) { units = 0.00; 68 } Serial.print(units); lcd.setCursor(0,0); lcd.print(units); lcd.print(" G "); lcd.setCursor(0,1); lcd.print("FIX="); lcd.print(temp); lcd.print(" G "); if(digitalRead(4)==LOW) { delay(20); while(digitalRead(4)==LOW); temp=(int)units; EEPROM.write(10,temp>>8); EEPROM.write(11,temp&0x00FF); } if(digitalRead(3)==LOW) { delay(20); while(digitalRead(3)==LOW); temp=0; EEPROM.write(10,0); EEPROM.write(11,0); } delay(500); } • Lập trình cho giao diện 69 Vì ngơn ngữ Visual Basisc ngơn ngữ mà chương trình học khơng có, qua q trình tự tìm hiểu mà lập trình lên phần mềm, nên giao diện đơn giản, mục đích hiển thị kết cân đo Chương trình lập trình cho giao diện cân điện tử: using using using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Threading.Tasks; System.Windows.Forms; System.IO.Ports; System.Threading; namespace LoadCell { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void label1_Click(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { Com_khoitao(); } public void Com_khoitao() { string[] ComList = SerialPort.GetPortNames(); int[] ComNumberList = new int[ComList.Length]; for (int i = 0; i < ComList.Length; i++) { ComNumberList[i] = int.Parse(ComList[i].Substring(3)); } Array.Sort(ComNumberList); 70 foreach (int ComNumber in ComNumberList) { cbxComlist.Items.Add("COM" + ComNumber.ToString()); } } private void button1_Click(object sender, EventArgs e) { if (cbxComlist.Text == "") { MessageBox.Show("Vui lòng chọn cổng com", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (serialPort.IsOpen) { serialPort.Close(); button1.Text = "Kết nối"; cbxComlist.Enabled = true; } else { serialPort.PortName = cbxComlist.Text; try { serialPort.Open(); button1.Text = "Ngắt kết nối"; cbxComlist.Enabled = false; } catch { serialPort.Close(); button1.Text = "Kết nối"; } } } delegate void SetTextCallback(string text); private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { try { string noidung; Thread.Sleep(300); noidung = serialPort.ReadExisting(); xuli(noidung); 71 } catch { MessageBox.Show("Không thể mở cổng " + serialPort.PortName, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } } public void xuli(string text) { if (this.textBox1.InvokeRequired) { SetTextCallback d = new SetTextCallback(xuli); this.Invoke(d, new object[] { text }); } else { textBox1.Text = text + " G"; } } private void textBox1_TextChanged(object sender, EventArgs e) { } } } 72 TÀI LIỆU THAM KHẢO Tiếng Việt [1] TS Phan Đình Duy, “Vi điều khiển”, Đại học Quốc gia Tp HCM, 2016 [2] ThS Trần Thu Hà, “Điện tử bản”, Đại học Quốc gia Tp HCM, 2013 [3] Nguyễn Đình Phú, “Vi xử lý”, Đại học Sư phạm Kỹ thuật Tp HCM, 2014 Website [1] https://sharecode.vn [2] http://doc.edu.vn [3] http://arduino.vn [4] http://loadcell.com.vn 73 ... 1.1 Cân bàn điện tử Hình 1.2 Cân sàn điện tử Hình 1.3 Cân phân tích điện tử .3 Hình 1.4 Cân đếm vật liệu Hình 1.5 Cân vàng điện tử Hình 1.6 Cân khối lượng tính. .. Một số tính Cân vàng điện tử: Là loại cân điện tử sử dụng ngành sản xuất mua bán vàng, trang sức, kim loại quý Cân có độ sai số nhỏ, giúp cân xác trọng lượng sản phẩm Hình 1.5 Cân vàng điện tử Bảng... 1.1 Thông số cân bàn điện tử Bảng 1.2 Thông số cân sàn điện tử Bảng 1.3 Thông số cân phân tích điện tử .4 Bảng 1.4 Thông số cân đếm vật liệu Bảng 1.5 Thông số cân vàng điện tử Bảng

Ngày đăng: 01/10/2018, 20:20

Từ khóa liên quan

Mục lục

  • Nguyễn Đức Thành

    • HÀ NỘI - 2018

Tài liệu cùng người dùng

Tài liệu liên quan