如何在arduino uno上编程数字引脚?

时间:2016-05-12 08:36:51

标签: arduino microcontroller arduino-uno

我正在尝试使用arduino制作一个微控制器。我从arduino提供+ 5V电压,将其发送到NC按钮(因此我可以手动决定何时输出特定的定时脉冲)。按钮后,它转到我设置为inPin的引脚(引脚8)。然后我希望程序将引脚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始终为HIGH。我记得把一个电阻连接到GND,这样数字引脚在低电平时会保持低电平。

提前致谢!

1 个答案:

答案 0 :(得分: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);
}