2016-05-12 123 views
1

我正试图用arduino制作一个微控制器。我从arduino中提供+ 5V电压,发送给NC按钮(这样我可以手动决定何时输出某个定时脉冲)。按钮后,它将转到我已设置为inPin(pin8)的引脚。然后,我希望程序使引脚7变为高电平(延迟),然后它进入晶体管。如何在Arduino uno上编程数字引脚?

这是我试图使代码(我几乎一无所知编码):

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

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

回答

1

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

此外,在默认情况下所有引脚coonfigured作为输入,所以你不需要使用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); 
}