Generator regulator (5 / 10 steg)
Steg 5: Krävs kod för RPM
RPM beräkning skulle vara ett enkelt koncept men skulle utgöra viktiga genomförandeproblem. Eftersom en reflektor skulle användas på generatorn skulle RPM skissen behandla digitala hög signaler. I prototypen skulle detta motsvara klyftorna mellan fläktblad. Fläkten snurrar bladen blockerar IR källan från IR-mottagaren. Den digitala utgången kommer att gå hög-låg-hög som blad blocket sedan rensa den IR energin. Skissen är en polling stil kod som ständigt kontrollerar TCRT digital utgång, avgöra om det ändrade och beräkna debounce (stannade hög eller låg tillräckligt länge för att betraktas som giltigt). När tillräckligt många luckor eller reflektorer hade gått sedan tid som förflutit skulle användas för att beräkna RPM. Koden är postat i textformat och kommenterade. Använda Arduino för att beräkna RPM skulle bli lätt i konceptet, starta en timer, räkna ett erforderligt antal knivar eller rotationer, stopp tidtagare sedan beräkna RPM. Det låter så lätt, rätt?
För att kalibrera koden fast hastighet fläkt användes. Fläkten var matas 12 VDC från en gammal dator nätaggregat så det skulle vara nära fått RPM. När koden var rensade upp läste Arduino rätt RPM. Prototypen används en annan fläkt som svarade bättre på spänningsändringar PWM RPM kontroll.
Fläkten hade en maximal hastighet på cirka 2000 RPM vid 12 volt. Projektet för att styra 3600 RPM. Eftersom fläkten har 7 blad bara ändra programvaran så den tror att det finns 4 blad och du har 3500 upptäckt men inte faktiska RPM. Detta liknar använda en multiplikator.
Vissa obligatoriska läsning om hur du gör detta finns i flera källor som använts i detta projekt:
Frekvens Period Counter http://www.avdweb.nl/arduino/hardware-interfacing/frequency-period-counter.html
Frekvens mäter bibliotek https://www.pjrc.com/teensy/td_libs_FreqMeasure.html
Arduino Dämpningstid bibliotek http://playground.arduino.cc/Code/Debounce
Arduino puls i funktionen https://www.arduino.cc/en/Reference/PulseIn