Arduino UNO R4 Cảm Biến Cồn MQ3

Hướng dẫn này sẽ chỉ bạn cách sử dụng Arduino UNO R4 và cảm biến cồn MQ3 để phát hiện hơi cồn và ethanol trong không khí. Cảm biến này thường được sử dụng trong các dự án máy thử nồng độ cồn và hệ thống phát hiện cồn.

Arduino UNO R4 với module cảm biến khí cồn mq3

Phần Cứng Cần Thiết

1×Arduino UNO R4 WiFi hoặc Arduino UNO R4 Minima
1×(Tùy chọn) DIYables STEM V4 IoT, tương thích với Arduino Uno R4 WiFi
1×Arduino UNO R4 Minima (Thay thế)
1×Cáp USB Type-C
1×Cảm Biến Cồn MQ3
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4
1×(Khuyến nghị) Breadboard Shield for Arduino UNO R4
1×(Khuyến nghị) Enclosure for Arduino UNO R4
1×(Khuyến nghị) Power Splitter for Arduino UNO R4
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V4 IoT Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Cảm Biến Cồn MQ3

Cảm biến cồn MQ3 là một cảm biến MOS (Metal Oxide Semiconductor), còn được gọi là Chemiresistor, vì nó phát hiện cồn dựa trên sự thay đổi điện trở của vật liệu cảm biến khi tiếp xúc với hơi cồn. Nó được thiết kế đặc biệt để phát hiện hơi cồn (ethanol) trong không khí và có độ nhạy cao với nồng độ cồn.

Cảm biến sử dụng lớp phủ Tin Dioxide (SnO2) trên chất nền ceramic Aluminum Oxide làm phần tử cảm biến. Khi được đun nóng, SnO2 trở nên nhạy cảm với cồn. Cảm biến được bao phủ bằng lưới thép không gỉ (mạng chống nổ) bảo vệ phần tử gia nhiệt bên trong và lọc các hạt lơ lửng trong khi vẫn cho phép các phần tử khí tiếp cận buồng cảm biến.

Các ứng dụng phổ biến bao gồm máy phân tích hơi thở, hệ thống phát hiện lái xe say rượu, báo động hiện diện cồn, và các dự án cần giám sát nồng độ cồn trong môi trường.

Thông Số Kỹ Thuật

  • Điện áp hoạt động: 5V DC
  • Điện trở tải: 200 KΩ
  • Điện trở gia nhiệt: 33Ω ± 5%
  • Công suất gia nhiệt: < 800mW
  • Điện trở cảm biến: 1 MΩ – 8 MΩ
  • Phạm vi phát hiện: 25 – 500 ppm (parts per million)
  • Thời gian làm nóng sơ bộ: 24-48 giờ cho lần sử dụng đầu tiên

ppm có nghĩa là gì? Parts-per-million (ppm) là đơn vị đo nồng độ khí. Ví dụ, 500 ppm cồn có nghĩa là trong một triệu phân tử khí, 500 phân tử là cồn và 999,500 là các khí khác.

Sơ Đồ Chân

Cảm biến cồn MQ3 có bốn chân:

  • Chân VCC: Kết nối chân này với VCC (5V).
  • Chân GND: Kết nối chân này với GND (0V).
  • Chân DO: Đây là chân đầu ra digital. Nó hiển thị LOW khi phát hiện cồn và HIGH nếu không. Bạn có thể điều chỉnh ngưỡng phát hiện cồn bằng biến trở trên bo mạch.
  • Chân AO: Đây là chân đầu ra analog. Nó tạo ra điện áp thay đổi tùy thuộc vào nồng độ cồn. Nồng độ cồn cao hơn làm điện áp tăng lên.
sơ đồ sơ đồ chân module cảm biến cồn mq3

Nó cũng có hai đèn LED:

  • Một đèn PWR-LED hiển thị nguồn điện đang bật.
  • Một đèn DO-LED hiển thị trạng thái phát hiện cồn dựa trên giá trị chân DO: nó sáng lên khi phát hiện cồn và tắt khi không có.

Cách Hoạt Động

Cảm biến MQ3 hoạt động dựa trên sự thay đổi điện trở của phần tử cảm biến Tin Dioxide (SnO2):

Trong không khí sạch: Khi chất bán dẫn SnO2 được gia nhiệt, các phân tử oxy được hấp phụ trên bề mặt, tạo ra một lớp nghèo electron. Điều này tạo thành một rào cản điện thế làm cho vật liệu có điện trở cao, ngăn dòng điện chạy qua.

Khi có mặt cồn: Hơi cồn phản ứng với oxy được hấp phụ, giảm mật độ oxy bề mặt và hạ thấp rào cản điện thế. Điều này giải phóng electron vào tin dioxide, cho phép dòng điện chạy tự do. Càng nhiều cồn có mặt, điện trở càng thấp.

Cảm biến cung cấp hai loại đầu ra:

Đối với chân DO (Digital Output):

  • Module bao gồm một biến trở để điều chỉnh ngưỡng nhạy cảm cho việc phát hiện cồn.
  • Nếu nồng độ cồn vượt quá ngưỡng đã đặt, chân đầu ra của cảm biến chuyển thành LOW và đèn DO-LED sáng lên.
  • Nếu nồng độ cồn dưới ngưỡng, chân đầu ra của cảm biến chuyển thành HIGH và đèn DO-LED tắt.

Đối với chân AO (Analog Output):

  • Điện áp đầu ra tỷ lệ với nồng độ cồn.
  • Nồng độ hơi cồn cao hơn tạo ra điện áp cao hơn.
  • Nồng độ hơi cồn thấp hơn tạo ra điện áp thấp hơn.
  • Biến trở không ảnh hưởng đến giá trị chân AO.

Làm Nóng và Hiệu Chuẩn Cảm Biến MQ3

Thời Gian Làm Nóng

Cảm biến cồn MQ3 phải được gia nhiệt trước khi sử dụng để có được kết quả chính xác:

  • Lần sử dụng đầu tiên hoặc sau khi cất giữ lâu (hơn một tháng): Làm nóng nó trong 24-48 giờ để có kết quả ổn định và chính xác.
  • Sử dụng gần đây: Nó chỉ cần 5-10 phút để làm nóng. Lúc đầu, các số liệu có thể cao, nhưng chúng sẽ ổn định sau một thời gian ngắn.

Để làm nóng cảm biến MQ3, kết nối các chân VCCGND của nó với nguồn điện hoặc với VCCGND trên Arduino UNO R4, và để nó kết nối trong thời gian làm nóng.

Hiệu Chuẩn Cho Các Giá Trị Ngưỡng

Vì MQ3 là cảm biến hoạt động bằng gia nhiệt, việc hiệu chuẩn có thể trôi dạt nếu để trong kho lâu. Để hiệu chuẩn cảm biến và tìm giá trị ngưỡng cho dự án máy thử nồng độ cồn của bạn:

  1. Ghi lại giá trị cơ sở: Chạy cảm biến trong không khí sạch và ghi lại các số liệu analog (thường khoảng 100-150).
  2. Thử nghiệm với cồn: Sử dụng cồn isopropyl hoặc nước rửa tay (không để chất lỏng lên cảm biến - chỉ hơi). Ép chai gần cảm biến để giải phóng hơi và ghi lại số liệu (thường 400-900 tùy thuộc vào nồng độ).
  3. Đặt ngưỡng: Dựa trên số liệu của bạn, bạn có thể định nghĩa các mức ngưỡng:
  • Tỉnh táo: Dưới cơ sở + 20 (ví dụ: < 120)
  • Trong giới hạn hợp pháp: Giữa cơ sở và mức trung bình (ví dụ: 120-400)
  • Trên giới hạn hợp pháp: Trên mức trung bình (ví dụ: > 400)

Lưu ý: Các giá trị này thay đổi tùy thuộc vào cảm biến cụ thể và môi trường của bạn. Luôn hiệu chuẩn với cảm biến của riêng bạn trước khi sử dụng.

Điều Chỉnh Ngưỡng Digital Output

Để đặt ngưỡng cho chân DO bằng biến trở trên bo mạch:

  1. Để cảm biến tiếp xúc với hơi cồn.
  2. Xoay biến trở theo chiều kim đồng hồ cho đến khi đèn LED trạng thái sáng lên.
  3. Xoay biến trở ngược chiều kim đồng hồ cho đến khi đèn LED vừa tắt.
  4. Ngưỡng của bạn giờ đã được đặt.

Sơ Đồ Đấu Nối

Module cảm biến cồn MQ3 có hai đầu ra. Bạn có thể sử dụng một hoặc cả hai, tùy thuộc vào nhu cầu của bạn.

Cảm Biến Cồn MQ3Arduino UNO R4
VCC5V
GNDGND
DOPin 2
AOA0
sơ đồ đấu nối Arduino UNO R4 và cảm biến cồn mq3 hiển thị kết nối chân

This image is created using Fritzing. Click to enlarge image

Code Arduino UNO R4 - Đọc giá trị từ chân DO

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino-uno-r4/arduino-uno-r4-mq3-alcohol-sensor */ #define DO_PIN 2 // The Arduino UNO R4 pin connected to DO pin of the MQ3 sensor void setup() { // initialize serial communication Serial.begin(9600); // initialize the Arduino's pin as an input pinMode(DO_PIN, INPUT); Serial.println("Warming up the MQ3 sensor"); delay(20000); // wait for the MQ3 to warm up } void loop() { int alcoholState = digitalRead(DO_PIN); if (alcoholState == HIGH) Serial.println("Alcohol is NOT detected"); else Serial.println("Alcohol is detected"); }

Các Bước Nhanh

Làm theo hướng dẫn từng bước sau:

  • Nếu đây là lần đầu tiên bạn sử dụng Arduino Uno R4 WiFi/Minima, hãy tham khảo hướng dẫn về Arduino UNO R4 - Cài Đặt Phần Mềm.
  • Kết nối bo mạch Arduino Uno R4 với cảm biến cồn MQ3 theo sơ đồ được cung cấp.
  • Kết nối bo mạch Arduino Uno R4 với máy tính của bạn bằng cáp USB.
  • Khởi chạy Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch Arduino Uno R4 thích hợp (ví dụ: Arduino Uno R4 WiFi) và cổng COM.
  • Sao chép code ở trên và mở nó trong Arduino IDE.
  • Nhấp vào nút Upload trong Arduino IDE để tải code lên Arduino UNO R4.
  • Để cảm biến MQ3 tiếp xúc với hơi cồn (bạn có thể sử dụng nước rửa tay hoặc cồn y tế trên bông gần cảm biến).
  • Kiểm tra kết quả trên Serial Monitor.
COM6
Send
Alcohol is NOT detected Alcohol is NOT detected Alcohol is NOT detected Alcohol is detected Alcohol is detected Alcohol is detected Alcohol is detected Alcohol is NOT detected Alcohol is NOT detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Lưu ý: Nếu đầu ra của cảm biến không phản ánh sự hiện diện thực tế của cồn (ví dụ: nó phát hiện cồn khi không có, hoặc không phát hiện khi có cồn), bạn cần điều chỉnh ngưỡng kích hoạt bằng cách xoay biến trở trên module cảm biến. Xoay theo chiều kim đồng hồ để tăng độ nhạy hoặc ngược chiều kim đồng hồ để giảm độ nhạy cho đến khi việc phát hiện phù hợp với thực tế.

Code Arduino UNO R4 - Đọc giá trị từ chân AO

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino-uno-r4/arduino-uno-r4-mq3-alcohol-sensor */ #define AO_PIN A0 // The Arduino UNO R4 pin connected to AO pin of the MQ3 sensor void setup() { // initialize serial communication Serial.begin(9600); Serial.println("Warming up the MQ3 sensor"); delay(20000); // wait for the MQ3 to warm up } void loop() { int alcoholValue = analogRead(AO_PIN); Serial.print("MQ3 sensor AO value: "); Serial.println(alcoholValue); delay(500); }

Các Bước Nhanh

  • Sao chép code ở trên và mở nó trong Arduino IDE
  • Nhấp vào nút Upload trong Arduino IDE để tải code lên Arduino UNO R4
  • Để cảm biến MQ3 tiếp xúc với hơi cồn (bạn có thể sử dụng nước rửa tay hoặc cồn y tế)
  • Kiểm tra kết quả trên Serial Monitor.
COM6
Send
MQ3 sensor AO value: 120 MQ3 sensor AO value: 125 MQ3 sensor AO value: 128 MQ3 sensor AO value: 450 MQ3 sensor AO value: 620 MQ3 sensor AO value: 850 MQ3 sensor AO value: 920 MQ3 sensor AO value: 980 MQ3 sensor AO value: 950 MQ3 sensor AO value: 680 MQ3 sensor AO value: 420
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Dựa trên các giá trị từ DO hoặc AO, bạn có thể đặt các mức ngưỡng để phát hiện cồn và kích hoạt báo động, bật LED cảnh báo, hoặc ghi lại dữ liệu cho các ứng dụng máy thử nồng độ cồn.

Code Arduino UNO R4 - Máy Thử Nồng Độ Cồn Đơn Giản với Ngưỡng

Ví dụ nâng cao này sử dụng đầu ra analog để ước tính mức độ say rượu dựa trên các giá trị ngưỡng đã hiệu chuẩn.

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino-uno-r4/arduino-uno-r4-mq3-alcohol-sensor */ #define AO_PIN A0 // The Arduino UNO R4 pin connected to AO pin of the MQ3 sensor // Threshold values - REPLACE THESE with your calibrated values! // Run calibration first to find these values for your sensor #define SOBER_THRESHOLD 120 // Below this = sober #define DRUNK_THRESHOLD 400 // Above this = drunk, between = drinking but within limits void setup() { // Initialize serial communication Serial.begin(9600); // Warm-up message Serial.println("MQ3 Alcohol Sensor - Breathalyzer"); Serial.println("Warming up sensor..."); delay(20000); // 20 second warm-up for recently used sensor Serial.println("Sensor ready!"); Serial.println(); } void loop() { int gasLevel = analogRead(AO_PIN); // Read the analog value from sensor // Print sensor value Serial.print("Sensor Value: "); Serial.print(gasLevel); Serial.print(" | Status: "); // Determine status based on thresholds if (gasLevel < SOBER_THRESHOLD) { Serial.println("Stone Cold Sober"); } else if (gasLevel >= SOBER_THRESHOLD && gasLevel < DRUNK_THRESHOLD) { Serial.println("Drinking but within limits"); } else { Serial.println("DRUNK"); } delay(1000); // Wait 1 second between readings }

Các Bước Nhanh

  • Quan trọng: Trước khi sử dụng code này, hãy chạy sketch hiệu chuẩn ở trên để tìm các giá trị ngưỡng của cảm biến trong không khí sạch và khi có cồn.
  • Thay thế các giá trị ngưỡng trong code (SOBER_THRESHOLDDRUNK_THRESHOLD) bằng các giá trị đã hiệu chuẩn của bạn.
  • Tải code lên Arduino UNO R4.
  • Thử nghiệm bằng cách để cảm biến tiếp xúc với hơi cồn (nước rửa tay hoặc cồn isopropyl).
  • Kiểm tra kết quả trên Serial Monitor.
COM6
Send
Sensor Value: 115 | Status: Stone Cold Sober Sensor Value: 118 | Status: Stone Cold Sober Sensor Value: 350 | Status: Drinking but within limits Sensor Value: 480 | Status: DRUNK Sensor Value: 520 | Status: DRUNK Sensor Value: 290 | Status: Drinking but within limits Sensor Value: 125 | Status: Stone Cold Sober
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Lưu ý: Điều này chỉ mang tính chất giáo dục. Không sử dụng như một máy thử nồng độ cồn hợp pháp hoặc để xác định khả năng lái xe.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Bài hướng dẫn liên quan