/* FreqMeasureMulti - Example with serial output
* http://www.pjrc.com/teensy/td_libs_FreqMeasure.html
*
* This example code is in the public domain.
*/
#include <FreqMeasureMulti.h>
// Measure 3 frequencies at the same time! :-)
FreqMeasureMulti freq1;
FreqMeasureMulti freq2;
FreqMeasureMulti freq3;
FreqMeasureMulti freq4;
FreqMeasureMulti freq5;
FreqMeasureMulti freq6;
void setup() {
Serial.begin(57600);
while (!Serial) ; // wait for Arduino Serial Monitor
delay(10);
Serial.println("FreqMeasureMulti Begin");
delay(10);
freq1.begin(6);
freq2.begin(9);
freq3.begin(10);
freq4.begin(20);
freq5.begin(22);
freq6.begin(23);
}
float sum1=0, sum2=0, sum3=0, sum4=0, sum5=0, sum6=0;
int count1=0, count2=0, count3=0, count4=0, count5=0, count6=0;
elapsedMillis timeout;
void loop() {
if (freq1.available()) {
sum1 = sum1 + freq1.read();
count1 = count1 + 1;
}
if (freq2.available()) {
sum2 = sum2 + freq2.read();
count2 = count2 + 1;
}
if (freq3.available()) {
sum3 = sum3 + freq3.read();
count3 = count3 + 1;
}
if (freq4.available()) {
sum4 = sum4 + freq4.read();
count4 = count4 + 1;
}
if (freq5.available()) {
sum5 = sum5 + freq5.read();
count5 = count5 + 1;
}
if (freq6.available()) {
sum6 = sum6 + freq6.read();
count6 = count6 + 1;
}
// print results every half second
if (timeout > 500) {
if (count1 > 0) {
Serial.print(freq1.countToFrequency(sum1 / count1));
} else {
Serial.print("(no pulses)");
}
Serial.print(", ");
if (count2 > 0) {
Serial.print(freq2.countToFrequency(sum2 / count2));
} else {
Serial.print("(no pulses)");
}
Serial.print(", ");
if (count3 > 0) {
Serial.print(freq3.countToFrequency(sum3 / count3));
} else {
Serial.print("(no pulses)");
}
Serial.print(", ");
if (count4 > 0) {
Serial.print(freq4.countToFrequency(sum4 / count4));
} else {
Serial.print("(no pulses)");
}
Serial.print(", ");
if (count5 > 0) {
Serial.print(freq5.countToFrequency(sum5 / count5));
} else {
Serial.print("(no pulses)");
}
Serial.print(", ");
if (count6 > 0) {
Serial.print(freq6.countToFrequency(sum6 / count6));
} else {
Serial.print("(no pulses)");
}
Serial.println();
sum1 = 0;
sum2 = 0;
sum3 = 0;
sum4 = 0;
sum5 = 0;
sum6 = 0;
count1 = 0;
count2 = 0;
count3 = 0;
count4 = 0;
count5 = 0;
count6 = 0;
timeout = 0;
}
}