ARDUINO sol LADDNINGSREGULATORN (Version-1) (4 / 11 steg)
Steg 4: Pwm-signal generation:
PWM (pulse bredd modulering) är en teknik som vi helt enkelt kontrollera en digital utsignal genom att slå och av mycket snabbt, genom att variera bredden på på/av varaktighet, det kommer att ge effekten av varierande utspänningen.
Vout = Ton /(Ton+Toff) * Vin
Tidsperiod (T) = Ton + fičuru
Så Vout = Ton / T * Vin
Där Ton/(Ton+Toff) * 100 eller Ton /T * 100 kallas Duty Cycle
Se figuren ovan exempel (jag har tagit från Arduino webbplats) för bättre förståelse.
PWM kan en digital utgång för att tillhandahålla en mängd olika effektnivåer, liknar en analog utgång.
Det bästa exemplet är bleknar en LED med olika ljusintensitet. Detta kan göras genom arduino, använda funktionen analogWrite().
Som Analog utgång stift är 8 bitar vi kan få maximalt 2 ^ 8 = 256 eller ett intervall av värden mellan 0 och 255.
Skicka värdet 255, till LED ingång producerar 100% intermittens, vilket resulterar i full effekt på en PWM stift.
Skicka det lägsta värdet 0, LED ingång ger 0% intermittens, vilket resulterar i ingen makt på ett PWM stift.
I Arduino finns 6 PWM stift (3,5,6,9,10 och 11)
Jag använde stift 6 (timer 0) för att generera PWM signalen. Arduino klocka har maximal frekvens på 16MHz, detta kan minska med hjälp av prescaler. Som standard Arduino PWM stift har prescaler = 64.
Så i pin -6, kommer jag få en PWM av frekvens 976.5625 Hz som standard. Men denna frekvens är ganska hög för batteriladdning. Så jag bestämde mig att minska denna frekvens till en lägre en (61.035Hz) genom att välja prescaler värdet 1024.
Obs: Jag använde denna frekvens eftersom jag fann den maximala PWM laddningsregulatorn tillgängliga på marknaden har frekvens 25/50/100 Hz. Jag har inte mycket kunskap på detta område. Eventuell en har god kompetens inom batteriladdning, kommentarer snälla om rätt frekvens valet för PWM. Så att jag kommer att ändra min kod.
Hur man ändrar den Arduino PWM frequncy:
Du kan justera PWM frekvensen genom att ändra ett register värde. Registret är associerade med detta är TCCR0B.
Genom att välja tre klockan Välj bitar av TCCR0B register kan vi sätta rätt prescaler.
Tänker du det är svårt? Ingen dess mycket mycket enkel bara placera enda rad koden nedan i ditt program void setup() del. Allt är gjort. Jag kontrollera detta genom att testa exempelkoden fade i Arduino IDE, det kommer att generera 61Hz.
TCCR0B = TCCR0B & 0b11111000 | 0x05 ; prescaling 1024
För mer specificerar för att ställa in PWM frekvens klicka här