我成功使用了这个优秀的Arduino频率库:Arduino frequency counter。
但我的LED存在一个问题。如果我给它们值“HIGH”或“255”,它们正在工作。但是,他们没有使用较低的价值。我在另一个草图中测试了LED。所以他们正确连接并且工作正常,也是Arduino。这似乎是“FreqCounter :: start(100);”的一个问题。线。如果我删除它,较低的值是有效的,但当然频率计数器不是......
如何解决此问题?
以下是代码:
#include <FreqCounter.h>
unsigned long frq;
/*** OUTPUT LED ***/
int ledGreen = 9;
int ledYellow = 10;
int ledRed = 11;
void setup() {
pinMode(ledGreen, OUTPUT);
pinMode(ledYellow, OUTPUT);
pinMode(ledRed, OUTPUT);
Serial.begin(115200);
Serial.println("Frequency Counter");
}
void loop() {
/*** WRITE ***/
analogWrite(ledGreen, 255);
analogWrite(ledYellow, 100);
analogWrite(ledRed, 10);
/*** FREQUENCY COUNTER ***/
FreqCounter::f_comp = 10; // Calibration value / calibrate with a professional frequency counter
FreqCounter::start(100); // 100 ms gate time
while (FreqCounter::f_ready == 0){
frq = FreqCounter::f_freq;
}
}
答案 0 :(得分:0)
根据文档,该库重新调整TIMER1以计算频率。但是针脚9和10的PWM要求TIMER1具有默认设置。