- Độ đục trong chất lỏng là gì?
- Làm thế nào để đo độ đục bằng Arduino?
- Các thành phần cần thiết để tạo ra máy đo độ đục
- Tổng quan về cảm biến độ đục
- Các tính năng chính của mô-đun độ đục
- Cảm biến độ đục giao nhau với Arduino - Sơ đồ mạch
- Lập trình Arduino để đo độ đục trong nước
Khi nói đến chất lỏng, độ đục là một thuật ngữ quan trọng. Vì nó đóng một vai trò quan trọng trong động lực học chất lỏng và cũng được dùng để đo chất lượng nước. Vì vậy, trong hướng dẫn này, chúng ta hãy thảo luận về độ đục là gì, cách đo độ đục của chất lỏng bằng Arduino. Nếu bạn muốn thực hiện dự án này xa hơn, bạn cũng có thể xem xét kết hợp máy đo pH với Arduino và cũng có thể đọc giá trị pH của nước để đánh giá chất lượng nước tốt hơn. Trước đây, chúng tôi cũng đã xây dựng một thiết bị giám sát chất lượng nước dựa trên IoT bằng cách sử dụng ESP8266, bạn cũng có thể kiểm tra nếu quan tâm. Điều đó đang được nói, chúng ta hãy bắt đầu
Độ đục trong chất lỏng là gì?
Độ đục là mức độ hoặc mức độ đục hoặc đục của chất lỏng. Điều này xảy ra do sự hiện diện của một số lượng lớn các hạt không nhìn thấy được (bằng mắt thường) tương tự như khói trắng trong không khí. Khi ánh sáng truyền qua chất lỏng, sóng ánh sáng bị tán xạ Do sự hiện diện của các hạt nhỏ này. Độ đục của chất lỏng tỷ lệ thuận với các hạt lơ lửng tự do, đó là nếu số lượng các hạt tăng độ đục cũng sẽ tăng lên.
Làm thế nào để đo độ đục bằng Arduino?
Như tôi đã đề cập trước đó, độ đục xảy ra do sự tán xạ của sóng ánh sáng, để đo độ đục, chúng ta nên đo độ tán xạ của ánh sáng. Độ đục thường được đo bằng đơn vị đo độ đục nephelometric (NTU) hoặc đơn vị độ đục Jackson (JTLJ), tùy thuộc vào phương pháp được sử dụng để đo. Hai đơn vị gần bằng nhau.
Bây giờ chúng ta hãy xem một cảm biến độ đục hoạt động như thế nào, nó có hai phần, bộ phát và bộ thu. Bộ phát bao gồm một nguồn sáng thường là một đèn LED và một mạch điều khiển. Ở đầu thu, có một bộ dò ánh sáng giống như một photodiode hoặc một LDR. Chúng tôi đặt giải pháp giữa máy phát và máy thu.
Máy phát chỉ đơn giản là truyền ánh sáng, sóng ánh sáng đi qua dung dịch và máy thu nhận được ánh sáng. Thông thường (không có sự hiện diện của dung dịch) ánh sáng truyền qua hoàn toàn thu được ở phía thu. Nhưng khi có dung dịch đục, lượng ánh sáng truyền qua rất thấp. Đó là ở phía máy thu, chúng ta chỉ nhận được một ánh sáng cường độ thấp và cường độ này tỷ lệ nghịch với độ đục. Vì vậy chúng ta có thể đo độ đục bằng cách đo cường độ ánh sáng nếu cường độ ánh sáng cao thì dung dịch ít đục hơn và nếu cường độ ánh sáng rất thấp nghĩa là dung dịch càng đục.
Các thành phần cần thiết để tạo ra máy đo độ đục
- Mô-đun độ đục
- Arduino
- 16 * 2 I2C LCD
- Đèn LED RGB cực âm chung
- Breadboard
- Dây nhảy
Tổng quan về cảm biến độ đục
Cảm biến độ đục được sử dụng trong dự án này được hiển thị bên dưới.
Như bạn có thể thấy, mô-đun cảm biến độ đục này có 3 phần. Một dây dẫn không thấm nước, một mạch điều khiển và một dây kết nối. Đầu dò thử nghiệm bao gồm cả máy phát và máy thu.
Hình ảnh trên cho thấy, loại mô-đun này sử dụng một diode IR làm nguồn sáng và một bộ thu IR làm đầu dò. Nhưng nguyên lý làm việc vẫn như trước. Phần trình điều khiển (hình bên dưới) bao gồm một op-amp và một số thành phần khuếch đại tín hiệu ánh sáng được phát hiện.
Cảm biến thực tế có thể được kết nối với mô-đun này bằng cách sử dụng đầu nối JST XH. Nó có ba chân, VCC, nối đất và đầu ra. Vcc kết nối với 5v và nối đất với đất. Đầu ra của mô-đun này là một giá trị tương tự mà nó thay đổi theo cường độ ánh sáng.
Các tính năng chính của mô-đun độ đục
- Điện áp hoạt động: 5VDC.
- Dòng điện: 30mA (MAX).
- Nhiệt độ hoạt động: -30 ° C đến 80 ° C.
- Tương thích với Arduino, Raspberry Pi, AVR, PIC, v.v.
Cảm biến độ đục giao nhau với Arduino - Sơ đồ mạch
Sơ đồ hoàn chỉnh để kết nối cảm biến Độ đục với Arduino được hiển thị bên dưới, mạch được thiết kế bằng EasyEDA.
Đây là một sơ đồ mạch rất đơn giản. Đầu ra của cảm biến độ đục là tương tự để kết nối với chân A0 của Arduino, I2C LCD kết nối với chân I2C của Arduino là SCL đến A5 và SDA đến A4. Sau đó, đèn LED RGB kết nối với chân kỹ thuật số D2, D3 và D4. Sau khi kết nối xong, thiết lập phần cứng của tôi trông như sau.
Kết nối VCC của cảm biến với Arduino 5v, sau đó nối đất với mặt đất. Chân đầu ra của cảm biến thành analog 0 của Arduino. Tiếp theo, kết nối VCC và nối đất của mô-đun LCD với 5v và nối đất của Arduino. Sau đó là SDA thành A4 và SCL thành A5, hai chân này là chân I2C của Arduino. cuối cùng kết nối mặt đất của đèn LED RGB với mặt đất của Arduino và kết nối màu xanh lá cây với D3, màu xanh lam với D4 và màu đỏ với D5.
Lập trình Arduino để đo độ đục trong nước
Kế hoạch là hiển thị các giá trị độ đục từ 0 đến 100. Tức là đồng hồ phải hiển thị 0 cho chất lỏng tinh khiết và 100 cho chất lỏng có độ đục cao. Mã Arduino này cũng rất đơn giản và mã đầy đủ có thể được tìm thấy ở cuối trang này.
Đầu tiên, tôi đưa vào thư viện tinh thể lỏng I2C vì chúng tôi đang sử dụng LCD I2C để giảm thiểu các kết nối.
# bao gồm
Sau đó, tôi đặt số nguyên cho đầu vào cảm biến.
int sensorPin = A0;
Trong phần thiết lập, tôi đã xác định các chân.
pinMode (3, OUTPUT); pinMode (4, OUTPUT); pinMode (5, OUTPUT);
Trong phần vòng lặp, Như tôi đã đề cập trước đó, đầu ra của cảm biến là một giá trị tương tự. Vì vậy, chúng ta cần đọc những giá trị đó. Với sự trợ giúp của chức năng Arduino AnalogRead , chúng ta có thể đọc các giá trị đầu ra trong phần vòng lặp.
int sensorValue = analogRead (sensorPin);
Đầu tiên, chúng ta cần hiểu hoạt động của cảm biến, có nghĩa là chúng ta cần đọc giá trị nhỏ nhất và giá trị lớn nhất của cảm biến độ đục. chúng ta có thể đọc giá trị đó trên màn hình nối tiếp bằng cách sử dụng hàm serial.println .
Để có được những giá trị này, trước tiên, hãy đọc cảm biến một cách tự do mà không có bất kỳ giải pháp nào. Tôi nhận một giá trị khoảng 640 và sau đó, đặt một chất màu đen giữa máy phát và máy thu, chúng tôi nhận được một giá trị là giá trị nhỏ nhất, thông thường, giá trị đó bằng không. Vì vậy, chúng tôi có 640 là tối đa và 0 là tối thiểu. Bây giờ chúng ta cần chuyển đổi các giá trị này thành 0-100
Để làm được điều đó, tôi đã sử dụng chức năng bản đồ của Arduino.
int turbidity = map (sensorValue, 0,640, 100, 0);
Sau đó, tôi hiển thị các giá trị đó trên màn hình LCD.
lcd.setCursor (0, 0); lcd.print ("độ đục:"); lcd.print (""); lcd.setCursor (10, 0); lcd.print (độ đục);
Sau đó, với sự trợ giúp của điều kiện if , tôi đã đưa ra các điều kiện khác nhau.
if (độ đục <20) { digitalWrite (2, HIGH); digitalWrite (3, LOW); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print ("nó CLEAR"); }
Điều này sẽ dẫn màu xanh lá cây hoạt động và hiển thị "rõ ràng" trên màn hình LCD nếu giá trị độ đục dưới 20.
if ((độ đục> 20) && (độ đục <50)) { digitalWrite (2, LOW); digitalWrite (3, CAO); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print ("nó là CLOUDY"); }
Điều này sẽ dẫn màu xanh dương hoạt động và hiển thị "có mây" trên màn hình LCD nếu giá trị độ đục nằm trong khoảng từ 20 đến 50.
if ((độ đục> 50) { digitalWrite (2, LOW); digitalWrite (3, HIGH); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print ("DIRTY của nó"); }
Điều này sẽ hoạt động đèn LED màu đỏ và hiển thị "nó bị bẩn" trên LCD nếu giá trị độ đục lớn hơn 50 như hình dưới đây.
Chỉ cần làm theo sơ đồ mạch và tải lên mã, nếu mọi thứ diễn ra chính xác, bạn sẽ có thể đo độ đục của nước và màn hình LCD sẽ hiển thị chất lượng của nước như hình trên.
Xin lưu ý rằng máy đo độ đục này hiển thị phần trăm độ đục và nó có thể không phải là giá trị công nghiệp chính xác, nhưng nó vẫn có thể được sử dụng để so sánh chất lượng nước của hai loại nước. Toàn bộ hoạt động của dự án này có thể được tìm thấy trong video bên dưới. Hy vọng bạn thích hướng dẫn và học được điều gì đó hữu ích nếu bạn có bất kỳ câu hỏi nào, bạn có thể để lại chúng trong phần bình luận bên dưới hoặc sử dụng diễn đàn CircuitDigest để đăng các câu hỏi kỹ thuật của bạn hoặc bắt đầu thảo luận có liên quan.