[136] Budujemy licznik (nie tylko) do magnetofonu cz. 2
Przypomnę: z Arduino, ośmiu rezystorów i wyświetlacza zbudowaliśmy licznik, który na razie odmierza dziesiątki sekund. Czas więc zatrudnić go do jakiejś bardziej pożytecznej pracy, którą będzie wspomniane w tytule tej serii artykułów liczenie… no właśnie, czego? Licznik taśmy w magnetofonach jest pojęciem bardzo nieprecyzyjnym. Po pierwsze, zlicza obroty szpulki, a nie przesunięte jednostki długości samej taśmy. Jeśli będzie to szpulka nawijająca, najpierw obroty będą przyrastać szybko, potem powoli. Do tego dostaniemy efekt niepowtarzalnego nawinięcia samej taśmy na rolkę i brak synchronizacji zerowania licznika, co w sumie sprawia, że cyferki możemy traktować orientacyjnie tylko i nie są do końca wymienne między systemami. Mało tego, alternatywnie można zliczać obroty drugiej szpulki i tam efekt nieliniowości działa odwrotnie. Tak naprawdę liczniki takie do montażu nagrań i dokładnego określenia położenia taśmy nie nadają się, ale już do opisania gdzie która piosenka leży – wystarczą. Jak więc przenieść informację o obrotach do urządzenia zliczającego?

Najprościej: za pomocą paska gumowego na mechaniczny licznik i takiej metody używano dawniej najczęściej. Oczywiście nas to tutaj nie interesuje. W przypadku polskich konstrukcji sposoby pozyskiwania impulsów związanych z obrotami szpulek były używane jedynie do różnego rodzaju układów autostopu. Mając taki magnetofon, można skorzystać z istniejącego już rozwiązania, ale nie polecam. Dlaczego? Najprostsze przypadki oferowały tarcze, po których ślizgała się blaszka.

Jest to rozwiązanie amatorskie, nietrwałe i zawodne. W ambitniejszych projektach stosowano kontaktrony i hallotrony. Jednak wszystkie miały podstawową wadę: podawały impulsy bez rozróżnienia kierunku obrotów. Ostatecznie nie jest to rozwiązanie złe, jeśli uda nam się gdzieś umieścić przełącznik związany z funkcją cofania taśmy. Wówczas jego stan będzie decydował o zwiększaniu licznika impulsów lub zmniejszaniu. W praktyce taki sposób komplikuje przeróbkę magnetofonu, a same impulsy najczęściej mają się do obrotów rzeczywistych rolki w jakimś bliżej nieokreślonym stosunku, który należy obliczyć z przybliżeniem. Proponuję więc pomysł autorski – w senie budowy własnego sensora od podstaw.

Po zapoznaniu się z różnymi rozwiązaniami w popularnych magnetofonach doszedłem do wniosku, że najłatwiej będzie się dobrać do szpulki odwijającej (lewej). Co prawda stracimy wymienność opisów, które – jak mówiłem – są tylko przybliżone. Jeśli komuś to przeszkadza, musi się dobrać do rolki nawijającej (prawej). Lewy talerzyk, pozbawiony sprzęgła, które znajdziemy po drugiej stronie, zwykle oferuje w swym sąsiedztwie nieco miejsca na trzy elementy, które rozwiążą nam ślicznie wszystkie problemy: kierunku, trwałości i powtarzalności. Żeby zrozumieć ideę, musimy udać się do wnętrza myszy – najlepiej takiej z kulką jeszcze, ale i współczesne gryzonie mają tak zwany enkoder optyczny związany z rolkami.

Mamy tam tarczę z otworkami i dwa fototranzystory oświetlone przez owe otworki wiązką podczerwieni. Ich położenie zostało tak dobrane, by być przysłanianymi z pewnym przesunięciem faz, dzięki czemu analizując kolejność zasłaniania i odsłaniania możemy zidentyfikować kierunek obrotów. W myszach otworków jest mnóstwo, bo tam potrzeba rozdzielczości. W magnetofonie jest ona bardzo niska: rzędu jeden impuls na obrót rolki. To znakomicie upraszcza konstrukcję. Zamiast otworów użyjemy dwóch powierzchni: białej i czarnej. Dzięki temu oba fototranzystory wraz z diodą oświetlającą będą mogły znajdować się po jednej stronie. I tak to wygląda w praktyce.

Jak widać, użyłem elementów SMD: w środku siedzi dioda świecąca, z boku – fototranzystory. Żeby uprościć okablowanie, wszystkie mają wspólną masę, więc przewody mamy tutaj cztery. Dla celów edukacyjnych zrezygnowałem z podczerwieni, używając diody świecącej na czerwono, dzięki czemu zobaczymy jak mechanizm pracuje. Oczywiście fototranzystory także muszą pracować w paśmie widzialnym. Wypadałoby tutaj użyć małej płytki drukowanej, ale to jest rozwiązanie szkolne, że tak powiem, choć nie do końca, bo jeśli uda nam się porządnie zlutować takiego pajączka, będzie on trwały, a przy tym zajmie niewiele miejsca, co czasem może mieć znaczenie.
Do testów użyłem mechanizmu magnetofonu o nazwie Kapral, tylko dlatego, że mam wobec niego pewne plany – ale o tym napiszę kiedy indziej. Pod lewym talerzykiem miejsca jest sporo, a on sam pod spodem jest gładki i ciemny – może nie czarny, ale wystarczająco mało odbijający światło. Teraz należy połowę tej powierzchni uczynić jasną.

Nie polecam jednak wklejania folii aluminiowej, gdyż nawet małe zmarszczki będą modulować światło, a pewne uproszczenia, o których zaraz powiem, mogłyby być nieodporne na takie błyskanie. Wkleiłem tutaj białą taśmę dwustronną, która dawała odbicie nieco słabsze, ale stabilne.

Następnie należy osadzić nasz sensor w ten sposób, by znajdował się mniej więcej w 2/3 promienia od osi rolki i jak najbardziej symetrycznie. Warto też zadbać o maksymalne przysunięcie go do powierzchni odbijającej światło. U mnie wystarczyły cztery warstwy samoprzylepnej pianki. Zanim podłączymy Arduino, musimy stworzyć prymitywny interfejs, który zbudowałem na płytce montażowej.

Można się domyślić, że diodę świecącą podłączymy do pięciu woltów przez rezystor. Wstawiłem 220 Ω, co da ponad 10 mA prądu – sporo, ale w granicach normy. Tak jasne światło potrzebne mi będzie po to, by uzyskać pewne poziomy logicznego zera i jedynki przy pomocy jednego rezystora. W profesjonalnych rozwiązaniach sygnały zdjęte ze spolaryzowanego ustalonym prądem fototranzystora należy uformować czy to komparatorem, czy wzmacniaczem operacyjnym, ale my tu nie budujemy rakiety kosmicznej i takie uproszczenia są dopuszczalne. Jednak konieczny będzie multimetr i to cyfrowy, o dużej rezystancji wejściowej.
Po nałożeniu talerzyka i obracaniu nim należy mierzyć napięcie między rezystorem podłączonym do pięciu woltów, a kolektorem fototranzystora. Gdy światło nie będzie odbijane, powinniśmy uzyskać napięcie większe niż dwa i pół wolta, gdy będzie odbijane – nie wyższe niż cztery dziesiąte wolta. Dlaczego tak? Pięciowoltowy świat cyfrowy interpretuje zera jako napięcia nie wyższe niż 0,8 wolta, a jedynki – te powyżej 2 woltów. Biorąc zapas na wszelki wypadek, należy uzyskać wspomniane przeze mnie poziomy albo jeszcze bardziej odległe od granic. Metodą prób i błędów uzyskałem satysfakcjonujące wyniki, wstawiając rezystory o wartości 100 kΩ. To dość sporo, ale nie zauważyłem żadnych niestabilności. By uśpić wyrzuty sumienia, dołożyłem równolegle do fototranzystorów kondensatory 22 nF, które nieco osłabią zakłócenia, ale jak mówiłem – nie jest to konieczne.
Zbudowaliśmy najprostszy możliwie interfejs, z trzech rezystorów i ewentualnie dwóch kondensatorów. Ale nadal nie mam pewności, czy Arduino zadowoli się takim mało szlachetnym sygnałem. Dlatego napiszę teraz szybki szkic, który jednoznacznie rozwieje wątpliwości.
const byte ledPrawy = 9; // Adresy portów diod świecących.
const byte ledLewy = 10;
const byte fotoPrawy = A4; // Adresy portów fototranzystorów.
const byte fotoLewy = A5;
void setup() {
pinMode(ledPrawy, OUTPUT);
pinMode(ledLewy, OUTPUT);
pinMode(fotoPrawy, INPUT);
pinMode(fotoLewy, INPUT);
}
void loop() {
digitalWrite(ledPrawy, !digitalRead(fotoPrawy)); // Prześlij zanegowane stany portów fototranzystorów do odpowiednich portów diod świecących.
digitalWrite(ledLewy, !digitalRead(fotoLewy));
}Jest on prosty, wręcz prostacki i polega na przeniesieniu tego, co odczytuje się na portach sensorów na porty diod świecących. Użyłem mojej płytki edukacyjnej TME, która ma podpiętą czerwoną diodę do pinu 9 i zieloną do 10. Po kompilacji możemy powoli obracać talerzykiem.

W pewnym momencie zaświeci się dioda czerwona. Po kolejnych kilkunastu stopniach obrotu – obie i ten stan będzie trwać przez około 150 stopni obrotu. W końcu czerwona dioda zgaśnie, ale będzie świecić dioda zielona, która po kolejnych piętnastu stopniach także zgaśnie. Obroty w drugą stronę odwrócą kolejność migania diod. Jeśli będzie tak jak opisałem – wszystko jest w porządku. Jeśli nie – należy dokładnie ustawić całość i zestroić z miernikiem, zgodnie z tym, co mówiłem przed chwilą. Zakładam, że wszystko pracuje jak trzeba, czas w końcu finalizować prace – ale to już w następnym artykule.

Inne artykuły z tej kategorii
Jak wyświetlić cyfry o rozmiarze 10x8 i 10x16 pikseli?














































































































