浪翻 #超声波控制舵机# BUG2018-04-07

用超声波控制舵机:

超声波arduino中文社区手册了解一下

再了解一下


浪翻 #超声波控制舵机# BUG2018-04-07_第1张图片

搞了两天,分分钟的事情,结果BUG千奇百怪。

1,上传Nano失败:工具》开发板或者处理器,改变他们。或者    改变编程器。

2再试试上传时候按一下板子上的按钮。

3程序逻辑自己认为没问题的,在各个判断循环等处加上 Serial.println("helloword"); //测试用  

4超声波5V电压!!!!!!!Vcc没有特殊说明就是5V

5今天BUG已被浪翻,更多BUG,明天见!!!!

代码:

// Trig接Arduino板的Digital 5口,触发测距;Echo接Digital 4口,接收距离信号。#include //舵机头文件

Servo myservo;  // 设置舵机名

int inputPin = 4; // 定义超声波信号接收接口

int outputPin = 5; // 定义超声波信号发出接口

int pos = 0;    // varible to store the servo position

void setup()

{

  Serial.begin(9600);

  pinMode(inputPin, INPUT);

  pinMode(outputPin, OUTPUT);

  myservo.attach(9);  // 连接舵机到数字接口9

}

void loop()

{

  digitalWrite(outputPin, LOW); // 使发出发出超声波信号接口低电平2μs

  delayMicroseconds(2);

  digitalWrite(outputPin, HIGH); // 使发出发出超声波信号接口高电平10μs,这里是至少10μs

  delayMicroseconds(10);

  digitalWrite(outputPin, LOW); // 保持发出超声波信号接口低电平

  int distance = pulseIn(inputPin, HIGH); // 读出脉冲时间

  distance = distance / 58; // 将脉冲时间转化为距离(单位:厘米)

  Serial.println(distance); //输出距离值

  delay(2000);

  if (distance < 20)

  { //analogWrite(motor,0);

    myservo.write(90);              // tell servo to go to position in variable 'pos'

    Serial.println("helloword"); //测试用

    delay(1000);

    // tell servo to go to position in variable 'pos'

  }

  else {

    // goes from 180 degrees to 0 degrees

    myservo.write(0);              // tell servo to go to position in variable 'pos'

    // waits 15ms for the servo to reach the position

    Serial.println("zk"); //测试用

  }

}

你可能感兴趣的:(浪翻 #超声波控制舵机# BUG2018-04-07)