Nastawnik jak się patrzy

Oryginalna kolumna nastawników była zawsze moim marzeniem ale wierzyłem, że wcześniej czy później będzie kompletna. Zdobywałem ją na raty ale w końcu jest i działa. Początki opisałem tutaj, a niedawno uzupełniłem ją o brakujące części ze złomowanej lokomotywy ET22-511. Całość zyskała na wadze ale również na realizmie doznań. Oryginalne styki wprowadziły większy opór, a uważne ucho wyłapuje subtelne klikanie dochodzące spod blaszanej obudowy. Zmiana z prowizorycznych styków umieszczonych koncentrycznie pod krzywkami na zestaw wybranych styków wymusiła dostosowanie okablowania oraz oprogramowania mikrokontrolera. Na szczęście mogłem spokojnie wykorzystać dotychczasowy interfejs I2CIN. Nowa koncepcja wymaga znacznie mniej pinów wejściowych bo zamiast wszystkich 44 pozycji (od 0 do 43) wystarczy podłączyć 28 styków plus 3 wskazujące na pracę pierwszego lub drugiego układu oraz załączenie jazdy z poborem prądu. Bazując na tej koncepcji mógłbym zrezygnować z 2 ekspanderów na płytce interfejsu. Na razie chyba jednak nie będę tego zmieniał.

Modyfikując oprogramowanie skorzystałem przy okazji z sugestii jak zoptymalizować kod wprowadzając bezpośredni odczyt wszystkich bitów z poszczególnych ekspanderów. Mogłem również przećwiczyć operacje na bitach i składanie bajtów w jedną zmienną 32 bitową. W końcu się udało. Przy okazji zmodyfikowałem analogicznie obsługę nastawnika bocznikowania. Miałem z nim trochę niespodzianek bo jeden z bitów ekspandera wykorzystywany do wskazywania stanu położenia nastawnika wprowadzał zamieszanie w interpretacji pozycji i zanim znalazłem powód dziwnego zachowania, spędziłem nad tym kilka nocnych godzin.

Ostatecznie całość mechanizmu została zamknięta pod oryginalną pokrywą, a po solidnym przesmarowaniu działa bardzo dobrze i całkiem cicho. Jest to dość istotne podczas nocnych jazd w domu, gdzie inni domownicy próbują zasnąć.

Treść jest niedostępna.
Zaakceptuj politykę prywatności klikając przycisk Akceptuję.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Kod antyspamowy *

This site uses Akismet to reduce spam. Learn how your comment data is processed.