Stap 5: Vereiste Code voor RPM
RPM berekening zou een eenvoudig concept, maar uitvoering zou uitdagingen. Aangezien een reflector worden op de generator gebruikt zou zou de sketch RPM digitale hoge signalen behandelen. In het prototype komt dit overeen met de kloof tussen de bladen van de ventilator. Als de ventilator draait blokkeert de bladen de IR-bron van de IR ontvanger. De digitale uitgang zal hoog-laag-hoog als het messen blok ga dan duidelijk de IR energie. De schets is een polling stijl code controleert voortdurend de digitale uitgang van de TCRT, bepalen of het gewijzigd en berekenen ontdendering (bleef hoog of laag lang genoeg geldig). Zodra het vereiste aantal hiaten of reflectoren had doorgegeven dan de tijd die is verstreken zou worden gebruikt voor het berekenen van RPM. De code is Gepost in tekstindeling en becommentarieerd. Met behulp van de Arduino te berekenen RPM zou worden eenvoudig in concept, een timer te starten, een vereiste aantal bladen of revoluties tellen, timer stoppen dan berekenen RPM. Het klinkt zo makkelijk, toch?
Als u wilt kalibreren van de code een vaste snelheid fan werd gebruikt. De ventilator werd 12 VDC gevoed uit een oude voeding van de computer, dus het zou worden dicht bij gewaardeerd RPM. Zodra de code is opgeruimd de Arduino was het lezen van juiste RPM. Het prototype gebruikt een verschillende fan die beter op de veranderingen van de spanning PWM voor RPM uitlezing gereageerd.
De ventilator heeft een maximale snelheid van ongeveer 2000 RPM op 12 volt. Het project moest regeren 3600 RPM. Aangezien de ventilator 7 messen alleen heeft wijzigen de software zodat het denkt er zijn 4 messen en heb je 3500 gedetecteerd, maar niet de werkelijke RPM. Dit is vergelijkbaar met het gebruik van een multiplier.
Alle vereiste lezing over hoe dit te doen kan worden gevonden in verschillende bronnen die werden gebruikt in dit project:
Frequentie Counter van de periode http://www.avdweb.nl/arduino/hardware-interfacing/frequency-period-counter.html
Frequentie maatregel bibliotheek https://www.pjrc.com/teensy/td_libs_FreqMeasure.html
Arduino Debounce Library http://playground.arduino.cc/Code/Debounce
Arduino Pulse In functie https://www.arduino.cc/en/Reference/PulseIn