问题描述
这里是链接,以便您可以编辑代码/ arduino并在此处尝试:https://www.tinkercad.com/things/kKwzIR4EKkq-project-test/editel?sharecode=_1bgBJa_dekYA2zOBAmrX-fSEpjp10qO9cC2JzeooZg
基本上,我希望人们将时间输入到串行监视器中,并将其分配给“长间隔”变量。我该怎么做呢? Arduino图片:Digital Hourglass
Arduino代码: (我尝试做,但是它似乎无法工作,它总是会打开所有的灯,当我按下按钮时,灯会在间隔为0时依次点亮1,所以我认为它还没有分配。 ?)
const int switchPin = 8;
unsigned long previousTime = 0;
int switchState = 0;
int prevSwitchState = 0;
int led = 2;
long interval =0;
void setup() {
Serial.begin(9600);
delay(2000);
Serial.println("Input time for alarm in seconds");
for(int x = 2;x<8;x++){
pinMode(x,OUTPUT);
}
pinMode(switchPin,INPUT);
}
void loop(){
if(Serial.available()){
int val = Serial.parseInt(); //read int or parseFloat for ..float...
Serial.println(val);
long interval =val;
}
unsigned long currentTime = millis();
if(currentTime - previousTime > interval) {
previousTime = currentTime;
digitalWrite(led,HIGH);
led++;
if(led == 7){
}
}
switchState = digitalRead(switchPin);
if(switchState != prevSwitchState){
for(int x = 2;x<8;x++){
digitalWrite(x,LOW);
}
led = 2;
previousTime = currentTime;
}
prevSwitchState = switchState;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)