ESP32 Hall – Khái niệm và cách dùng trên Arduino IDE (code mẫu sẵn)

Trong chủ đề ESP32 Hall này, chúng ta sẽ cùng tìm hiểu về cảm biến hiệu ứng Hall tích hợp trên ESP32 là gì, cách hoạt động của chúng và code mẫu để làm việc với cảm biến Hall trên ESP32 (kèm code mẫu chi tiết cho bạn).

Cảm biến hiệu ứng Hall là gì?

Cảm biến Hall giúp chúng ta phát hiện sự hiện diện và cường độ của từ trường, thường được dùng trong các dự án như phát hiện tốc độ, định vị, cảm biến dòng điện hoặc cảm biến tiệm cận. Chúng sẽ trả về các kết quả đọc Digital, dựa trên cường độ mà chúng phát hiện được.

Hiện nay, cảm biến này có giá thành cực kỳ rẻ. Do đó, nhiều bạn cảm thấy việc tích hợp cảm biến Hall lên một vi điều khiển hỗ trợ WiFi và nhiều tính năng đa dạng như ESP32 là điều không cần thiết. Tuy nhiên, điều này thì chưa hẳn vậy. Đôi khi chúng ta có thể nảy ra những ý tưởng với những dự án cần dùng đến Hall, lúc đó sẽ rất thuận tiện cho chúng ta.

Cách hoạt động của cảm biến Hall

Để hiểu về cách hoạt động của cảm biến hiệu ứng Hall, cùng xem qua một ví dụ đơn giản sau:

Hãy xem xét một tấm dẫn điện có hình dạng giống với một tờ tiền. Khi một nguồn điện áp không đổi được nối qua bên trái và bên phải, thì các electron sẽ chạy qua dây dẫn theo đường thẳng.

Khi không có từ trường, chúng ta sẽ thấy điện áp mặt trên và mặt dưới của tờ tiền gần như bằng 0.

Cách hoạt động của cảm biến ESP32 Hall

Tuy nhiên, khi có từ trường với đường sức từ vuông góc với dòng điện, sẽ có một lực Lorentz tác dụng lên electron. Lực này khiến chúng lệch khỏi đường thẳng và tích tụ ở một bên dây dẫn (không xuất hiện ở phía bên kia). Từ đó, một bên của dây dẫn có nhiều electrong hơn bên kia => Dẫn đến chênh lệch điện thế (điện áp Hall) trên dây dẫn.

Chúng ta gọi hiện tượng trên là hiệu ứng Hall.

Cách hoạt động của cảm biến hiệu ứng Hall

Khi từ trường càng mạnh => độ lệch electron càng lớn; khi dòng điện càng lớn => càng có nhiều electron bị lệnh hướng.

Trong cả 2 trường hợp trên, điện áp Hall sẽ càng lớn.

Nói ngắn gọn, điện áp Hall tỷ lệ thuận với cả dòng điện chạy qua dây dẫn lẫn cường độ của từ trường.

Cảm biến hiệu ứng Hall sẽ đo điện áp Hall nối với dòng điện đã biết, từ đó xác định được cường độ của từ trường.

Giới thiệu cảm biến Hall ESP32 tích hợp

Trên ESP32 có tích hợp sẵn cảm biến hiệu ứng Hall, thường là nằm bên dưới lớp nắp kim loại của các module ESP32 WROOM 32, ví dụ như hình:

Giới thiệu cảm biến Hall ESP32 tích hợp

Việc tích hợp sẵn cảm biến Hall vào ESP32 đồng nghĩa với việc bạn có thể dễ dàng kết nối các chỉ số đọc được từ cảm biến với các chức năng như Bluetooth hoặc WiFi, giúp việc giám sát và điều khiển được dễ dàng hơn.

Mặc dù cảm biến ESP32 Hall được tích hợp có thể không có độ chính xác cao như các cảm biến chuyên dụng bên ngoài, khả năng định vị cũng như độ nhạy của chúng còn hạn chế, nhưng chúng vẫn phù hợp với nhiều ứng dụng cơ bản.

Một số ứng dụng phù hợp với ESP32 Hall là phát hiện từ trường, thực hiện một nhiệm vụ cụ thể khi có nam châm ở gần hoặc xây dựng các dự án giáo dục đơn giản để tìm hiểu về hiệu ứng Hall.

Cách đọc giá trị từ cảm biến hiệu ứng Hall tích hợp ESP32 – Arduino IDE

Việc đọc giá trị từ cảm biến Hall tích hợp ESP32 khá đơn giản. Trong Arduino IDE, chúng ta sẽ dùng hàm hallRead(), hàm này trả về một số nguyên biểu thị giá trị của hiệu ứng Hall.

hallRead();

Code mẫu

Trong Arduino IDE có sẵn nhiều code mẫu để chúng ta đo được hiệu ứng Hall trên ESP32.

Bạn hãy mở Arduino IDE và click File > Examples > ESP32, sau đó mở code mẫu có tên là HallSensor.

Trong đoạn code này, chúng sẽ giúp đọc giá trị của cảm biến ESP32 Hall và hiển thị lên màn hình Serial Monitor:

int val = 0;
void setup() {
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  val = hallRead();
  // print the results to the serial monitor:
  //Serial.print("sensor = ");
  Serial.println(val);//to graph 
}

Sau khi upload code trên vào ESP32, bạn hãy mở Serial Monitor ở tốc độ 9600 và nhấn nút EN / RST trên mạch ESP32.

Tất cả đã sẵn sàng! Bạn hãy thử đưa một nam châm lại gần ESP32, bạn sẽ thấy giá trị trên Serial Monitor thay đổi tùy theo khoảng cách và cực của nam châm:

Demo kết quả đọc được từ cảm biến ESP32 Hall

Việc quan sát giá trị của cảm biến Hall tích hợp ESP32 trên Serial theo thời gian thực giúp chúng ta rút ra kết luận rằng:

  • Khi không có từ trường, kết quả vẫn ở mức tầm 100.
  • Nếu đưa cực Nam nam châm lại gần, kết quả tăng thành 200.
  • Nếu đưa cực Bắc nam châm lại gần, kết quả giảm dần về 0.

Cách đọc giá trị từ cảm biến ESP32 Hall với MicroPython

Nếu bạn muốn đọc giá trị ESP32 Hall bằng MicroPython, dưới đây là code mẫu cho bạn:

import esp32

while True:
    hall_value = esp32.hall_sensor()
    print(hall_value)

Trong code trên, chúng ta Import mạch ESP32, cung cấp quyền truy cập vào các chức năng trên ESP32, bao gồm cả cảm biến hiệu ứng Hall.

Trong vòng lặp While, chúng ta gọi hàm esp32.hall_sensor() để đọc giá trị từ cảm biến hiệu ứng Hall. Hàm này sẽ trả về kết quả là một số nguyên, đại diện cho cường độ hoặc cực từ trường.

Cuối cùng, chúng ta in hall_value. Vòng lặp này lặp lại liên tục, hệ thống sẽ luôn đọc và in giá trị cảm biến liên tục.

Lời kết

Trên đây là hướng dẫn chi tiết với cảm biến ESP32 Hall, khá đơn giản phải không nào! IoTZone có cung cấp thêm nhiều bài hướng dẫn khác với mạch ESP32, từ cơ bản đến nâng cao, bạn có thể tham khảo nếu thích:

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *