首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino数字阅读器无法按预期工作

Arduino数字阅读器无法按预期工作
EN

Stack Overflow用户
提问于 2017-09-18 21:19:42
回答 2查看 2.9K关注 0票数 0

我一直使用我的Arduino来控制电机极性与赛创MD-10电机驱动器屏蔽,我有它的工作。

然后,当我回来工作时,似乎数字阅读引脚没有区分高电压和低电压,其中一盏灯持续通电。

当测量到4.84伏的连续电源时,输出功能正常,然后开关闭合,电压降至0,应进入相应的回路。我的冲浪板烧焦了吗?

有什么我应该试试的吗?

代码语言:javascript
复制
const int outSwitch = 13;
const int inSwitch = 12;
const int pinPWM = 3;
const int pinDir = 2;

int lightOne = 11;
int lightTwo = 10;

static int Dir = 1;
static int cycleCounter = 0;

void setup() {
    // Set Pin Out/Inputs:
    pinMode(pinPWM, OUTPUT);
    pinMode(pinDir, OUTPUT);
    pinMode(outSwitch, INPUT);
    pinMode(inSwitch, INPUT);
    pinMode(lightOne, OUTPUT);
    pinMode(lightTwo, OUTPUT);
    analogWrite(pinPWM, LOW);
}

void loop() {

    // Both read a low input value from the switch and then makes
    // direction the opposite causing it to travel backwards:
    if(digitalRead(inSwitch == LOW)){
        analogWrite(pinPWM, HIGH);

        digitalWrite(pinDir, Dir);
        digitalWrite(lightOne, LOW);
        digitalWrite(lightTwo, HIGH);
    }

    else if(digitalRead(outSwitch == LOW)){
        analogWrite(pinPWM, HIGH);

        digitalWrite(pinDir, -Dir);
        digitalWrite(lightOne, LOW);
        digitalWrite(lightTwo, HIGH);
    }
}
EN

回答 2

Stack Overflow用户

发布于 2017-09-19 02:44:16

Sma正确地将问题识别为括号的位置错误:

代码语言:javascript
复制
if (digitalRead(inSwitch == LOW))  // OOPS!

它将inSwitchLOW进行比较,后者可能返回false。由于digitalRead需要一个整数,因此将false转换为0。所以你要读取引脚0。我不认为有引脚0,所以你可能会得到一个错误。然后将该返回值隐式地与0进行比较,以确定采用if语句的哪个分支。

正确的语句应如下所示:

代码语言:javascript
复制
if (digitalRead(inSwitch) == LOW)

(社区维基,因为我只是想提供一个更详细的答案。我并不是想为别人的观察争取代表。)

票数 0
EN

Stack Overflow用户

发布于 2017-09-20 02:50:10

analogWrite(pinPWM,HIGH);到底是什么意思?缺少值(0-255),高不是有效值。

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

https://stackoverflow.com/questions/46280363

复制
相关文章

相似问题

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