Stap 4: Pwm signaal Rendering:
PWM (puls breedte modulatie) is een tecnique waaraan we gewoon een digitaal uitgangssignaal te controleren door het inschakelen en uitschakelen zeer snel, door het variëren van de breedte van de duur aan/uit, zal het effect van de uitgangsspanning varieert.
Vout Ton = /(Ton+Toff) * Vin
Periode (T) = Ton + Toff
Zo Vout = Ton / T * Vin
Waar Ton/(Ton+Toff) * 100 of Ton /T * 100 heet taakcyclus
Zie bovenstaande voorbeelden grafiek (ik heb overgenomen uit de Arduino website) voor een beter begrip.
PWM maakt het mogelijk een digitale uitgang bieden een scala aan verschillende machtsniveaus, vergelijkbaar met die van een analoge uitgang.
Het beste voorbeeld is een LED met verschillende lichtintensiteit vervagen. Dit kan gebeuren door arduino, met behulp van de functie analogWrite().
Als de analoge uitgang Pins is 8 bits kunnen we maximaal 2 ^ 8 = 256 of een bereik van waarden tussen 0 en 255.
Verzendt de waarde 255, de LED ingang produceert taakcyclus van 100%, wat resulteert in volle kracht op een PWM-pin.
Verzendt dat de minimumwaarde 0, aan de ingang van de LED produceert taakcyclus van 0%, wat resulteert in geen macht op een PWM-pin.
In de Arduino zijn er 6 PWM pinnen (3,5,6,9,10 en 11)
Ik gebruikte pin 6 (timer 0) om het PWM-signaal te genereren. Arduino Klok heeft maximale frequentie van 16MHz, dit met behulp van de prescaler kan worden verminderen. Hebben standaard pin van de Arduino PWM prescaler = 64.
Dus in pin -6, krijg ik een PWM van frequentie 976.5625 Hz standaard. Maar deze frequentie is vrij hoog voor het opladen van de batterij. Dus heb ik besloten om te verminderen deze frequentie naar een nog lagere één (61.035Hz) door te kiezen voor de prescaler waarde 1024.
Opmerking: Ik gebruikte deze frequentie omdat ik vond dat maximale PWM heffing controller beschikbaar in de markt hebben frequentie 25/50/100 Hz. Ik heb niet veel expertise op dit gebied. Als om het even wie goede expertise hebben in het opladen van de batterij, opmerkingen kunt u over de selectie van de juiste frequentie voor PWM. Zodat ik mijn code wijzigen zal.
Hoe het wijzigen van de Arduino PWM-frequncy:
U kunt de frequentie PWM aanpassen door de waarde van een register te wijzigen. Het register die zijn gekoppeld aan dit is TCCR0B.
Door het selecteren van drie klok Selecteer Bits van TCCR0B register kunnen wij de juiste prescaler configureren.
Bent u denken is het moeilijk? Geen van zijn zeer zeer eenvoudig net plaatst u de code van de enkele lijn balg in uw programma's ongeldig Setup deel gegeven. Alles wordt gedaan. Ik controleer dit door het testen van de fade-voorbeeldcode gegeven in de Arduino IDE, zal het genereren van 61Hz.
TCCR0B = TCCR0B & 0b11111000 | 0x05 ; prescaling van 1024
Voor meer informatie om te stellen de frequentie PWM Klik hier