|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
#include<Servo.h>
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4; //定义四个舵机
int inputPin = 4; //接超声波ECHO到数字D4脚
int outputPin = 5; //接超声波TRIG到数字D5脚
void setup()
{
myservo1.attach(3);
myservo2.attach(5);
myservo3.attach(6);
myservo4.attach(7);//定义控制引脚
Serial.begin(9600);//设置串口波特率为9600
pinMode(4,INPUT);//配置D4引脚模式为输入模式
pinMode(5,OUTPUT);//配置D5引脚模式为输出模 式
}
void loop()
{
digitalWrite(outputPin,LOW);
delayMicroseconds(2);
digitalWrite(outputPin,HIGH);
delayMicroseconds(10);//发出持续时间为10us到Trig脚驱动超声波检测
digitalWrite(outputPin,LOW);
int H = pulseIn(inputPin,HIGH);//接收脉冲的时间
H = H/58;//将脉冲值转化为距离值,单位cm
while (H>0&&H<50)
{
myservo1.writeMicroseconds(1800);
myservo2.writeMicroseconds(1800);
myservo3.writeMicroseconds(1800);
有人愿意帮我看下吗
为什么我的程序一直在第一个while里循环,不能进入其他的while循环 ,,帮我一下,万分感谢
myservo4.writeMicroseconds(1800); //舵机上升
}
while (H>50&&H<100)
{
myservo1.writeMicroseconds(1500);
myservo2.writeMicroseconds(1500);
myservo3.writeMicroseconds(1500);
myservo4.writeMicroseconds(1500); //舵机悬停
}
while (H>100)
{
myservo1.writeMicroseconds(1300);
myservo2.writeMicroseconds(1300);
myservo3.writeMicroseconds(1300);
myservo4.writeMicroseconds(1300);//舵机下降
}
delay(10);
}
|
| |