使用ARDUINO UNO与HC-SR04、MPU6050以及SG90 9G,实现舵机控制的代码
时间: 2024-05-15 08:15:56 浏览: 175
以下是使用ARDUINO UNO与HC-SR04、MPU6050以及SG90 9G,实现舵机控制的代码:
```
#include <Wire.h>
#include <Servo.h>
#include <MPU6050.h>
MPU6050 mpu;
Servo myservo;
const int trigPin = 9;
const int echoPin = 10;
long duration;
int distance;
void setup() {
Serial.begin(9600);
myservo.attach(3);
Wire.begin();
mpu.initialize();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print(distance);
Serial.println(" cm");
int angle = map(distance, 5, 25, 0, 180);
myservo.write(angle);
delay(100);
int ax, ay, az;
int gx, gy, gz;
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
Serial.print("gyro_x: ");
Serial.print(gx);
Serial.print("gyro_y: ");
Serial.print(gy);
Serial.print("gyro_z: ");
Serial.println(gz);
delay(1000);
}
```
在这个代码中,我们使用HC-SR04测量距离,然后根据距离控制舵机的角度。同时,我们还使用MPU6050获取陀螺仪数据,并将其输出到串行监视器中。通过这个代码,我们可以实现舵机控制和陀螺仪数据的读取。
阅读全文