首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >伺服电机问题

伺服电机问题
EN

Stack Overflow用户
提问于 2018-10-15 23:44:57
回答 2查看 48关注 0票数 1

我在我的项目中有一个问题。如果有可用的停车场,我想让伺服器旋转90度。我用了两个传感器,一个是用来检测汽车进入的,另一个是用来判断汽车是否离开的。

这是我的代码:

代码语言:javascript
复制
for(int i=0;i<11;i++)
{
    if (parks[i]!='0' && parks[i]!=' ')// if there is available park
    {
        aPark=1;
    }
    else
    {
        aPark=0;
    }
}
if(analogRead(A0)>200 && aPark==1) // if there is available park and car want to enter
{
    myservo.write(90);
    delay1=millis()+5000;
}

if(analogRead(A1)>200) // for leaving cars.
{
    myservo.write(90);
    delay1=millis()+5000;
}
if(delay1<millis())
{
    myservo.write(0);
}

当我连接所有东西并上传代码时,伺服器没有旋转。我的代码有问题吗?或者是因为没有检测到传感器?

EN

回答 2

Stack Overflow用户

发布于 2018-10-17 14:57:29

我会验证伺服上的连接,即使arduino没有向伺服发送任何命令,当它第一次通电时,你应该会听到嗡嗡声或一些电子噪音,接下来我会尝试添加serial.println语句,以了解您的代码是否正确运行,如果传感器连接良好,不要忘记Serial.begin(115200);在设置代码中,例如;

代码语言:javascript
复制
for(int i=0;i<11;i++) {
if (parks[i]!='0' && parks[i]!=' ')// if there is available park
{
    aPark=1;
    Serial.println("aPark=1");
}
else
{
    aPark=0;
    Serial.println("aPark=0");
} }  
 if(analogRead(A0)>200 && aPark==1) // if there is available park and car want to 
enter
{
myservo.write(90);
delay1=millis()+5000;
Serial.println("1.servo 90 delay mil+5000");
}

  if(analogRead(A1)>200) // for leaving cars.
{
myservo.write(90);
delay1=millis()+5000;
Serial.println("2.servo 90 delay mil+5000");
}
   if(delay1<millis())
 {
myservo.write(0);
Serial.println("servo 0");
}
票数 0
EN

Stack Overflow用户

发布于 2018-10-16 00:06:48

你包含伺服库了吗?#include <Servo.h>应该在你代码的顶端。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52820344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档