我正在尝试使用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,这样数字引脚在低电平时会保持低电平。
提前致谢!
答案 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);
}