Otázka:
Jak může Arduino Uno podporovat až 12 serv, pokud má pouze 6 digitálních PWM pinů?
user1265
2014-05-01 02:32:46 UTC
view on stackexchange narkive permalink

Podle tohoto:

Knihovna Servo podporuje až 12 motorů na většině desek Arduino a 48 na Arduino Mega. Na deskách jiných než Mega použití knihovny zakáže funkci analogWrite () (PWM) na pinech 9 a 10, bez ohledu na to, zda je na těchto pinech Servo. Na Mega lze použít až 12 serv bez narušení funkčnosti PWM; použití 12 až 23 motorů deaktivuje PWM na pinech 11 a 12.

Podle tohoto však:

Digital I / O Pins 14 (z toho 6 poskytuje PWM výstup)

Jak tedy může Uno ovládat více než 6 serva, pokud má pouze 6 digitálních I / O pinů, které mohou poskytovat PWM výstup?

Jeden odpovědět:
Anonymous Penguin
2014-05-01 03:13:23 UTC
view on stackexchange narkive permalink

Ačkoli jsem se na zdroj sám nepodíval, v těchto typech situací obvykle používají časovač přerušení 1, který by v režimu PWM byl spojen s piny 9 a 10. To by vysvětlovalo proč na těchto pinech nemůžete použít modulaci šířky pulzu. Ve skutečnosti můžete použít kterýkoli ze tří časovačů pro PWM na libovolném digitálním kolíku, i když to není tak dobré jako vestavěné možnosti PWM.


(zdroj: bansky.net)

( Zdroj)

Výše ​​uvedený obrázek přesně popisuje, jak jsou signály odesílány do servomotoru. Takový průběh je podobný standardnímu PWM. Knihovna serva dokáže přeložit stupeň na vlnovou křivku, kterou bude moci integrovaný obvod serva použít k nastavení polohy motoru pomocí motoru a potenciometru.

V podstatě tedy simuluje PWM? Jaký je tedy smysl digitálních pinů s kanály PWM?
@user1265 Více či méně ... používá časovače, které řídí PWM. Pokud jde o bod PWM, IIRC má ATmega328 obvody, které zefektivňují PWM.
Hardwarový PWM @user1265, je „zdarma“, tj. Vůbec neovlivňuje výkon zbytku vašeho programu (pouze spojuje časovač nebo alespoň jeho část). Obsluha přerušovacích rutin pro emulovaný PWM je poměrně nákladná. V tomto případě je však frekvence PWM pouze asi 50 Hz, takže to není příliš tragické (standardní frekvence PWM Arduino je 31 / 62kHz, dělat PWM například pro osvětlovací aplikace na 50Hz by pravděpodobně bylo trochu blikající).
„Jaký je tedy smysl digitálních pinů s kanály PWM?“ - můžete získat mnohem vyšší frekvence (až 8 MHz) a velmi přesné pracovní cykly. To není možné, pokud se spoléháte na přerušení, aby to provedli za vás.


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...