接線圖.png (134.64 KB, 下載次數: 31)
下載附件
2023-11-28 00:07 上傳
#include "stm32f10x.h" // Device header
#include "Delay.h"
#include "OLED.h"
#include "MPU6050.h"
#include "Servo.h"
uint8_t ID; //定義用于存放ID號的變量
int16_t AX, AY, AZ, GX, GY, GZ; //定義用于存放各個數據的變量
float abs_value(int16_t num) {
if(num>2000){
num=2000;
}
if(num<-2000){
num=-2000;
}
if (num < 0) {
return -num;
} else {
return num;
}
}
int main(void)
{
/*模塊初始化*/
OLED_Init(); //OLED初始化
MPU6050_Init(); //MPU6050初始化
Servo_Init(); //舵機初始化
/*顯示ID號*/
OLED_ShowString(1, 1, "ID:"); //顯示靜態字符串
ID = MPU6050_GetID(); //獲取MPU6050的ID號
OLED_ShowHexNum(1, 4, ID, 2); //OLED顯示ID號
while (1)
{
MPU6050_GetData(&AX, &AY, &AZ, &GX, &GY, &GZ); //獲取MPU6050的數據
OLED_ShowSignedNum(2, 1, AX, 5); //OLED顯示數據
OLED_ShowSignedNum(3, 1, AY, 5);
OLED_ShowSignedNum(4, 1, AZ, 5);
OLED_ShowSignedNum(2, 8, GX, 5);
OLED_ShowSignedNum(3, 8, GY, 5);
OLED_ShowSignedNum(4, 8, GZ, 5);
AY = abs_value(AY*180/2000);
Servo_SetAngle(AY); //設置舵機的角度為角度變量
OLED_ShowNum(1, 8, AY, 5); //OLED顯示角度變量
//Delay_ms(500);
}
}
原理圖: 無
仿真: 無
代碼:
stm32利用mpu6050陀螺儀控制舵機.7z
(187.21 KB, 下載次數: 69)
2023-11-28 00:03 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|