我正在编写一个基本程序,该程序需要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变量浮点数据类型。