【问题标题】:Using Arduino Serial to turn on LED. What is my error?使用 Arduino 串口打开 LED。我的错误是什么?
【发布时间】:2015-11-23 14:30:07
【问题描述】:
void setup(){
    Serial.begin(9600);
    pinMode(13, OUTPUT);
}

void loop() {
    if (Serial.available() > 0){
       int inChar = Serial.read();
       if (inChar == 'H'){
           digitalWrite(13, HIGH);
       }
       if (inChar == 'L'){
        digitalWrite(13, LOW); 
       }
    }
}

我见过非常相似的程序。我没有收到任何编译错误,但 LED 灯不会亮起。我的代码有错误吗?谢谢

【问题讨论】:

    标签: arduino led


    【解决方案1】:

    听起来像是硬件问题。首先仔细检查。

    【讨论】:

    • 我可以运行其他简单的程序(如闪烁程序)。我添加了 Serial.println(inChar);当我输入串行监视器时,我希望看到它打印出来,但我什么也没看到。所以可能串行监视器的设置方式存在问题。
    • 已解决。我没有意识到我必须按下串行监视器上的“发送”按钮。感谢您的意见。
    【解决方案2】:

    使用数字万用表 (DMM) 读取引脚 13 和 Arduino 接地之间的电压。当您发送“H”时,它应该输出 5V。如果是这样,那么你的问题是LED。如果在您发送“H”时它没有输出 5V,那么您有软件或串行通信问题。

    在与 Arduino 通信的任何程序中,仔细检查您的波特率和 COM 端口设置是否正确。

    【讨论】:

    • 如果我点击工具,它会显示 COM3,这也是串行监视器上显示的内容。我如何检查 9600 是否不是正确的波特率?串行监视器显示 9600 波特。
    • 只要 COM3 是“工具”->“串行端口”菜单列表中的唯一选项,那么听起来您的串行监视器设置正确。您发送的是大写“H”(不是小写)吗?
    • 我刚刚在我的 Arduino Mega 上尝试了这个确切的代码,它工作得很好。
    • 已解决。我没有意识到我必须按下串行监视器上的“发送”按钮。感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    相关资源
    最近更新 更多