- Các thành phần bắt buộc:
- Cảm biến con quay hồi chuyển MPU6050:
- Sự miêu tả:
- Sơ đồ mạch và giải thích:
- Giải thích lập trình
Cảm biến MPU6050 có nhiều chức năng trên chip đơn. Nó bao gồm một gia tốc kế MEMS, một con quay hồi chuyển MEMS và cảm biến nhiệt độ. Mô-đun này rất chính xác trong khi chuyển đổi các giá trị tương tự sang kỹ thuật số vì nó có phần cứng chuyển đổi tín hiệu tương tự sang kỹ thuật số 16 bit cho mỗi kênh. Mô-đun này có khả năng bắt kênh x, y và z cùng một lúc. Nó có giao diện I2C để giao tiếp với bộ điều khiển máy chủ. Đây Module MPU6050 là một con chip nhỏ gọn có cả gia tốc kế và con quay hồi chuyển. Đây là một thiết bị rất hữu ích cho nhiều ứng dụng như máy bay không người lái, robot, cảm biến chuyển động. Nó còn được gọi là Con quay hồi chuyển hoặc Gia tốc kế ba trục.
Hôm nay trong bài viết này, chúng ta sẽ giao diện Con quay hồi chuyển MPU6050 này với Arduino và hiển thị các giá trị trên màn hình LCD 16x2.
Các thành phần bắt buộc:
- Arduino Uno
- MPU-6050
- LẨU 10K
- Dây nhảy
- Breadboard
- cáp USB
- Nguồn cấp
Cảm biến con quay hồi chuyển MPU6050:
MPU-6050 là một con quay hồi chuyển và gia tốc kế 8 chân 6 trục trong một chip duy nhất. Mô-đun này hoạt động trên giao tiếp nối tiếp I2C theo mặc định nhưng nó có thể được cấu hình cho giao diện SPI bằng cách cấu hình thanh ghi của nó. Đối với I2C điều này có các đường SDA và SCL. Hầu như tất cả các chân đều đa chức năng nhưng ở đây chúng ta chỉ tiến hành với các chân chế độ I2C.
Cấu hình Pin:
Vcc: - chân này được sử dụng để cấp nguồn cho mô-đun MPU6050 liên quan đến nối đất
GND: - đây là chân nối đất
SDA: - Chân SDA được sử dụng cho dữ liệu giữa bộ điều khiển và mô-đun mpu6050
SCL: - Chân SCL được sử dụng cho đầu vào đồng hồ
XDA: - Đây là dòng Dữ liệu I2C SDA của cảm biến để cấu hình và đọc từ các cảm biến bên ngoài ((tùy chọn) không được sử dụng trong trường hợp của chúng tôi)
XCL: - Đây là dòng đồng hồ I2C SCL của cảm biến để cấu hình và đọc từ các cảm biến bên ngoài ((tùy chọn) không được sử dụng trong trường hợp của chúng tôi)
ADO: - I2C Slave Address LSB (không áp dụng trong trường hợp của chúng tôi)
INT: - Chân ngắt cho biết dữ liệu đã sẵn sàng.
Sự miêu tả:
Trong bài viết này, chúng tôi đang hiển thị các kết quả đọc nhiệt độ, con quay hồi chuyển và gia tốc kế qua màn hình LCD sử dụng MPU6050 với Arduino. Mô-đun này cung cấp cho chúng tôi các giá trị hàng và giá trị chuẩn hóa trong đầu ra nhưng giá trị hàng không ổn định nên ở đây chúng tôi đã hiển thị các giá trị chuẩn hóa trên màn hình LCD. Nếu bạn chỉ muốn giá trị gia tốc kế, bạn cũng có thể sử dụng Gia tốc kế ADXL335 với Arduino.
Trong dự án này, lần đầu tiên chúng tôi hiển thị giá trị nhiệt độ trên màn hình LCD và sau 10 giây, chúng tôi hiển thị các giá trị con quay hồi chuyển và sau 10 giây, chúng tôi có các kết quả đọc gia tốc như thể hiện trong hình ảnh bên dưới:
Sơ đồ mạch và giải thích:
Sơ đồ mạch, để giao tiếp MPU6050 với Arduino, rất đơn giản ở đây chúng tôi đã sử dụng màn hình LCD và MPU6050. Và ở đây chúng tôi đã sử dụng bộ cấp nguồn USB máy tính xách tay. Một nồi 10k được sử dụng để kiểm soát độ sáng của màn hình LCD. Về kết nối với MPU6050, chúng tôi đã thực hiện 5 kết nối, trong đó chúng tôi đã kết nối nguồn điện 3.3v và mặt đất của MPU6050 với 3.3v và mặt đất của Arduino. Các chân SCL và SDA của MPU6050 được kết nối với chân A4 và A5 của Arduino. Và chân INT của MPU6050 được kết nối với ngắt 0 của Arduino (D2). RS, RW và EN của LCD được kết nối trực tiếp với 8, gnd và 9 của Arduino. Chân dữ liệu được kết nối trực tiếp với chân số 10, 11, 12 và 13.
Giải thích lập trình
Phần lập trình cũng dễ dàng cho dự án này. Ở đây chúng tôi đã sử dụng thư viện MPU6050 này để giao diện nó với Arduino. Vì vậy, trước hết, chúng ta cần tải xuống thư viện MPU6050 từ GitHub và cài đặt nó trong Arduino IDE.
Sau đó, chúng ta có thể tìm thấy các mã ví dụ trong ví dụ. Người dùng có thể kiểm tra mã đó bằng cách tải trực tiếp chúng lên Arduino và có thể xem các giá trị qua màn hình nối tiếp. Hoặc người dùng có thể sử dụng mã của chúng tôi đưa ra ở cuối bài viết để hiển thị các giá trị trên màn hình LCD và màn hình nối tiếp.
Trong mã hóa, chúng tôi đã bao gồm một số thư viện bắt buộc như MPU6050 và LCD.
#include
Trong chức năng thiết lập , chúng tôi khởi tạo cả hai thiết bị và viết thông báo chào mừng qua màn hình LCD
void setup () {lcd.begin (16,2); lcd.createChar (0, độ); Serial.begin (9600); Serial.println ("Khởi tạo MPU6050"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Không tìm thấy thiết bị"); Serial.println ("Không thể tìm thấy cảm biến MPU6050 hợp lệ, hãy kiểm tra hệ thống dây điện!"); chậm trễ (500); } count = 0; mpu.calibrateGyro (); mpu.setThreshold (3); Trong Chức năng vòng lặp , chúng tôi đã gọi ba chức năng trong mỗi 10 giây để hiển thị nhiệt độ, con quay hồi chuyển và đọc gia tốc kế trên màn hình LCD. Ba chức năng này là tempShow, gyroShow và accelShow , bạn có thể kiểm tra các chức năng đó trong mã Arduino hoàn chỉnh được cung cấp ở cuối bài viết này:
void loop () {lcd.clear (); lcd.print ("Nhiệt độ"); long st = millis (); Serial.println ("Nhiệt độ"); trong khi (mili ()
Con quay hồi chuyển và gia tốc kế MPU6050 đều được sử dụng để phát hiện vị trí và hướng của bất kỳ thiết bị nào. Con quay hồi chuyển sử dụng lực hấp dẫn của trái đất để xác định vị trí trục x, y và z và gia tốc kế phát hiện dựa trên tốc độ thay đổi của chuyển động. Chúng tôi đã sử dụng gia tốc kế với Arduino trong nhiều dự án của mình như:
- Robot điều khiển bằng cử chỉ bằng tay dựa trên gia tốc kế
- Hệ thống cảnh báo tai nạn xe dựa trên Arduino
- Báo động máy dò động đất sử dụng Arduino