Đồ án vi xử lý sử dụng MSP430G2553 và Cảm biến trọng lượng loadCell 5kg + HX711 (Có code mẫu và sơ đồ chi tiết + giải thích) Đếm và phân loại sản phẩm theo khối lượng và cảnh báo nếu vượt quá khối lượng
Trang 1theo khối lượng
Giáo viên hướng dẫn:Trần Hữu Danh
Ngày 3 tháng 5 năm 2018
PHỤ LỤC
Trang 21.1) Loadcell……….…… …… …… … 4
1.2) Cấu tạo …… ……….….… ……… 4
1.3) Phân loại……… ….….… ……….…… 7
1.4) Ứng dụng của Loadcell ……… ……… ………… 8
1.5) Các thông số của Loadcell (5kg) ……… … ….… 9
II.Module HX711……… ……… ….… … … 10
2.1) Cấu tạo……….……….……… ……… … 11
2.2) Nguyên lý hoạt động……… …… … … 11
2.3) Thông số kĩ thuật HX711……… ….…… … 12
2.4) Timing Clock……… ….……….…… …… …… 12
III.MSP430G2553……… …… …… 13
3.1) Sơ đồ chân……… …….… 13
3.2) Thông số kỹ thuật và ưu điểm của msp430g2553 ……… 14
IV.Sơ đồ khối nguyên lý làm việc……… …… …… 15
V.Lưu đồ của chương trình……….….….… …… 15
VI.Sơ đồ nguyên lý……… ….… … … 16
VII.Mạch in……… … ….… …… 17
VII.Phần code chương trình……….…… …… …… 18
IX.Mô hình thực tế……….…….…… …… 33
X Nguyên lý hoạt động……… ….… … … 34
XI Kết quả đạt được……… …….……….………… 34
XII Tài liệu tham khảo……… …….……… ………… 35
Trang 4I.C m bi n l c Loadcell (5kg): ả ế ự
1.1) Loadcell : là thiết bị cảm biến dùng để chuyển đổi lực hoặc trọng
lượng thành tín hiệu điện thường được sử dụng để cảm ứng các lực lớn, tĩnh hay các lực biến thiên chậm.
1.2) Cấu tạo: Loadcell được cấu tạo bởi hai thành phần,thành phần thứ nhất
là Strain gauge và thành phần còn lại là Load
+Strain gauge Strain gauge là một điệ n trở đặc biệt chỉ nhỏ bằng móng tay,
có điện trở thay đổi khi bị nén hay kéo dãn và được nuôi bằng một nguồn điệ n ổn định, đượ c dán lên “ Load ” - một thanh kim loại chịu tải có tính đàn hồi
Hình 1: Cấu tạo cảm biến Loadcell Cấu tạo chính của Loadcell gồm các điện trở strain gauge R1,R2,R3,R4 kết
nối thành một cầu trở Wheatstone (như hình dưới) và được dán vào bề mặt thân loadcell.
Hình 2: Mạch căn bản của cầu Wheatstone
Trang 5Một điện áp kích thích được cung cấp cho ngõ vào loadcell (2 góc (1) và (4) của cầu điện trở Wheatstone) và điện áp tín hiệu ra được đo giữa hai góc
Ban đầu cầu cân bằng,điện áp ra bằng 0V.Khi có lực tác động lên điện trở strain gauge(được mắc dưới bàn cân) nó sẽ thay đổi giá trị => Mạch cầu không còn cân bằng nữa => Xuất hiện điện áp ở 2 điểm (Như hình) Từ đó ta lấy được khối lượng từ mức điện áp trả về
Hình 3:Nguyên lý hoạt động của loadcell
Trang 6Điện trở của strain gauge đươc tính theo công thức :
R= Điện trở strain gauge (Ohm)
L = Chiều dài của sợi kim loại strain gauge (m)
S = Tiết diện của sợi kim loại strain gauge (m2)
P= Điện trở suất vật liệu của sợi kim loại strain gauge
Khi dây kim loại bị lực tác động sẽ thay đổi điện trở
Khi dây bị lực nén, chiều dài strain gauge giảm, điện trở sẽ giảm xuống Khi dây bi kéo dãn, chiều dài strain gauge tăng, điện trở sẽ tăng lên Điện trở thay đổi tỷ lệ với lực tác động
Hình 4: Strain gauge (Mô tả thay đổi của lực tác dụng)
Trang 71.3) Phân loại:
Có thể phân loại Loadcells như sau:
Loại Loadcell theo lực tác động: chịu kéo (Shear Loadcell), chịu nén
(Compression Loadcell), dạng uốn (Bending), chịu xoắn (Tension Loadcell)
Loại theo kích thước và khả năng chịu tải: Loại bé, vừa, lớn
Loại Loadcell theo hình dạng: Dạng đĩa, dạng thanh, dạng trụ, dạng cầu,
dạng chữ S , như hình dưới
Trang 8 Loại loadcell theo tín hiệu mã hóa:
o Tín hiệu từ Loadcell số (Digital Loadcell) truyền về bộ chỉ thị
là dạng số (Đếm xung =>Vi điều khiển =>hiển thị)
o Tín hiệu từ Loadcell tương tự (Analog Loadcell) truyền về bộ
chỉ thị là dạng điện áp.( Tín hiệu ra dạng tương tự => Khuếch đại =>ADC => vi điều khiển =>hiển thị)
Trang 91.5) Các thông số của Loadcell (5kg):
o Điện áp điều khiển: 5-10v
o Tín hiệu đầu ra: tín hiệu điện áp
o Khói lượng đo lớn nhất: 5kg
o Capacity: 5kg
o Rated output (Tỷ lệ điện áp ra): 1.0 ± 0.1mV / V
o Đại số tuyến tính / Combined error (%R.O): 0.05
o Nhiệt độ hoạt động: -20 ~ 65°C
o Độ lệch tuyến tính (%): 0,05
o Ảnh hưởng nhiệt độ tới độ nhạy %RO/ độ C: 0.003
o Ảnh hưởng nhiệt độ tới điểm không %RO/ độ C: 0.02
o Trở kháng đầu vào (Ω ): 1066 +- 20
o Trở kháng ngõ ra (Ω ): 1000 +- 20
o Bảo vệ quá tải / Safety overload (% R.C) : 120
o Ultimate overload %RO: 150
Loadcell có 4 dây có màu lần lượt là đen, đỏ, trắng và xanh, trong đó có 2 dây để cấp nguồn và 2 dây cấp tín hiệu ra Tùy loại loadcell và nhà sản xuất mà các dây này có chức năng khác nhau nhưng thường thì cặp dây đỏ - đen là dây cấp nguồn, dây đỏ cấp nguồn dương và dây đen nối mass, 2 dây còn lại là dây tín hiệu (có thể phát hiện chính xác 2 dây còn lại dây nào là dây tín hiệu dương và dây nào là dây tín hiệu âm bằng cách mắc thử mạch và nếu tín hiệu cân ra là âm thì đảo 2 dây này lại thì sẽ không còn hiện tượng này nữa.
Trang 10II.Module HX711:Là modun chuyển đổi ADC (Analog to Digital Converter) 24bit , HX711 được thiết kế để chuyển đối tín hiệu và ứng dụng điều khiển công nghiệp để giao tiếp trực tiếp với một cảm biến cầu.
HX711 có khả năng phản ứng nhanh, chống nhiễu tốt, và độ tin cậy cao.
Hình 8 :Module HX711 Hình 7: Loadcell 5Kg
Trang 11Thực tế còn rất nhiều yếu tố khác liên quan đến độ chính xác của hệ thống cân như:
Quá trình chỉnh định hệ thống
Nhiễu rung và ồn
Do tác dụng chuyển hướng lực trong các cơ cầu hình ống
Quá trình phân tích dò tìm lỗi
Trang 12 Thay thế các thành phần trong hệ thống cân hoặc các hệ thống liên quan
Đi dây cáp tín hiệu dài
Môi trường hoạt động quá kín v.v
2.3) Thông số kĩ thuật HX711:
Điện áp hoạt động: 2.7 V - 5V
Dòng tiêu thụ <1.5Ma
Tốc độ lấy mẫu:10-80 SPS(Có thể tùy chỉnh)
Độ phân giải điện áp:40mv
2.4) Timing Clock:
- Dữ liệu nhận về trên chân Dout.
- Xung Clock trên chân SCK
Bảng Tần số đáp ứng của HX711
Trang 13-Với clock duty 50% ,tần số cao nhất trên clock(SCK,), f=2,5Mhz nếu tốc độ cao hơn 0.2us sẽ gây ra lỗi dữ liệu
-Thời gian mức logic 1 trên SCK không được lớn hơn 50us
Kết nối Hx711 với Loadcell và MSP430G2553:
Ngõ vào:
Dây đỏ của Loadcell kết nối với E+
Dây đen Loadcell kết nối với
E-Dây xanh Loadcell kết nối với A+
Dây trắng Loadcell kết nối với
A-Ngõ ra:
Chân SCK kết nối với chân P1.1của MSP430G2553
Chân DT kết nối với chân P1.2 của MSP430G2553
III.MSP430G2553:
3.1) Sơ đồ chân:
- Ngõ vào:
Chân SCK kết nối với chân P1.1 của MSP430G2553
Chân DT kết nối với chân P1.2 của MSP430G2553
Ngõ ra: Dữ liệu
Chân P1.4 kết nối với D4 của LCD Chân P1.5 kết nối với D5 của LCD Chân P1.6 kết nối với D6 của LCD Chân P1.7 kết nối với D7 của LCD
Trang 14Vi điều khiển MSP430G2553 thực hiện điều khiển toàn bộ quá trình chuyển đổi từ tín hiệu lực đo được thành dữ liệu số thể hiện trung thực nhất và giao tiếp với các thiết bị khác để trao đổi thông tin
3.2) Thông số kỹ thuật và ưu điểm của msp430g2553 (DIP20):
-Low Supply-Voltage Range: 1.8 V to 3.6 V
- Cấu trúc sử dụng nguồn thấp giúp kéo dài tuổi thọ của Pin (siêu tiết kiệm điện): +Duy trì 0.1µA dòng nuôi RAM.
+Chỉ 0.8µA real-time clock.
+230 µA/ MIPS.
-Bộ tương tự hiệu suất cao cho các phép đo chính xác
-Bộ giám sát điện áp nguồn.
-16 bit RISC CPU cho phép được nhiều ứng dụng, thể hiện một phần ở kích thước Code lập trình.
+Thanh ghi lớn nên loại trừ được trường hợp tắt nghẽn tập tin khi đang làm việc +Thiết kế nhỏ gọn làm giảm lượng tiêu thụ điện và giảm giá thành.
+Tối ưu hóa cho những chương trình ngôn ngữ bậc cao như C, C++Tối ưu hóa cho những chương trình ngôn ngữ bậc cao như C, C++
-Có 7 chế độ định địa chỉ.
-Khả năng ngắt theo véc tơ lớn.
+ Trong lập trình cho bộ nhớ Flash cho phép thay đổi Code một cách linh hoạt, phạm vi rộng, bộ nhớ Flash còn có thể lưu lại như nhật ký của dữ liệu.
-Tần số bên trong lên đến 16 MHz với bốn chế độ tần số được hiệu chỉnh
-Crystal 32 kHz
-Năm chế độ tiết kiệm năng lượng
Trang 15IV.Sơ đồ khối nguyên lý làm việc :
V.Lưu đồ của chương trình :
Trang 16VI.Sơ đồ nguyên lý:
Trang 17VII.Mạch in:
Trang 19VII.Phần code chương trình:
union reg* P2_SEL=(union reg*)0x2e;
union reg* P2_IN=(union reg*)0x28;
Trang 20union reg* P1_SEL=(union reg*)0x26;
union reg* P1_DIR=(union reg*)0x22; //khai bao dia chi o nho union reg* P1_OUT=(union reg*)0x21;
union reg* P1_IN=(union reg*)0x20;
#define DON 0x0F /* Display on */
#define DOFF 0x0B /* Display off */
#define CURSOR_ON 0x0F /* Cursor on */
#define CURSOR_OFF 0x0D /* Cursor off */
#define BLINK_ON 0x0F /* Cursor Blink */
#define BLINK_OFF 0x0E /* Cursor No Blink */
/* Cursor or Display Shift definitions */
#define SHIFT_CUR_LEFT 0x04
#define SHIFT_CUR_RIGHT 0x05
#define SHIFT_DISP_LEFT 0x06
#define SHIFT_DISP_RIGHT 0x07
/* Function Set definitions */
#define FOUR_BIT 0x2C /* 4-bit Interface */
#define EIGHT_BIT 0x3C /* 8-bit Interface */
Trang 21#define LINE_5X7 0x30 /* 5x7 characters, single line */
#define LINE_5X10 0x34 /* 5x10 characters */
#define LINES_5X7 0x38 /* 5x7 characters, multiple line*/
// Map: LCD PIN <-> Output_Port _ out/dir -> Output_Pin#define LCD_RS P1_OUT -> _BIT.b0
#define LCD_RS_DIR P1_DIR -> _BIT.b0
#define LCD_EN P1_OUT -> _BIT.b3
#define LCD_EN_DIR P1_DIR -> _BIT.b3
#define LCD_DATA_4 P1_OUT -> _BIT.b4
#define LCD_DATA_4_DIR P1_DIR -> _BIT.b4
#define LCD_DATA_5 P1_OUT -> _BIT.b5
#define LCD_DATA_5_DIR P1_DIR -> _BIT.b5
#define LCD_DATA_6 P1_OUT -> _BIT.b6
#define LCD_DATA_6_DIR P1_DIR -> _BIT.b6
#define LCD_DATA_7 P1_OUT -> _BIT.b7
#define LCD_DATA_7_DIR P1_DIR-> _BIT.b7
//============================================
//CHUONG TRINH DELAY:
void delay_ms(unsigned int ms){
Trang 22for (i = 0; i<t; i++ ) delay_cycles(MCLK_F);
//************************************************** // Send a byte of data (rs == 1) or command (rs == 0) to LCD //************************************************** void lcd_put_byte(unsigned char rs, unsigned char data) { LCD_RS = 0;
Trang 23{// Set all signal pins as output
LCD_RS_DIR = 1;
Trang 24lcd_delay_ms(200); // delay for LCD reset
lcd_delay_ms(2); // wait for LCD
lcd_put_byte(0,FOUR_BIT & LINES_5X7); // Set LCD type
lcd_delay_ms(2); // wait for LCD
lcd_put_byte(0,DOFF&CURSOR_OFF&BLINK_OFF); // display off
lcd_delay_ms(2); // wait for LCD
lcd_put_byte(0,DON&CURSOR_OFF&BLINK_OFF); // display on
lcd_delay_ms(2); // wait for LCD
lcd_put_byte(0,0x01); // clear display and move cursor to home
lcd_delay_ms(2); // wait for LCD
Trang 25lcd_put_byte(0,SHIFT_CUR_LEFT); // cursor shift mode
lcd_delay_ms(2); // wait for LCD
lcd_put_byte(0,0x01); // clear display and move cursor to home
lcd_delay_ms(2); // wait for LCD
lcd_put_byte(0,0x01); // display off
lcd_delay_ms(2); // wait for LCD}
void lcd_gotoxy(unsigned char col, unsigned char row)
{ unsigned char address;
Trang 28unsigned long HX711_Buffer = 0;
unsigned long Weight_Maopi = 0,Weight_Shiwu = 0;
void Delay_ms(unsigned int n);
void Delay_Hx711_us();
unsigned long HX711_Read();
void Get_Weight();
void Get_Maopi();
Trang 29void Delay_Hx711_us() // tao tre giao tiep cho HX711AD
P1OUT &=~ BIT1;//SCK
if(P1IN & BIT2)//SDA
count++;
}
P1OUT |= BIT1; //SCK
Trang 30count=count^0x800000;
Delay_Hx711_us();
P1OUT &=~ BIT1;//SCK
return(count); // gia tri ADC 24 bit doc duoc
{
Weight_Shiwu = HX711_Buffer;
Weight_Shiwu = Weight_Shiwu - Weight_Maopi;
Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/4.10+0.05); }}
void Get_Maopi() // lay diem Zeroweight khi chua co vat can
{
HX711_Buffer = HX711_Read();
Weight_Maopi = HX711_Buffer/100; }
void gioi_thieu()
{
lcd_gotoxy(0,0);
Trang 32int main( void )
{WDTCTL = WDTPW + WDTHOLD; P1DIR &=~ BIT2;//SDA
Trang 34IX.Mô hình thực tế:
Trang 36Bảng giá trị thực sau 2 lần đo:
Khối lượng vật chuẩn Cân lần 1 Cân lần 2
ADC dạng tín hiệu tương tự sang dạng tín hiệu số.
Mạch khuếch đại HX711 cho ra dữ liệu và xung để cấp vào ngõ vào của chân biến đổi ADC MSP430G2553 để xuất dữ liệu ra ngoài.
MSP430G2553 cho hiển thị ra LCD 16x2.
Giá trị nhận được trên LCD sẽ phân theo từng loại và kết quả cân nặng của quá trình lập trình vi điều khiển.
XI KẾT QUẢ ĐẠT ĐƯỢC
Mạch chạy đúng theo yêu cầu đề tài.
Có thể cân các vật dưới 5kg
Nhược điểm:
Vẫn còn sai số nhưng không đáng kể
Chưa thiết kế được chức năng phụ như lưu cụ thể các giá trị
đã cân được
Trang 37XII Tài liệu tham khảo:
https://sj.ctu.edu.vn/ql/docgia/download/ /04-CN_VO
%20MINH%20TRI(26-35).pdf
loadcell.html
http://electronicctu.net/Thread-Nguyen-ly-can-dien-tu-http://loadcell.com.vn/tin-tuc/he-thong-loadcell-la-gi.html https://xemtailieu.com/tai-lieu/load-cell-dde-series-
254236.html
http://loadcell.com.vn/kinh-nghiem/Cach-kiem-tra-loadcell-co-bi-hu-hong-hay-khong-phan-1.html