Giới thiệu cảm biến GY-511 đo gia tốc góc
Cảm biến GY-511 là một cảm biến gia tốc 3 trục nhỏ gọn, mỏng, công suất thấp hoàn chỉnh với các đầu ra điện áp được điều chỉnh tín hiệu. Nó có thể đo gia tốc tĩnh của trọng lực trong các ứng dụng cảm biến độ nghiêng, cũng như gia tốc động do chuyển động, sốc hoặc rung. Cảm biến này đi kèm với một bộ điều chỉnh điện áp trên bo mạch và hoạt động ở cả 3.3V và 5V.
Cảm biến gia tốc này được ứng dụng trong nhiều lĩnh vực khác nhau như: hệ thống FPV, RC và Robot, hệ thống định vị GPS, thiết bị đầu vào trò chơi và thực tế ảo, giám sát và bù rung, phát hiện rơi tự do, phát hiện định hướng 6D,… thường được dùng để xác định hướng chuyển động và hướng từ trường của trái đất nhằm xác định phương hướng với độ chính xác cao.

Chức năng các chân
- 3V3: chân nguồn dương 3.3V
- Vcc : chân nguồn dương 5V
- GND: Chân cấp nguồn 0V
- DRDY : Chân sẵn sàng dữ liệu
- L1 : Chân ngắt 1
- L2 : Chân ngắt 2
- SDA: Chân dữ liệu I2C
- SCL : Chân tạo xung I2C

Thông số kỹ thuật cảm biến GY-511 đo gia tốc góc
- Điện áp sử dụng: 3~5VDC
- Điện áp giao tiếp: 3~5VDC
- Chuẩn giao tiếp: I2C
- Số trục : 3 trường và 3 trục gia tốc
- Phạm vi của trường: ± 1.3 to ±8.1
- Phạm vi tăng tốc: ±2g/±4g/±8g/±16g
- Số bit output: 16 bit data output.
- Tính năng: Chế độ chờ
- Cảm biến tích hợp: Nhiệt độ nhúng
- Góc phát hiện: 6DOF
- Kích thước: 14.5 x 20.5mm
Một số ứng dụng
- Trò chơi cảm biến chuyển động
- Thực tế tăng cường
- Ổn định hình ảnh điện tử (EIS: Ổn định hình ảnh điện tử)
- Ổn định hình ảnh quang học (OIS: Ổn định hình ảnh quang học)
- Định hướng cho người đi bộ
- Giao diện người dùng cử chỉ “không chạm”
- Phím tắt tư thế
- Chứng nhận
- Điện thoại thông minh
- Thiết bị máy tính bảng
- Sản phẩm chơi game cầm tay
- Điều khiển từ xa 3D
- Thiết bị định vị di động
Sơ đồ nguyên lý

Chương trình Test sản phẩm
Nguyên lý kết nối

Chương trình
- Thư viện: Adafruit_Sensor.h hoặc tải trực tiếp trên Arduino IDE với tên Adafruit_Sensor
- Thư viện: Adafruit_LSM303_U.h hoặc tải trực tiếp trên Arduino IDE với tên Adafruit_LSM303_U
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM303_U.h>
/* Assign a unique ID to this sensor at the same time */
Adafruit_LSM303_Mag_Unified mag = Adafruit_LSM303_Mag_Unified(12345);
// OUTPUT: Use digital pins 9-11, the Pulse-width Modulation (PWM) pins
// LED's cathodes should be connected to digital GND
int redPin = 9; // Red LED, connected to digital pin 9
int grnPin = 10; // Green LED, connected to digital pin 10
int bluPin = 11; // Blue LED, connected to digital pin 11
// Program variables
int redVal = 0; // Variables to store the values to send to the pins
int grnVal = 0;
int bluVal = 0;
int magnetometer = 0;
int magVal = 0; //Variable to store the input from the magnetometer
// Pi for calculations - not the raspberry type
const float Pi = 3.14159;
// This is the desired direction of travel
// expressed as a 0-360 degree compass heading
// 0.0 = North
// 90.0 = East
// 180.0 = South
// 270 = West
const float targetHeading = 0.0;
void setup()
{
Serial.begin(9600);
Serial.println("Magnetometer Test"); Serial.println("");
/* Initialise the sensor */
if(!mag.begin())
{
/* There was a problem detecting the LSM303 ... check your connections */
Serial.println("Ooops, no LSM303 detected ... Check your wiring!");
while(1);
}
pinMode(redPin, OUTPUT); // sets the pins as output
pinMode(grnPin, OUTPUT);
pinMode(bluPin, OUTPUT);
}
void loop(void)
{ /* Get a new sensor event */
sensors_event_t event;
mag.getEvent(&event);
// Calculate the angle of the vector y,x
float heading = (atan2(event.magnetic.y,event.magnetic.x) * 180) / Pi; // Normalize to 0-360
if (heading < 0)
{ heading = 360 + heading;
}
magVal = heading; // read the magnetometer
Serial.print("mag: "); Serial.print(magVal); Serial.print(" # ");
if (magVal < 91) // Lowest fourth of the magnetometer's range (0-90)
{ magVal = (magVal * 3) / 4; // Normalize to 0-68
redVal = 69 - magVal; // Red from full to off
grnVal = magVal; // Green from off to full
bluVal = 1; // Blue off
Serial.print("1: "); Serial.print(redVal); Serial.print(":");Serial.print(grnVal);
Serial.print(":"); Serial.println(bluVal);
}
else if (magVal < 181) // Lower middle fourth of magnetometer's range (91-180)
{ magVal = ( (magVal-91) * 3) / 4; // Normalize to 0-68
redVal = 1; // Red off
grnVal = 69 - magVal; // Green from full to off
bluVal = magVal; // Blue from off to full
Serial.print("2: "); Serial.print(redVal); Serial.print(":");Serial.print(grnVal);
Serial.print(":"); Serial.println(bluVal);
}
else if (magVal < 271)// Upper middle fourth of magnetometer"s range (181-270)
{ magVal = ( (magVal-182) * 3) / 4; // Normalize to 0-68
redVal = 1; // Red off
grnVal = 1; // Green off
bluVal = 69 - magVal; // Blue from full to off
Serial.print("3: "); Serial.print(redVal); Serial.print(":");Serial.print(grnVal);
Serial.print(":"); Serial.println(bluVal);
}
else // Upper fourth of magnetometer"s range (271-360)
{ magVal = ( (magVal-272) * 3) / 4; // Normalize to 0-68
redVal = 1; // Red of
grnVal = 1; // Green off
bluVal = 1; // Blue off
Serial.print("4: "); Serial.print(redVal); Serial.print(":");Serial.print(grnVal);
Serial.print(":"); Serial.println(bluVal);
}
analogWrite(redPin, redVal); // Write values to LED pins
analogWrite(grnPin, grnVal);
analogWrite(bluPin, bluVal);
}
Liên hệ làm mạch
- Phone: 0967.551.477
- Zalo: 0967.551.477
- Email: dientunhattung@gmail.com
- Chi tiết : Nhận làm mạch và hướng dẫn đồ án sinh viên
Tham khảo chương trình mẫu và thông tin linh kiện chi tiết tại:

MODULE ĐỘ ẨM ĐẤT, CẢM BIẾN ĐỘ ẨM
ANTEN 2.4Ghz 5dBi KIM TRONG 15CM, ANTEN 2.4GHz DÂY 3M
Cảm Biến Bụi PM2.5, CẢM BIẾN GP2Y1010AU0F 

















Đánh giá
Chưa có đánh giá nào.