Cách Kết Nối La Bàn Kỹ Thuật Số HMC5883 Với Arduino

Mục lục:

Cách Kết Nối La Bàn Kỹ Thuật Số HMC5883 Với Arduino
Cách Kết Nối La Bàn Kỹ Thuật Số HMC5883 Với Arduino

Video: Cách Kết Nối La Bàn Kỹ Thuật Số HMC5883 Với Arduino

Video: Cách Kết Nối La Bàn Kỹ Thuật Số HMC5883 Với Arduino
Video: hmc5883l arduino compass,magnetometer sensor,compass navigation"Arduino Project for beginners 2024, Tháng mười một
Anonim

Hãy xem xét kết nối của mô-đun GY-273 với la bàn kỹ thuật số ba trục Honeywell HMC5883L. Vi mạch này có thể được sử dụng để đo từ kế, trong điều hướng, nếu không yêu cầu độ chính xác đo cao (với sai số 1 … 2 độ và khả năng hiệu chuẩn). Thiết bị được kết nối thông qua giao diện I2C.

La bàn kỹ thuật số HMC5883
La bàn kỹ thuật số HMC5883

Cần thiết

  • - La bàn số HMC5883;
  • - Arduino;
  • - bảng nguyên mẫu và các dây kết nối;
  • - máy vi tính.

Hướng dẫn

Bước 1

Đây là những tính năng chính của la bàn từ:

- Cảm biến từ tính 3 trục;

- 12-bit ADC với độ phân giải 2 mG (miligauss);

- tự kiểm tra tích hợp sẵn;

- điện áp hoạt động thấp và tiêu thụ thấp;

- giao diện kỹ thuật số I2C;

- tỷ lệ bỏ phiếu cao - lên đến 160 lần mỗi giây (thời gian của một lần đo là khoảng 6 ms);

- độ chính xác của việc xác định hướng là 1 °… 2 °;

- Có thể được sử dụng trong từ trường mạnh (lên đến ± 8 Gauss).

Sơ đồ kết nối cảm biến từ HMC5883L với Arduino được thể hiện trong hình. Nó rất nhỏ gọn và đơn giản, bởi vì Giao diện I2C hai dây rất tuyệt vời vì nó yêu cầu ít kết nối. Bạn có thể sử dụng một breadboard.

Kết nối la bàn kỹ thuật số HMC5883 với Arduino
Kết nối la bàn kỹ thuật số HMC5883 với Arduino

Bước 2

Nó sẽ trông giống như bức ảnh. Tôi cũng sẽ kết nối một bộ phân tích logic với các bus SCL và SDA để giám sát việc trao đổi thông tin giữa Arduino và mô-đun HMC5883. Nó không bắt buộc.

La bàn kỹ thuật số HMC5883 được kết nối với Arduino trên breadboard
La bàn kỹ thuật số HMC5883 được kết nối với Arduino trên breadboard

Bước 3

Là người mới quen lần đầu, chúng ta hãy thử đọc các thanh ghi nhận dạng 10 (0xA), 11 (0xB) và 12 (0xC) của la bàn kỹ thuật số HMC5883 và viết một bản phác thảo như trong hình. Nó được cung cấp với các bình luận chi tiết.

Phác thảo đọc các thanh ghi nhận dạng của HMC5883
Phác thảo đọc các thanh ghi nhận dạng của HMC5883

Bước 4

Tín hiệu thu được bằng bộ phân tích logic sẽ như trong hình minh họa.

Nó có nghĩa là gì? Byte đầu tiên là địa chỉ I2C mà chúng ta (thiết bị chính, Arduino) thiết lập giao tiếp (7 bit cao 0x1E) và chế độ ghi (bit thấp - 0x0); số là 0x3C. Byte thứ hai là số 0xA, mà chúng tôi đã viết để địa chỉ 0x1E và bit xác nhận từ cảm biến HMC5883L, là nô lệ. Đây là số đăng ký mà từ đó chúng ta sẽ bắt đầu đọc dữ liệu. Điều này kết thúc giao dịch đầu tiên. Tiếp theo bắt đầu. Byte thứ ba là yêu cầu đọc từ slave (7 bit quan trọng nhất là địa chỉ 0x1E, bit thứ 8 là hoạt động đọc 0x1; số kết quả là 0x3D). 3 ba byte cuối cùng là phản hồi từ nô lệ HMC5883L từ các thanh ghi 0xA, 0xB và 0xC, tương ứng.

La bàn kỹ thuật số HMC5883L di chuyển qua các thanh ghi một cách độc lập trong quá trình đọc liên tục. Những, cái đó. không cần thiết (nhưng không bị cấm) chỉ rõ trường hợp mỗi lần. Ví dụ: nếu thay vì 0xA, chúng ta sẽ viết 0x3 và đọc 10 lần, chúng ta sẽ nhận được các giá trị trong 10 thanh ghi, bắt đầu từ thanh ghi thứ 3 đến thứ 12.

Và ba số này là gì - 0x48, 0x34, 0x33? Sử dụng lại bảng dữ liệu cho la bàn kỹ thuật số HMC5883L, chúng ta sẽ thấy rằng đây là các giá trị mặc định cho ba thanh ghi nhận dạng.

Sơ đồ thời gian của trao đổi I2C với la bàn kỹ thuật số HMC5883
Sơ đồ thời gian của trao đổi I2C với la bàn kỹ thuật số HMC5883

Bước 5

Để lấy dữ liệu la bàn kỹ thuật số trên từ trường, bạn cần đọc các thanh ghi từ 3 đến 8, giống như chúng ta đọc các thanh ghi nhận dạng. Sự khác biệt duy nhất là dữ liệu cho mỗi trong ba trục X, Y và Z được trình bày dưới dạng số byte kép. Chuyển chúng thành số thập phân, chúng tôi nhận được chỉ đường dọc theo từng trục trong số ba trục.

Đề xuất: