// toerental.ino - toerental van de windturbine uit de frequentie van haar generator // Een optocoupler zet de lijnspanning U-V om in een blokgolf op pin 2 (hoog tijdens de positieve halve periode). const int PIN_GEN = 2; const int POOLPAREN = 8; // 16 magneetpolen: f = POOLPAREN * n / 60 const unsigned long TIMEOUT = 250000UL; // 0,25 s per halve periode: onder 2 Hz (15 tpm) geen meting void setup() { Serial.begin(115200); pinMode(PIN_GEN, INPUT); } void loop() { unsigned long hoog = pulseIn(PIN_GEN, HIGH, TIMEOUT); // duur van de hoge helft (µs) unsigned long laag = pulseIn(PIN_GEN, LOW, TIMEOUT); // duur van de lage helft (µs) float tpm = 0; if (hoog > 0 && laag > 0) { float f = 1e6 / (float)(hoog + laag); // frequentie in Hz tpm = 60.0 * f / POOLPAREN; } Serial.print("tpm "); Serial.print(tpm, 1); if (tpm > 55 && tpm < 70) Serial.print(" let op: 1P op de eerste mode van de mast"); if (tpm > 155 && tpm < 171) Serial.print(" let op: 3P op de tweede mode, snel doorlopen"); if (tpm > 330) Serial.print(" OVERTOEREN: dumpbelasting aan"); Serial.println(); delay(1000); }