Nguyễn Tấn Đạt gửi vào
- 21051 lượt xem
I. GIỚI THIỆU
1. Cơ sở lý thuyết
Thế nào là các định luật thực nghiệm của chất khí ?
Chất khí lí tưởng có 3 thông số trạng thái cơ bản: Nhiệt độ (T), Thể tích (V) và Áp suất (p), 3 thông số này tuân theo 3 định luật cơ bản: định luật Bôi-lơ Ma-ri-ốt (đẳng nhiệt), định luật Sác-lơ (đẳng tích), định luật Gay Luy-xác (đẳng áp).
- Định luật Bôi-lơ Ma-ri-ốt khảo sát sự phụ thuộc lẫn nhau giữa thể tích V và áp suất p của một lượng khí xác định khi nhiệt độ T không thay đổi:
- Ở nhiệt độ không đổi, tích của áp suất p và thể tích V của một lượng khí xác định là một hằng số.
- p * V = hằng số
- Theo định luật Sác-lơ: (thể tích không đổi)
- Áp suất của một lượng khí có thể tích không đổi (đẳng tích ) thì tỉ lệ thuận với nhiệt độ của khí.
- p / T = hằng số
- Định luật Gay Luy-xác: (áp suất không đổi)
- Thể tích V của một lượng khí có áp suất không đổi tỉ lệ với nhiệt độ tuyệt đối T của khí.
- V / T = hằng số
Hình 1. Đồ thị của ba đường đẳng áp, đẳng tích, đẳng nhiệt trong ba hệ trục tọa độ OPV, OVT và OTP
Phương trình trạng thái
Dựa vào các định luật về chất khí đã nói ở trên, ta có thể tìm ra quy luật biến đổi của ba thông số trạng thái : áp suất p, thể tích V, nhiệt độ T của một lượng khí lí tưởng đã cho trong 3 quá trình bất kì.
p * V / T = hằng số
Phương trình trên được gọi là phương trình trạng thái của khí. Hằng số bên vế phải tùy thuộc vào lượng khí đang xét. Tức là cùng một lượng khí bất kì, ở bất kì trạng thái nhiệt độ, thể tích, áp suất nào thì kết quả của phép tính p.V/T vẫn luôn là một hằng số không đổi. Tuy nhiên, đối với khí thực, kết quả trên chỉ gần đúng.
Theo phương trình Clayperon-Mendeleev thì phương trình trạng thái được viết lại là :
p * V = n * R * T
Với:
- n là số mol của lượng khí đang xét
- R là hằng số (xấp xỉ 8,31 nếu áp suất ở đơn vị Pascal; 0,082 nếu áp suất ở đơn vị atm)
Bằng cách lắp đặt các module cảm biến đo nhiệt độ, thể tích, áp suất trong một xy lanh kín khí có thể thay đổi thể tích, ta có thể tìm được hằng số trong phương trình trạng thái ở từng trạng thái khác nhau của khối khí trong xylanh (vì khi thể tích thay đổi thì nhiệt độ, áp suất cũng thay đổi theo). Từ đó cho thấy hằng số này thay đổi không đáng kể qua các trạng thái khác nhau của khí.
2. Lý do chọn đề tài
Việc ứng dụng lý thuyết toán học, hóa học, vật lý,...vào thực tiễn là nền tảng để phát triển bền vững khoa học kĩ thuật. Trong chương trình chuyên lý 10, học phần nhiệt học nói về các định luật của chất khí. Bộ thí nghiệm mà Bộ Giáo dục cung cấp cho các trường THPT hiện chỉ mới khảo sát được gần đúng của quá trình đẳng nhiệt. Nói là gần đúng bởi vì khi nén hoặc dãn khí thì nhiệt độ của khí sẽ thay đổi nhẹ chứ không hoàn toàn đúng là quá trình đẳng nhiệt. Bên cạnh đó bộ thí nghiệm này chỉ mang tính định tính vì độ chia lớn, không khảo sát được quá trình biến thiên nhỏ của các giá trị đo.
Với mong muốn vận dụng các kiến thức đã học về Kĩ thuật - Tin học vào thực hành tại trường THPT, tạo hứng thú cho học sinh trong quá trình học tập. Vì vậy, nhóm học sinh lớp 10 Lý trường THPT chuyên Lê Quý Đôn, Khánh Hòa đã nghiên cứu và chế tạo thành công bộ dụng cụ: “Bộ thí nghiệm kiểm chứng định luật thực nghiệm của chất khí dành cho học sinh chuyên lý THPT”.
Bộ thí nghiệm này do nhóm học sinh tự chế tạo. Điểm khác biệt của bộ dụng cụ này so với các bộ dụng cụ ở phòng thí nghiệm trường là hoàn chỉnh, có thể dùng để kiểm chứng phương trình trạng thái Clayperon-Mendeleep của khí lí tưởng, đặc biệt là có thể lưu, phân tích, thống kê và in kết quả của quá trình thí nghiệm trên máy tính ra file excel... một cách nhanh gọn chính xác và hiệu quả.
3. Mục đích nghiên cứu của dự án
- Chế tạo bộ thí nghiệm kiểm chứng các định luật thực nghiệm của chất khí chính xác và hiệu quả, từ đó nghiệm lại được phương trình trạng thái của khí lí tưởng.
- Sử dụng các cảm biến điện tử để đo đạc số liệu.
- Phân tích và xử lí số liệu thu được.
4. Ý nghĩa thực tiễn của dự án
- Đề tài này hướng đến mục tiêu đa dạng hoá các bộ thí nghiệm, tạo ra những thiết bị thí nghiệm mới có độ chính xác cao, cung cấp kết quả tự động nhanh chóng.
- Bộ thí nghiệm này sẽ giúp cho học sinh có cái nhìn sâu hơn về kiến thức đã được học cũng như góp phần hỗ trợ cho công tác giảng dạy và nghiên cứu của giáo viên môn Vật Lý THPT vì các bộ thí nghiệm về các định luật thực nghiệm của chất khí trước đây khá thô sơ và chỉ nhận biết bằng trực quan
- Sản phẩm dễ chế tạo và nhân rộng, giáo viên và học sinh có thể tự chế tạo và làm theo.
- Phương pháp kết nối cảm biến với hệ điện tử và phần mềm điều khiển có thể được sử dụng rộng rãi trong các thí nghiệm đo đạc vật lí chính xác khác.
5. Đối tượng nghiên cứu
- Các tính năng của board mạch Arduino
- Các loại cảm biến đó nhiệt độ, khoảng cách, áp suất.
- Ngôn ngữ lập trình để viết phần mềm điểu khiển việc thu thập và xử lí dữ liệu.
II. NỘI DUNG
Dự án gồm 2 phần chính: phần cứng và phần mềm. Phần cứng bao gồm phần cơ và phần điện tử
1. Phần cơ
Đối tượng của dự án là chất khí, vậy nên điều đầu tiên chúng ta cần có là một ống xylanh kín chứa khí và có thể thay đổi thể tích tùy ý. Ở đây mình dùng ống xylanh là ống nhựa PVC và 2 đầu được bịt bằng 2 đế bằng nhôm .
Tại sao phải bằng nhôm mà không phải là chất liệu nào khác? Vì nhôm có thể bắt vít chắc chắn và đủ mềm để có thể khoan lỗ để luồn dây ra
Còn giá của piston mình dùng giá của ống keo silicon vì nguyên lí của nó khá hay và đơn giản, khi mình thả ra thì piston sẽ được cố định rất chắc chắn, còn nếu các bạn tìm ra được cái nào khác cũng được miễn là đáp ứng được điều trên
2. Phần điện tử
Chắc chắn là không thể thiếu Arduino rồi :3
a. Arduino UNO R3
Tiếp đến là các cảm biến sử dụng trong dự án
b. HC-SR04 Ultrasonic Sensor
HC-SR04 hay còn gọi là cảm biến sóng siêu âm. Nguyên lí hoạt động của module này là phát sóng siêu âm, sóng truyền đi đập vào vật thể rồi dội lại, dựa vào thời gian sóng đi và về, đã có tốc độ truyền sóng, từ đó tính được khoảng cách giữa cảm biến với vật thể. Bằng cách cố định cảm biến này vào 1 bên đế, ta có thể đo được khoảng cách từ đế bên này đến piston, đã có tiết diện ống, ta tính được thể tích khối khí bên trong
HC-SR04 kết nối với arduino bằng mạch khá đơn giản
c. BMP180 Digital pressure sensor
Cảm biến này có thể đo được áp suất, nhiệt độ không khí và độ cao của điểm đo so với mực nước biển.
Trong dự án, cảm biến này được đặt chung chỗ với HC-SR04 để đo nhiệt độ và áp suất của khối khi bên trong xylanh .
Sơ dồ mạch
2 mạch này khá đơn giản nên các bạn có thể cùng lúc kết hợp nó với Arduino mà không cần dùng textboard đâu
Mỗi cảm biến có 4 đầu dây ra nên mình khoan ở bên hông đế 2 lỗ, mỗi lỗ luồn 4 đầu dây của mỗi sensor sau đó dùng keo bít kín lỗ lại
Còn phần code mình sẽ nói sau ở mục phần mềm
Như thế là tạm xong phần cứng rồi nhỉ sau đây là phần quan trọng nhất, và tốn nhiều thời gian, chất xám nhất của tụi mình :3
3. Phần mềm
Phần mềm được lập trình bằng phần mềm Visual Studio 2008. Chức năng của phần mềm là điều khiển thí nghiệm, nhận các tín hiệu báo về, xử lý kết quả số liệu tính toán, hỗ trợ xây dựng báo cáo thực hành… theo một giao diện phần mềm thân thiện, đơn giản, gần gũi đối với tất cả các bạn học sinh.
Nghiên cứu và tìm hiểu ngôn ngữ C# và Arduino để lập trình phần mềm sản phẩm cũng như tải code lên chíp Arduino. Code tải lên Arduino bao gồm tích hợp 2 thư viện hỗ trợ là “Adafruit Sensor” và “AdafruitBMP085 Unified”, 2 thư viện này có chức năng hỗ trợ chíp BMP180 trong quá trình thu nhận dữ liệu. Phần mềm “phương trình trạng thái” được code với ngôn ngữ C# có chức năng thay thế chức năng nhận dữ liệu từ Arduino (SerialPort), chuyển tiếp dữ liệu thành bảng và có chức năng in ra file Excel.
Sơ đồ khối hoạt động của phần mềm
Giao diện Visual Studio 2008 khi lập trình
Link tải phần mềm
http://upfile.vn/FkBCFkBtTdIg/phuongtrinhtrangthai-rar.html (mirror)
Code Arduino:
/* Dùng thư viện của BMP085 */ #include <Wire.h> #include "Adafruit_Sensor.h" #include "Adafruit_BMP085_U.h" /* Khai báo biến cho sóng âm */ const int trigPin = 8; const int echoPin = 7; float duration; int distance; float thetich; float v; /***********************/ float x = 0.0; float test; float temperature; float dok; Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085); void displaySensorDetails(void) { delay(500); } /**************************************************************************/ /* Phần cài đặt BMP085 */ /**************************************************************************/ void setup(void) { /* Đầu nhận, đầu phát của sóng âm */ pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output pinMode(echoPin, INPUT); // Sets the echoPin as an Input Serial.begin(9600); Serial.println("Bat dau chay chuong trinh !"); Serial.println(""); /* Initialise the sensor */ if(!bmp.begin()) { Serial.print("Error !"); while(1); } displaySensorDetails(); } void loop(void) { sensors_event_t event; bmp.getEvent(&event); if (event.pressure) { test = event.pressure; /* Áp suất với biến là event.pressure và đơn vị là hPa nên cần phải chuyển qua Pa bằng cách nhân 10^2 */ Serial.print("P = "); event.pressure = event.pressure * 100; Serial.print(event.pressure); Serial.println(" Pa"); /* Nhiệt độ với biến là temperarute và đơn bị là C */ bmp.getTemperature(&temperature); dok = temperature + 273; Serial.print("T = "); Serial.print(dok); Serial.println(" K"); float seaLevelPressure = SENSORS_PRESSURE_SEALEVELHPA; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance= int(duration/2/29.412); thetich=distance*3.14*5*5; // Prints the distance on the Serial Monitor //Test biến v = pow(float(thetich),-6.0); Serial.print("V = "); Serial.print(thetich); Serial.println(" M3"); Serial.println(duration); Serial.println(distance); Serial.println(thetich); Serial.println(test); Serial.println(dok); Serial.println(x); x = (test * v) / dok; Serial.println(x); Serial.print("Const = "); Serial.println((test * v) / dok); Serial.println(); } else { Serial.println("Error !"); } delay(1000); }
Bạn cần 2 thư viện là Adafruit_Sensor và Adafruit_BMP085_U để đoạn code trên hoạt động được.
Code arduino của từng cảm biến thì trên mạng có đầy ý các bạn chỉ cần kết hợp 2 cái và cho nó tính thêm cái biến const = P.V/T nữa thôi nhớ chú ý đơn vị nhé.
À quên code của toàn bộ dự án tụi mình đã tích hợp toàn bộ vào phần mềm rồi :3 các bạn chỉ cần tải phần mềm về, kết nối Arduino là dùng được, phần code Arduino chỉ để tham khảo thôi.
Giao diện của phần mềm khi hoạt động
Khi chương trình hoạt động thì các thông số p, V, T sẽ được đo liên tục (bao nhiêu giây 1 lần là tùy các bạn chỉnh ). Ở mỗi trạng thái, cả ba thông số đó sẽ được tính toán theo công thức phương trình trạng thái để tính ra được hằng số của phương trình (const), mục tiêu chính của đề tài này là chứng minh hằng số đó không đồi. Tuy nhiên, hằng số đó không giống nhau ở từng trạng thái cũng có nhiều lí do (Thể tích của khối khí phụ thuộc vào độ dài khoảng cách mà cảm biến HC-SR04 đo được, như đã nói cảm biến này hoạt động dựa trên tốc độ truyền âm trong không khí, mà khi áp suất, nhiệt độ thay đổi thì vận tốc truyền âm cũng không cố định, do đó sinh ra sai số . Lí do thứ 2 là khí không được nhốt kín, khi nén quá nhanh hoặc áp suất cao thì lượng khí thoát bớt ra ngoài dẫn đến kết quả đo không chính xác :'( )
Đây là bảng số liệu in ra excel sau khi đã xử lí và vẽ biêu đồ Biểu đồ càng thẳng thí nghiệm càng chính xác. Mình đã thử tính sai số và nó khá ổn ( khoảng 5 - 7%).
Hình ảnh khi thí nghiệm