Arduino można programować obiektowo z c++ i nawet używać przy tym dziedziczenia obiektów (normalnie w środowisku arduino). Da się więc upiec dwie pieczenie przy jednym ogniu, robiąc jedną (abstrakcyjną) klasę bazową SwiatloSemafora i odziedziczyć z niej dwie klasy pochodne: jedną, która rzeczywiście zapala lub gasi jakieś światło i ma pin, i drugą fałszywą, która nie ma dowiązanego pinu i coś tam niby zapala i niby gasi, a potem użyć tych klas w konstruktorze semafora pięciokomorowego - tam gdzie mamy światła: pierwszej, a tam gdzie nie: drugiej (może nawet wystarczy jedna klasa z adresem ekspandera ustawionym na NULL dla fałszywych świateł i odpowiednie sprawdzenia przy zapaleniu/gaszeniu światła).Wicio pisze:Przez 3 bitowe adresowanie w PCA9552 musiałem korzystać z tylu wyjść ile było niezbędne dla semafora o określonej ilości komór zamiast zrobić uniwersalne sterowanie 5 wyjść na semafor.
Ja na razie mam zamiar robić całe sterowanie nie istniejącej jeszcze infrastruktury przy pomocy DCC (osobna magistrala dla sterowania, niezależna elektrycznie od magistrali torów) i wykorzystać dekoder akcesoriów oparty na arduino (pro mini) udostępniony przez Geoffa Bunza'ę (http://model-railroad-hobbyist.com/node/19070), który już przetestowałem i działa (aktualnie będę próbował dorobić do niego potwierdzenie podczas programowania przez dcc, tylko ciągle nie mam na to dość czasu, a nie chcę w pośpiechu czegoś spalić). Potem będzie kolejny problem: jak dorobić możliwość przesyłania wykrywania zajętości odcinków poprzez DCC bez nadmiernych inwestycji finansowych, ale ... to też powinno się udać .