|
刚开始自学arduino,学到红外感应加继电器来实现亮灯的内容,发现买的入门套件当中没有继电器,于是就自己改了下连线方式,直接用led灯高低电平来亮灭灯。程序如下:
int PIRpin=2;
int LEDpin=13;
void setup() {
Serial.begin(9600);
pinMode(PIRpin,INPUT);
pinMode(LEDpin,OUTPUT);
}
void loop() {
while(!digitalRead(PIRpin)){}
Serial.println("turn on");
digitalWrite(LEDpin,HIGH);
delay(10000);
digitalWrite(LEDpin,LOW);
Serial.println("turn off");
}
这也是我第一次模仿着来写程序。运行过后,我以为失败了,因为灯亮起以后一直不灭。后来发现灯不是不灭,要等好久好久才会灭。起初我在想难道波特率不对导致了delay(10000)等待的时间远远超过10秒?可是书上用的波特率就是9600啊。后来打开监测器来看,数了数发现我竟然出现了10个turn on-turn off的过程,过了100秒,灯才会再次灭掉。求助大神们,帮我解解惑,我到底问题出在哪里了?
|
|