TCO s Arduinem Nano

Při procházení internetu jsem narazil na tyto italské stránky, které vytvořil Stefano Fagnani. Jen abych připomněl, TCO je zkratka pro vizuální ovládací panel. Tento modul se připojuje na sběrnici XpressNet a umožňuje ovládat dekodéry příslušenství. Pro realizaci ovládacího panelu zvolil autor trochu jinou metodu, než která je použita u předchozího TCO s Arduinem Mega. Rozdíl je v tom, že předchozí projekt používá jednotlivá tlačítka na samostatných vstupech Arduina. V tomto projektu jsou pomocí knihovny Keypad vytvořeny maticové klávesnice, a lze tak podstatně zvýšit počet ovládaných adres, proto jsem se rozhodl pro jeho vyzkoušení a návrh desky. Schéma zapojení je oproti autorově návrhu malinko pozměněné, je velice jednoduché, takže rozdíly snadno najdete. Vypustil jsem tlačítko na pinu A0 a svorky přídavného napájení a změnil připojení svorkovnice X2.

Modul umožňuje ovládat příslušenství na 30-ti po sobě jdoucích adresách. První adresa je 1, od této adresy se bude posun adres počítat a zadává se do proměnné "address_offset". Chceme-li například ovládat příslušenství s adresami 40 až 69, nastavíme proměnnou "address_offset = 39". Číslování adres je podle specifikace sběrnice XpressNet (Lenz). Pokud potřebujete číslování podle Roco, můžete v programu jednoduše proměnnou "address_offset" upravit. Lenz však neuznává 0 jako platnou číslici, a počítá adresy od 1, pro centrály Roco tak s největší pravděpodobností nebude možné použít adresy 1 až 4 (netestováno). 

Jak již bylo zmíněno, jsou vytvořeny dvě maticové klávesnice, jedna pro směr přímo a druhá pro směr do odbočky. Svorky 1, 2, 3 na svorkovnici X2 představují desítky pro směr přímo, svorky 4, 5, 6 pro směr do odbočky. Svorkovnice X1 prezentuje jednotky pro oba směry. Ovládání se provádí běžným spínacím tlačítkem. Kombinace současného stisku více tlačítek není možná, ani při použití oddělení pomocí diod.

Příklad: pro výhybku s adresou 2 do směru rovně - sepneme X2-1 a X1-2, pro přepnutí do odbočky - sepneme X2-4 a X1-2

Pozn. toto platí pokud bude proměnná "address_offset = 0".

Při ladění programu odkomentováním makra #define DEBUG, obsadí sériový port piny D11 a D12 Arduina a svorky X1-9 a X1-10 nebude možné použít pro tlačítka. Při ladění tak počet ovládaných adres tak klesne na 24.

Další použitou knihovnou je XpressNet. V programu je definována XpressNet adresa 29. Pokud již na sběrnici máte zařízení s touto adresou, změňte ji v makru #define XNetAddress.

V průběhu nahrávání programu vyjměte Arduino z desky, připojený obvod MAX485 neumožňuje nahrávání programu.

Vzhledem k tomu, že bylo pozměněno schéma zapojení, byl patřičně upraven i program. 

Pokud vám můj popis připadá nedostatečný, můžete si stáhnout i překlad stránek, ze kterých jsem vycházel