Arduino

Na tuto stránku byly přesunuty dekodéry a ovladače, které jsou postaveny na platformě Arduino.

Univerzální dekodér příslušenství

Tento dekodér vychází z projektu Geoffa Bunzy konkrétně SMA20. Programy k jeho projektům lze najít přímo v příkladech knihovny NmraDcc v podadresáři SMA.

Zapojení dekodéru je velice jednoduché. Protože předpokládané použití dekodéru bylo ovládání osvětlení, na výstupy byly přidány rezistory omezující proud do připojených LED svítidel. Pokud máte svítidla na napětí použitého zdroje, nebo dekodér použijete jinak (dekodér výhybek), tyto rezistory mohou být nahrazeny propojkami. Dekodér je opět navržen na jednostranné DPS a přiložené soubory jsou určeny pouze pro ruční výrobu. Pokud není Arduino osazeno do patice, není možné osadit do patice ani optočlen, který je pod něj umístěn. Dekodér byl vyroben pouze experimentálně na prototypové desce a výstupní rezistory nebyly osazeny. Protože jsem chtěl zjednodušit návrh zapojení, musely být v programu přesunuty výstupní piny, takže program přímo z příkladů nelze použít.

V přiloženém archivu opět najdete kompletní návrh DPS v programu Eagle, generované výkresy ve formátu PDF a upravený náčrt. Pro kompilaci kódu možná budete do Arduino IDE muset přidat další knihovny, např. SoftwareServo

Dekodér pro 16 servomotorů

je opět z balíku dekodérů Geoffreje Bunzy. Pomocí knihovny SoftwareServo  je možné ovládat servomotor i na pinech Arduina, které nemají hardwarové PWM výstupy. Tak lze vytvořit dekodér, který může ovládat až 16 servomotorů. Otázkou zůstává, kdo takový dekodér využije, protože delší přívody k servomotorům se kvůli rušení signálu nedoporučují, a pochybuji, že bude mít někdo 16 servomotorů v dosahu 30cm od dekodéru. Tento dekodér byl proto pouze navržen a odzkoušen na nepájivém poli a je zde uveden pouze jako příklad provedení.

Program pro servodekodér je prakticky stejný, jako pro předchozí dekodér, jsou pouze změněny konfigurační proměnné #CV30 až #CV109. Pro každé servo lze nastavit krajní polohy, výchozí polohu a rychlost. Pro polohy lze zadávat hodnoty v rozsahu 0 až 180, které odpovídají rozsahu 540us až 2400us. Většina servomotorů pracuje v rozsahu 900us až 2100us, což odpovídá nastavení CV v rozsahu 35 až 151, mimo tyto hodnoty se již nemusí některá serva chovat korektně. Dekodér si neukládá poslední polohu do paměti a při zapnutí tak všechna serva najíždějí do výchozích poloh. Při zapnutí se také neuplatňují nastavení rychlostí pohybu pro jednotlivá serva.