Billigt och enkelt varvräknare (RPM Sensor) för borstad DC motorer (6 / 6 steg)
Steg 6: Ytterligare tankar...
Denna sensor ger bara två mätbara händelser per varv, så om du har en låg utväxling inte kan detta vara en idealisk sensor för dig. I mitt fall är drill växellådan en ganska hög minskning så en låg upplösning på motoraxeln fortfarande ger en rättvis lösning på produktionen. Du kan överväga att lägga en extra hall sensor offset 90 grader. Jag har inte testat detta ännu, men jag antar att det skulle ge dig en kvadratur utgång som du skulle kunna få ytterligare upplösning samt att kunna läsa kilremsskyddet. Det betyder mer bearbetning på din microcontroller men kunde ge bättre resultat.Som för koden finns det många sätt att göra en varvtal återkoppling. Den jag testa är en enkel fel korrigering loop som avgör skillnaden mellan faktisk hastighet (mätt i Hz) och önskad hastighet. Felet är multiplicerad med en skalär (0,05, valt för en långsammare, mindre aggressiva svar) och lagt till ett floating-point hastighet värde som sedan omvandlas till en uint8 typ och ställa in i OCR0A/OCR0B på AVR: s timer för att justera PWM utgången. Detta fungerar som förväntat. Ta tag i motoraxeln och grepp tätt kunna tillämpa en belastning och hastighet minskar, men kommer snabbt ramp upp makt att rätta till det. Låt gå och det kommer kort snurra över hastighet eftersom det minskar makt tills hastigheten lägger sig tillbaka på önskad nivå. Koppla från sensorn och felet ackumuleras kontinuerligt, upprampning makt till den gräns där det kommer att stanna tills en Hastighetssignal återkopplat. Jag använder timer/counter 1 i input-capture-läge för att mäta motoriska hastigheten med snabb uppdatering priser. Detta är bättre än räknar pulser per sekund eftersom det ger dig mycket finare upplösning och mycket snabbare uppdateringar. Experimentera med olika matematiska filter om du vill att ett medelvärde på RPM tagit över en viss tid.