串行打印变量在特定的时间间隔打印数组的大小,即使数组没有被使用
Serial Printing Variables at a Specific Time Intervals Prints Size of Array Even If Array Is Not Used
我使用Arduino Uno和CD通过在CD的顶部和底部附加传感器来模拟装配线,这些传感器被读取到Arduino模拟端口并在每次样本通过时计数。它使用模拟输入来记录信号的高电平,并在信号变低时进行计数,就像计算数字信号的后沿一样。我想每小时显示一次结果,然后重置计数器,同时将旧值存储在数组中。这些值相当大,所以我将数组和数字声明为unsigned long。我对代码进行了故障排除,除了以特定的时间间隔显示结果和存储数组的适当值之外,一切都正常工作。下面是我为测试程序的这一特定部分而编写的代码:
unsigned long spins[200];
unsigned long positives[200];
unsigned long counter=0;
unsigned long greenCounter=0;
int numberofhours=0;
int timer=0;
int hour=3000;
void setup() {
Serial.begin(115200);
}
void loop() {
timer==millis();
if (timer%hour==0){ //if the timer reaches 1 hour, it will print the results, store old and clear values for positive tests and CD spins, and print old values
numberofhours++;
spins[numberofhours]=counter;
positives[numberofhours]=greenCounter;
Serial.print("n Number of Hours");
Serial.print(" ");
Serial.print(numberofhours);
/* for(int i=0; i<numberofhours; i++){
Serial.print("n Number of Spins, Hour");
Serial.print(" ");
Serial.print(i);
Serial.print(";");
Serial.print(spins[i]);
Serial.print("n Number of Postives, Hour");
Serial.print(" ");
Serial.print(i);
Serial.print(";");
Serial.print(positives[i]);
} */
}
counter=0;
greenCounter=0;
}
将for循环注释掉后,我从序列中得到了这些结果。每3000毫秒打印一次监视器:
小时数小时数2学时数3…以此类推,直到:小时数198数量o
注意:第199条实际上是这样打印的。
激活for循环后,串行监视器上的结果如下:
小时数旋转次数,小时0阳性数,小时0小时数2旋转次数,小时0阳性数,小时0旋转次数,第1小时阳性数,第1小时学时数3旋转次数,小时0阳性数,小时0旋转次数,第1小时阳性数,第1小时旋转次数,第2小时阳性数,第2小时小时数4
除了一直持续到第200小时,这比300毫秒要长得多。然后暂停,然后重新开始。如何修复小时数计数问题,以便我可以将计数器和greenCounter的所有结果存储在与小时数变量对应的数组中的适当位置?
您正在不断地重置您的计数器。将reset移到if语句中
你的代码中似乎缺少了一些东西。你在哪里修改counter和greenCounter?此外,小时数将增加到超过199,并且您将索引超出数组的范围。您可能还想添加Serial.println()以使您的输出更易于阅读。
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 在一定长度后从数组中打印时缺少整数
- 数组元素打印的递归方法
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 打印矢量数组中的所有元素
- 打印问题.我在数组中打印值时遇到一些问题
- 数组类 阵列的打印输出
- 动态分配的聊天数组打印缺失的数据和空
- 如何打印 2D 字符数组C++
- 如何修改代码以打印出数组 v2
- 在C++中初始化和打印 2D 数组
- 将浮点数转换为无符号字符数组并打印出来
- C++ 打印包含数据结构的数组
- 如何让字符数组在一行而不是多行中打印出来?
- 打印字符数组地址的正确方法
- 按字母顺序打印存储在字符数组中的信息
- 使用递归反转和打印出数组的内容
- 如何将文本文件读取到二维数组中并以 c++ 打印
- 如何在运行时在对象数组中动态追加新对象C++并打印它们
- 加载有空指针的字符数组的打印值