Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
- Committer:
- kosukesuzuki
- Date:
- 2022-02-23
- Revision:
- 0:1ce8dacdff38
- Child:
- 1:036305ced8fd
File content as of revision 0:1ce8dacdff38:
//PID制御
#include "mbed.h"
#include "MPU6050.h"
const double Kp =0.3;
const double Ki =0.4;
const double Kd =0.5;
const double T =0; //目標
MPU6050 mpu(p9,p10);
Serial pc(USBTX,USBRX);
PwmOut led(LED1);
int gyro[3];
double GX;
double Tgx;
int main() {
GX = 0;
while(1){
//角度求める
mpu.readGyroData(gyro);
int gx = gyro[0]+3656-3505;
//printf("%d\r\n",gx);
double gX = gx*0.02562299;
int gX1 = gX;
double gX2 = gX1*0.01;
GX = GX + gX2;
Tgx = Tgx + abs(gX2);
if(Tgx > 5){
if(GX > 0){
GX = GX - 0.3;
}else{
GX = GX + 0.3;
}
Tgx=0;
}
//printf("GX %.2f\r\n",GX);
wait(0.01);
//PID()
double c;
double f1;
f1 = T - GX;
c = Kp*f1+Ki*f1*0.01+Kd*gX1;
//printf("c %.2f\r\n",c);
//回転トルク→duty比
double d1;
d1 = abs(c)/77;
if(d1 > 1){
d1 = 1;
}
//duty比からledを動かす。
led = d1;
}
}