模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

625查看 | 4回复

帮帮忙

[复制链接]
发表于 2016-6-16 13:50:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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);
      }


发表于 2016-6-16 15:58:24 | 显示全部楼层
先确认你的H是否会变化
 楼主| 发表于 2016-6-16 22:04:03 | 显示全部楼层
wpp8504 发表于 2016-6-16 15:58
先确认你的H是否会变化

现在我知道了
 楼主| 发表于 2016-6-17 11:03:37 | 显示全部楼层

这个要怎嘛改才能把H赋进去到while呢   我把它改成while里面的while 还是循环不了
发表于 2016-6-18 07:33:07 | 显示全部楼层
高手的技术贴。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|关于模吧|APP下载|广告报价|小黑屋|手机版|企业会员|商城入驻|联系我们|模吧 ( 冀公网安备13080502000084号 )

© 2013-2020 Moz8.com 模吧,玩出精彩!