You are on page 1of 7

TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH

Khoa Cơ khí- Công nghệ

BÁO CÁO MÔN


CẢM BIẾN TRONG ĐO LƯỜNG

Nô ̣i dung
BÁO CÁO MÔN ............................................................................................................ 1
I.Tìm hiểu cân định lượng............................................................................................... 1
II.Mạch ứng dụng load cell trong cân định lượng .......................................................... 1
III.Chương trình cân định lượng ..................................................................................... 3
IV.Kết quả thực tế ........................................................................................................... 6
I.Tìm hiểu cân định lượng
- Nguyên lí: Cân định lượng có lắp cảm biến lực ( load cell ). Loadcell gồm 4
strain gauge và được lắp thành cầu wheatstone. Khi có lực tác dụng lên load
cell các strain gauge sẽ thay đổi giá trị điện trở làm thay đổi giá trị Vout của cầu
wheatstone.
Do điện áp ra của loadcell rất nhỏ nên chúng ta cần khuếch đại điện áp tín hiệu
ra của load cell lên nhiều lần qua mạch khuếch đại và bộ chuyển đổi ADC. Sau
đó hiểu thị lên LCD.
- Mạch nguyên lí của load cell:

Hình 1. Mạch nguyên lí loadcell

II.Mạch ứng dụng load cell trong cân định lượng


- Do điện áp ra của load cell rất nhỏ. Vd: load cell có: 1mV/V và được cấp
nguồn 5V thì điện áp ra tối : 5mV/5V. Arduino không thể đọ giá trị nhỏ như
vậy. Chúng ta cần khuếch đại với mạch ina 128 như hình 2.

1
Hình 2. Mạch nguyên lí khuếch đại ina128
- Mạch kết nối Arduino

2
III.Chương trình cân định lượng
- Chương trình code Arduino chính
#include <TimerOne.h>
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7); // 0x27 is the I2C bus address for an


unmodified module
void setup() {
lcd.setBacklightPin(3,POSITIVE);
lcd.setBacklight(HIGH); // NOTE: You can turn the backlight off by setting it to
LOW instead of HIGH
lcd.begin(16, 2);

3
lcd.clear();
Serial.begin(9600);
analogReference(INTERNAL);
}
void loop() {
float Khoiluong=kl();
if ( Khoiluong <=0){
Khoiluong =0;
}
lcd.setCursor(0,0);
lcd.print(" Khoi luong do: ");
lcd.setCursor(1,2);
lcd.print(Khoiluong,2);
lcd.println(" gr");
Serial.print(" Khoi luong do: "); Serial.print(Khoiluong,2); Serial.println(" gr");
delay(1000);
}
static long loadA=0;
static int analogA=4;
static long loadB=152;
static int analogB=16;
float kl(){
const int max =200;
unsigned int AnalogValueTotal = 0;
unsigned int AnalogValueAverage = 0;
analogRead(A0);
for (int i = 0;i<max;i++){
AnalogValueTotal = AnalogValueTotal + analogRead(A0);
4
delay(1);
}
AnalogValueAverage = (AnalogValueTotal)/max;
Serial.println(AnalogValueAverage);
return map(AnalogValueAverage,analogA,analogB,loadA,loadB);
- }Giải thích chương trình cân định lượng:
Do tín hiệu analog do Arduino đọc được từ load cell không ổn định. Vì vậy, lấy
trung bình giá trị analog. Ở đây, lấy giá trị đọc trung bình trong 300 lần.
for (int i = 0;i<max;i++){
AnalogValueTotal = AnalogValueTotal + analogRead(A0);
delay(1);
}
AnalogValueAverage = (AnalogValueTotal)/max;
Chuyển đổi tín hiệu analog đọc từ arduino ra khối lượng:
Load cell 5kg có thang đo: 1mV/V. Ở đây cấp nguồn nuôi loadcell 5V. Sử dụng
điện áp tham chiếu nội của Arduino 1.1V.
5mV/5V-------- 5kg
???-------------- 10g
??? = 5*10/(5000) = 0.01 mV
Do dùng điện áp tham chiếu 1.1 V: mV/step = 1.1*1000/1024 = 1.074 mv/step
Tìm hệ số khuếch đại cho ina 128:
𝑚𝑉/𝑠𝑡𝑒𝑝
𝐺=
𝑚𝑉/𝑉
1.074
= = 107.4
0.01

Khối lượng cân đo:


M= 10*analog (gam)
Khai báo dùng điện áp tham chiếu nội 1.1V cho chương trình:
void setup() {

5
analogReference(INTERNAL);
}

IV.Kết quả thực tế

You might also like