$begingroup$ Proč chcete PWM? PWM je často jen způsob, jak se mikropočítač přiblíží analogové řídicí funkci. Pokud to, co opravdu chcete, je analogové napětí nebo proud, pravděpodobně existují mnohem lepší způsoby, jak to udělat. $endgroup$

Květen 24, 2012 na 23: 17

$begingroup$ @ThePhoton Pokud ovládá hobby servo, PWM je to, co je vyžadováno jako řídicí signál. $endgroup$

Květen 25, 2012 na 0: 04

$begingroup$ Pokud upustíte od požadavku na pevnou periodu, bude delta-sigma oscilátor velmi jednoduchým řešením. Viděl jsem implementace s jedním operačním zesilovačem a hrstkou rezistorů/kondenzátorů. To předpokládá, že nemluvíte o RC-servo. $endgroup$

Květen 25, 2012 na 7: 06

$begingroup$ @jippie — Co je delta-sigma oscilátor? Vím, že delta-sigma ADC potřebuje oscilátor, ale vždy jsem předpokládal, že je to běžná věc, protože ve skutečnosti není součástí samotného převodníku. $endgroup$

Květen 25, 2012 na 8: 52

5 odpovědi 5

Doporučuji časovač (GASP!) 555 v režimu «astabilní». Vše potřebné najdete v odkazu, ale zkopíroval jsem je sem jen pro vás!

Astabilní režim vám poskytuje proměnnou frekvenci PWM a umožňuje také nastavitelný pracovní cyklus (rovnice vysokého a nízkého času v odkazu).

555 Timer, astable mode

Poznámka: Přidal bych elektrolytickou krytku přes Vcc (kladný vodič) a GND (záporný vodič), aby se snížil účinek poklesů napájecího napětí.

Output frequency of 555 Timer in astable mode

Nějaká obrana mé odpovědi ve srovnání s ostatními v tomto příspěvku. Většina ostatních odpovědí vyžaduje střední tvar vlny pro generování proměnného signálu PWM, jako je metoda společné trojúhelníkové vlny/komparátoru. Nevidím velký smysl v konstrukci generátoru trojúhelníkových vln (významný obvod sám o sobě) jen jako mezikrok k vyřešení vašeho problému.

555 je skvělý analogový čip a dělá přesně to, co potřebujete. Přál bych si, aby je lidé tolik nenáviděli.

odpověděl 24. 2012. 20 v 39:XNUMX
kevlar1818 kevlar1818
634 5 5 stříbrných odznaků 6 6 bronzových odznaků

$begingroup$ Mám rád 555, ale myslím, že @supercat má pravdu v tom, že jediná 555 vám nebude schopna dát signál s pevnou frekvencí a proměnným poměrem výkonu. C se nabíjí přes R1+R2 a vybíjí přes R2. Pokud zvýšíte R2, prodloužíte časy zapnutí i vypnutí, a tedy i periodu. Pokud zvýšíte R1, zvýšíte pouze dobu zapnutí, ale také období. Pokud zvýšíte C, zvýšíte všechny časy, včetně období. Potřebujete dvě 555. Jeden, v nestabilním režimu, který určí periodu, spustí druhý, v monostabilním režimu, který určí poměr výkonu. $endgroup$

ČTĚTE VÍCE
Jak vypnete airbag v Kia Sorento?

Květen 24, 2012 na 22: 41

$begingroup$ «Vše, co potřebujete, najdete v odkazu». Ne. To není správný způsob odpovědi. Zde uveďte podrobnosti. $endgroup$

Květen 25, 2012 na 6: 43

$begingroup$ Viděl jsem mnoho krátkých odpovědí, zbytek nechávám na odkaz, smazáno. Důvody byly vysvětlovány často: odkazy umírají a tento web chce být soběstačný. Neměl bych sledovat odkaz, informace by měly být zde. Zkopírování obrázku zde již může znamenat velký rozdíl. $endgroup$

Květen 25, 2012 na 13: 40

$begingroup$ @stevenvh Dáte mi vědět, až Wikipedie zemře. I kdyby ano, jak ukázal Dean svým komentářem výše, 555 je (byla) tak všudypřítomná, že by bylo těžké nenajít starou knihu, malý blog nebo hobby web s informacemi o nich. $endgroup$

Květen 25, 2012 na 13: 44

$begingroup$ O to nejde. Neexistuje způsob, jak určit, které odkazy zemřou a které ne. Předpokládejme, že proti tomu nikdo není imunní. Za čas, který jste strávili zveřejňováním svých posledních komentářů, jste mohli poslat obrázek. Dělám to ve svých odpovědích velmi často a od zástupce mě dostává, že vím, že to uživatelé velmi oceňují. (85 odznaků «hezká odpověď») $endgroup$

Květen 25, 2012 na 13: 53
$begingroup$

Trojúhelníková vlna. Komparátor. Kontrolní práh. To je základní způsob, jak to udělat.

Pokud však chcete ovládat hobby servo, není to nejlepší způsob. Pracovní cyklus se pohybuje mezi 5 % a 10 % (šířka pulsu 1 ms až 2 ms v periodě 20 ms), což je krátké a s největší pravděpodobností jej chcete ovládat s určitou přesností. Na 5V $_$ trojúhelníku musíte měnit práh komparátoru mezi 4.5 V a 4.75 V. Jakákoli odchylka a nebudete moci ovládat servo v celém jeho rozsahu. To vyžaduje přesné komponenty. Také generátor trojúhelníkových vln potřebuje 2 operační zesilovače a pak je tu komparátor.. Existuje lepší způsob.

enter image description here

Nejprve vygenerujte 50Hz obdélníkovou vlnu. Nejjednodušší způsob:

enter image description here

Pro 74HC1G14 vám odpor 250k $ Omega $ a kondenzátor 100 nF poskytne periodu 20 ms.

Zaveďte čtvercovou vlnu do MMV (Monostable MultiVibrator). Můžete to udělat pomocí LM555 nebo použít logické zařízení, jako je 74HC123A. Pokud použijete posledně jmenovaný, doba pulzu je definována pomocí $R_$ a $C_$:

ČTĚTE VÍCE
Jak mohu používat aplikaci Lexus Remote?

Čas v $mu$ s, R v k $Omega$ a C v nF.

Chcete-li získat šířku pulsu pohybující se mezi 1 ms a 2 ms, použijte C = 100nF a R = 10k $Omega$ v sérii s potenciometrem 10k $Omega$.

Mohl jsem to udělat se dvěma LM555, ale potřeboval bych více externích komponent.

editovat (o mikrokontrolérech)
Souhlasím s Olinem (viz komentáře), že vyloučení mikrokontroléru je krátkozraké (Olin řekl „hloupé“). Bývaly doby, kdy byl vývoj pro mikrokontrolér komplikovaný, ale dnes to již neplatí. Za pár eur můžete mít i programovací rozhraní. Řešení by pak vypadalo tak snadno, že mu žádné neregulátorové řešení nemůže konkurovat: vezmete ATTiny5 (Olin bere PIC10F220) do SOT23-6. Připojte oddělovací kondenzátor k napájecím přípojkám a potenciometr ke vstupu ADC. A je to! 3 (tři) komponenty. Převod ADC čtení na výstup šířky pulzu je tak snadný, že je to téměř směšné, dokonce i pro začínajícího programátora.

Jakmile s nimi začnete, zjistíte, že mikrokontroléry často nabízejí jednodušší a flexibilnější řešení než jiné integrované obvody nebo diskrétní komponenty.

Poznámka
Z vaší další otázky vidím, že vy do používat mikrokontroléry. Proč se jim tady chcete vyhýbat?