我正在使用Arduino Mega 2560通过HX711桥接器读取8个称重传感器 . 在故障排除期间,我意识到Arduino需要很长时间才能启动 . 我试着给调试一些消息,比如:
void setup() {
// initialize communication
Serial.begin(115200);
Serial.println("Comm Started");
// initialize Pins
pinMode(30, INPUT); // Pin 30: Strain Gauge 1, DATA channel
pinMode(31, INPUT); // Pin 31: Strain Gauge 2, DATA channel
/* some other codes*/
Serial.println("Pin Mode Set");
/* some other codes*/
Serial.println("Starting init gauges");
}
草图成功加载后,我打开串行监视器,然后我需要等待100~120秒才能显示“Comm Started”,然后是其他两条消息 . 其余代码在此之后运行正常 .
我不确定它是否正确但我认为 setup()
是Arduino在加载草图后开始时应该做的第一件事 . 因为 setup()
中的第一件事是打开通讯并打印信息,所以不应该有任何延迟,对吧?
引入这个2分钟延迟的问题可能是什么?它是硬件问题(例如我连接到HX711的电线还是影响性能的电源/接地)或某些软件错误也可能导致这种情况?
非常感谢你 .
补充信息:
我把在每个循环中打印 millis()
的代码和 loop()
中的100ms延迟,我得到的是这样的:
因此,在2分钟的空白后,它会启动所有内容(包括内部时钟) .
1 回答
您需要了解它的来源,因此最简单的方法是从最简单的设置开始 .
上传以下程序:
然后断开Arduino USB或任何可能使用串行端口的外部设备 .
给你的Arduino供电(不是USB,而是用电源连接器,所以你要确保没有连接任何东西到串口),它会初始化端口,当它完成时会点亮引脚13中的LED作为指示灯
在你给arduino供电后,LED应该几乎立即打开,如果没有,你的电路板有问题,试试另一个 .
否则开始添加代码,直到看到延迟出现并尝试找出导致它的原因 .