【问题标题】:How do I program digital pins on arduino uno?如何在 arduino uno 上编程数字引脚?
【发布时间】:2016-05-12 08:36:51
【问题描述】:

我正在尝试使用 arduino 制作微控制器。我从 arduino 提供 +5 伏,将其发送到 NC 按钮(这样我可以手动决定何时输出某个定时脉冲)。在按钮之后,它转到我设置为 inPin (pin8) 的引脚。然后我想让程序使引脚 7 为高电平(有延迟),然后它进入一个晶体管。

这是我尝试编写的代码(我对编码几乎一无所知):

int ledPin = 7;
int inPin = 8;
void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(inPin, INPUT);
}



void loop() 
{
if (inPin=HIGH) {
  digitalWrite(ledPin, HIGH);
}
    delay (500);
  digitalWrite(ledPin, LOW);
}

出于某种原因,outPin 一直为高电平。我记得在 GND 上连接了一个电阻,这样数字引脚在应该为低电平时会保持低电平。

提前致谢!

【问题讨论】:

  • 弗拉基米尔的回答是正确的。此外,我强烈建议您开始查看 arduino IDE 中的示例以了解其工作原理。并尝试至少找到一些基本教程...

标签: arduino microcontroller arduino-uno


【解决方案1】:

if(inPin=HIGH)是一个错误,首先使用"=="而不是"="。还需要读取输入引脚状态:int invalue = digitalRead(inPin);

另外,所有引脚默认配置为输入,所以你不需要使用pinMode(inPin, INPUT);

在这些更改之后,您的代码将如下所示:

int ledPin = 7;
int inPin = 8;
void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() 
{
  if (digitalRead(inPin)==HIGH) digitalWrite(ledPin, HIGH);
  delay (500);
  digitalWrite(ledPin, LOW);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多