而 Arduino 中的循环拒绝工作(简单程序)



我正在编写一个基本程序,该程序需要20毫米并控制主板中小灯的打开和关闭。但它总是向我显示错误请别人帮我解决吗?

void setup() {
  pinMode(13, OUTPUT);
}

int cycle = 1; 
int time_t=20;
int time_on = 0;
int time_off= (time_t-time_on);
int big=0.05;
while (cycle<=100) {
  if (cycle%10==0) {
    time_on=time_t*big;
    time_off= time_t-time_on;
    big=big+0.05;
  }
  digitalWrite(13, HIGH);   
  delay(time_on);              
  digitalWrite(13, LOW);   
  delay(time_off));    
 cycle++;  
}

arduino程序语法指定程序由两个函数setup()loop()组成。因此,要反复重复的部分必须写入循环函数中。所以你的代码将进入一个名为 loop 的 void 函数。它变成了:

void loop(){
  while (cycle<=100) {
    if (cycle%10==0) {
      time_on=time_t*big;
      time_off= time_t-time_on;
      big=big+0.05;
    }
  digitalWrite(13, HIGH);   
  delay(time_on);              
  digitalWrite(13, LOW);   
  delay(time_off));    
  cycle++;  
}

Arduino 参考 :http://arduino.cc/en/Reference/Loop

我还没有使用这种语言,但我看到"int big=0.05;"的问题 您正在尝试将浮点值分配给整数。它应该是双精度、浮点数还是类似的数据类型? 然后在 while 循环中你有

time_on=time_t * big;

您再次尝试将整数与浮点值相乘,然后将其赋回整数。 结果是 time_on 的值将是 time_t 倍大的一些舍入版本。 time_on的值只会随着 big 的值接近或等于 1 而 Big 的值才会发生变化。 而 big 的值将始终等于 0。 您需要更改大变量和time_on变量浮点数据类型。

最新更新