Programozott PWM (PWM)

PWM - impulzus szélesség moduláció
PWM - impulzus szélesség moduláció (vagyis ugyanaz, mint a PWM)

Mi PWM és miért van rá szükség?

Miért van szükség egy szoftver PWM?

Akkor, mi AVR (ATMEGA) 1-2 PWM csatornák, amelyek gyakran hiányoznak, ami szükséges.

Tegyük fel, hogy három (3) LED és a fényerőt mindegyikük azt akarjuk, hogy egyedileg szabályozható. Beépített PWM időzítő csatornák nem elég. És általában is van néhány különleges ellenőrzési akarjuk folytatni mindet. Ezért ültetés őket a megszokott láb (láb példa PORTC 3,4,5) és vezérlő szoftver.

Ellenállás számítás LED:

Tápegység: 5V. A feszültségesés a LED tekinthető 1,5V. Jelenleg a LED nem lehet több, mint 20 mA (egyesek szerint meg kell 15mA, de szeretem a világosabb).
Szerint Ohm-törvény: I = U / R, R = U / I = (5-1,5) /0.02=175 ohm. Tettem a ellenállások R1, R2 és R2 - 220 ohm.

A legegyszerűbb lehetőség - egy örökös ciklust. Opció megszakítás lesz később (lásd alább), most tekintsünk egy egyszerű példát, hogy megértsék a lényegét.

Először is meg kell határozni a két dolgot: milyen gyakran villog LED, nem lehetett látni villog, és a második, hány szintjét a fényerő LED.

A fényerő let 256. 0 - teljesen ki, 255 - teljes mértékben engedélyezve (azaz, PWM csatorna egy logikai egy minden alkalommal, azaz munkaciklus = 100%.

Azonban most sütöm összezavarni téged.

A lényeg az, hogy mi PLUS-dióda tyknut élelmiszerrel való közvetlen és mínusz megy ellenálláson keresztül a láb (ahol az ellenállás - nem fontos, fontos, hogy a láb MK). Ezért a LED világít, ha a lábát az MK alacsony szinten, azaz, nulla, azaz a MK prokinut belső láb GND, azaz a földön. Ez azt jelenti, hogy ténylegesen 0 és 1 a PWM meg kell fordítani. Ie minél hosszabb a jel lesz 0 képest 1, annál világosabb a LED.

És így, a fényerő 256.

Milyen villogó kérdés? A lényeg az, hogy ha kell alkalmazni a PWM jelet a sok-sok diódák és csináld következetesen minden, miután a kimeneti jel az első dióda van szükség, hogy visszatérjen a jelet arra a következtetésre is egy ilyen alkalommal, hogy:

  1. idő alkotnak egy teljes PWM jel,
  2. kevesebb, mint egy 1/25 másodperc, különben nem lesz észrevehető villogó LED,
  3. közötti szegmensek a PWM jel nem volt észrevehető szünetek PWM generációs, azaz úgy, hogy a PWM jel nem torzította.

Íme egy példa a PWM jel torzítás:

Majd minden szem előtt kell tartani, de valójában itt vagyunk, hogy nem számít, mert lesz egy nagyon egyszerű sima exhibicionista és ez csak akkor változik a fényerő, azaz, lesz sok idő, és a feladat az, annyira egyszerű, hogy nem eszik le időről létrehoz egy PWM jelet.

És igen, itt a forráskódot (AVR studio, azaz gcc):

Hogyan működik a program

Van egy számláló szegmensek - scancount. A maximális értéke a számláló - a szám a fényerő mínusz 1. Minden fordulat ciklusban eggyel növekszik, majd áthalad és 255 ismét 0 lesz Minden vetésforgót alapjel történik az egyes LED. Ha a számláló kisebb vagy egyenlő, mint a fényerő, kikapcsolja a dióda. Ha a számláló kisebb, mint a fényesség meghatározott szintet dióda - amely tartalmazza ezt a diódát. És minden ciklusban. Például, ha a fényerő szint 0, a számláló mindig egyenlő vagy nagyobb, mint nulla és a dióda mindig kikapcsol. Ha a fényerő szintjének 255, a számláló kevesebb lesz, mint ez az érték 254-255 fordulatszámmérő és éget szinte teljes erejét. Ha a fényerő beállítása 50, az első cirkulációs hurok 50 dióda be van kapcsolva, és a fennmaradó 206 rpm - off, azaz a akkor be kell nyújtani a jelenlegi 50/256 a maximum.

Az alábbi program vezérli a fényerőt a dióda, hogy valamiféle demonstráció. Minden alkalommal, amikor a számláló túlcsordul, hogy a fényerő az összes diódák adunk hozzá az 1., de ha a fényerő válik több, mint 128, akkor visszaáll 0. Általában, ha nem volt ezt a csekket, majd miután elérte a 255 a világosság szint maga kisüti nullára, de a tapasztalat azt mutatja, hogy miután a fényerőssége 128 növekszik olyan gyorsan, akkor feltételezhetjük, hogy az értéke 128 szinte maximum. És, hogy a kapott hatás sokkal dinamikusabb és ezt a tesztet vezették be.

Mi is tisztában kell lenniük, hogy a függőség a fényerő az áramot a LED nem lineáris. Ie 128 nem kétszeresére halványabb, mint 255, és nem 2-szer több, fényesen, mint 64.

Mennyi van forgatva az egész ciklus minden diódák, mi érdektelenek, hiszen egyértelmű, hogy a span 1MHz (ami a nekem működik MC), akkor elég gyors, hogy a szem nem látott szcintillációs.

építeni fotó:

Programozott PWM (PWM)

Kattints a képre a nagyításhoz

Domain Ár: 1.500.000 rubelt.

Kapcsolódó cikkek