【问题标题】:I'm missing "stuff" in my code and I don't get it我的代码中缺少“东西”,但我不明白
【发布时间】:2020-03-23 20:54:23
【问题描述】:

我是编码新手,在过去的几天里,我一直在尝试通过在连接到 HC 05 蓝牙模块的手机上的应用程序上键入 1 来使伺服旋转 180 度。当我输入 1 时,伺服旋转 180 度,当我输入 0 时,伺服旋转 180 度,反之亦然。到目前为止,这就是我通过组合不同代码的位所做的。你能帮忙解决什么问题吗? (我真的不明白)这是代码:

 #include <Servo.h>
 char data = 0; 
 int pos = 0;      
 Servo servo;

 void setup() 
 {
 servo.attach(9);
 }

 void loop(){
 data = Serial.read();      
 Serial.print(data);     
 Serial.print("\n");         
 if(data == '1')            
 digitalWrite(pos = 0; pos <= 180; pos += 1) {
 servo.write(pos);              
 delay(15); 

else if(data == '0')
digitalWrite(pos = 180; pos >= 0; pos -= 1) { 
servo.write(pos);              
delay(15);
}
}

感谢您的宝贵时间!

PS:拼写错误请见谅

【问题讨论】:

  • 投票结束。如果你需要帮助,你应该告诉我们出了什么问题。这看起来与您之前发布的代码相同。

标签: arduino bluetooth arduino-ide hc-05


【解决方案1】:

你可能想要这样的东西:

#include <Servo.h>

int data = 0;
int pos = 0;

int degrees = 30;
//int degrees = 180;

Servo servo;

void setup()
{
    Serial.begin(9600);
    servo.attach(9);
}

void loop(){

    if (Serial.available() > 0) {

        data = Serial.read();
        Serial.println(data);

        if(data == '1') {
            for (pos = 0; pos <= degrees; pos++) {
                servo.write(pos);
                delay(15);
            }
        }
        else if(data == '0') {
            for (pos = degrees; pos >= 0; pos--) {
                servo.write(pos);
                delay(15);
            }
        }
    }
}

先尝试 30 度,因为并非所有舵机都支持 180 度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 2016-08-17
    • 2014-12-14
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多