Rozšiřující deska pro Raspberry Pi
Návod
PWM obvod - PCA9685
PWM obvod PCA9685 je možné využít pro spoustu různých
věcí:
V jednom z minulých článků jsem dva jeho
kanály použil pro řízení servomotorů.
Také je možné ho využít k ovládání jasu LED diod - nebo třeba řízení
jasu podsvětu displeje.
Jednou jsem ho v práci využil jako generátor dvou fázově posunutých
signálů.
Když se do vstupu přivede trochu nižší frekvence, než kterou
generuje vnitřní oscilátor (25MHz), je možné na výstupech rozblikat
LEDky - to může sloužit jako nějaká signalizace varování.
Katalogový list:
http://www.adafruit.com/datasheets/PCA9685.pdf
Hlavní výhoda tohoto PWM obvodu proti použití PWM na
GPIO konektoru na RasPi je stabilita.
Tímto obvodem je také možné ovládat větší zátěž.
Při použití vnitřního oscilátoru v obvodu PCA9685 je
možné nastavit minimální frekvenci výstupu asi na 24Hz.
Aby bylo možné tuto frekvenci snížit tak, aby LEDky na výstupech pomalu
blikaly, musí se vnitřní oscilátor odpojit a na vstup se musí připojit
nějaká nižší frekvence.
Plánoval jsem tuto nižší frekvenci získávat z obvodu HEF4060.
Popis generátoru a děliče je zde: Generátor
a dělič frekvence
Obvod PCA9685 je osazený na spodní straně desky.
Devět jeho výstupů je k dispozici na kolíkách osazených
shora. Dva výstupy jsou přímo vyvedeny na konektor na boku krabičky.
Přepínač K3 funguje následovně:
Při použití vnitřního generátoru (25MHz) jsou spojené piny 2
a 3, čímž se vstup extCLK přizemní.
Pokud je požadováno propojení na dělič frekvence HEF4060,
propojí se piny 1 a 2.
Třetí možností je přivedení signálu z cizího zdroje. V tom případě
se ten signál přivede přímo na pin 2 (například propojkou na boční
konektor)
Jednoduché příklady ovládání PWM
1) Nastavení výstupu PWM9 na frekvenci 100Hz se
střídou 20%:
pwm-priklad1.py
2) Nastavení výstupů PWM2 a PWM3 na generování impulzů
s frekvencí 30Hz s šířkou pulzů 10%.
Oba signály jsou vůči sobě posunuté o 25%:
pwm-priklad2.py
3) Postupné rozsvěcení a zhasínání LED na PWM0 (plynulá změna
střídy signálu):
pwm-priklad3.py
4) Pomalé blikání LED na kanálu PWM1 s využitím vnějšího generátoru
(HEF4060) nastaveného na 125kHz - "režim extCLK":
pwm-priklad4.py
Poznámka:
Zatím se mi nepodařilo přepnout obvod zpátky z režimu
"extCLK" do režimu, který využívá vnitřní generátor.
Podle katalogového listu by to mělo jít nějakým softwarovým resetem.
Nepřišel jsem ale na to, jak ten reset provést.
Jestli máte někdo nějaké nápady, prosím napište mi.
Jediný způsob, kterým se dá přejít z režimu extCLK do režimu s
vnitřním generátorem, bylo vypnutí a zapnutí napájení.
|