Van egy öreg RCA 10W707 antennaforgatóm, amelynek analóg vezérlőegységét
egy K3NG Arduino-vezérlőre
cseréltem, így az antennát a PC-ről, a hamlib rotctld-jén keresztül tudom
forgatni. A motor meghajtása relékkel működött, a pozíciópotméter kiolvasása
is működött — de amint a motor elindult, az azimutkijelzés vadul ugrálni
kezdett, nagyjából ±20°-ot.
Íme, hogyan jártam a végére, és hogyan javítottam meg két ellenállással és két kondenzátorral. Spoiler: a javítás működik — demóvideó.
Az elrendezés
A forgatóegység a toronynál ül, és 35 m ötvezetékes árnyékolt kábel köti össze a vezérlődobozzal. Két vezeték hajtja meg a 20 V-os, kondenzátoros segédfázisú váltakozó áramú motor két tekercsét, egy vezetéken osztozik az AC közös pont és az 1 kΩ-os pozíciópotméter csúszkája, kettő pedig a potméter pályájának két végére megy, amelyek 5 V-ot és GND-t kapnak. Az Arduino a csúszkát olvassa egy RC-szűrőn át az A0 lábon — ez azért működhet, mert a motor tápjának szekundere a csúszka potenciálján lebeg, nincs a földhöz kötve. (Helyesbítés: a bejegyzés korábbi változata földelt csúszkát és pályavégről vett kiolvasást írt le — az tévedés volt.)
A hiba gyökere
Arra gyanakodtam, hogy a motoráram a közös vezetéket 50 Hz-es feszültséggenerátorrá változtatja — a potméter csúszkája ugyanazon a vezetéken osztozik a motor visszaáramával, így az IR-esés közvetlenül a pozíciójelre rakódik. A mérések ezt igazolták:
- Motortekercs-áramok: az eredeti vezérlővel kb. 1–1 A, az újjal 1,5 A / 0,86 A (24 V-os szekunder, 50 Hz). A két tekercs árama ~90°-os fázisban van egymáshoz képest, így a közös vezetéken a vektoros összegük folyik, ≈1,7 A.
- A kábelerek ellenállása (35 m): motorvezetékek 0,5 / 0,3 Ω, potmétervezetékek 1,3 / 1,2 Ω, a közös pedig ≈0–0,2 Ω — a kábel árnyékolását ugyanis párhuzamosan rákötöttem a közösre, ami, mint kiderült, sokat számít.
- A döntő bizonyíték, közvetlenül megmérve: 0,31 V AC a forgatóegység felőli közös és a vezérlődoboz DC− pontja között, járó motornál.
Ez a 0,31 V szinte 1:1-ben rárakódik a potméterjelre, mert az ADC az Arduino saját földjéhez képest mér. Az eredeti „szűrőm” csak rontott a helyzeten: egy 10 nanofarados kondenzátor a csúszka felőli oldalon, utána soros 1,2 kΩ az A0-ra — ≈13 kHz-es vágás, RF-zavarok ellen jó, 50 Hz-en viszont teljesen átlátszó, ráadásul a kondenzátor az ellenállás rossz oldalán ült. A teljes 0,31 V (±0,44 V-os csúcsokkal) elért az A0-ig. A csúszka a teljes elfordulás alatt ≈0,7–4,5 V között jár — ≈3,8 V jut a 360°-ra —, így ez ±29° effektív remegés, ±40°-os csúcsokkal. A mechanizmus, a nagyságrend és a tünet mind egybevágott.
A kulcsgondolat
A zavar egy nulla középértékű, 50 Hz-es szinusz a valódi jelen, és a szűrő előtt semmi sem vág le vagy egyenirányít a jelúton (az ADC védődiódái a szűrő mögött ülnek, ahol a brumm már csak millivoltos). A passzív RC-aluláteresztő lineáris, így a kimenete az átlagra áll be — ami éppen a zavarmentes pozíciófeszültség. Nem kell hídkapcsolás, nem kell differenciálerősítő: az erős 50 Hz-es elnyomás önmagában pontos kiolvasást ad, még forgás közben is.
A javítás: kétfokozatú RC-szűrő
| Szűrő | Vágás | 50 Hz-elnyomás | Maradék remegés | Késleltetés |
|---|---|---|---|---|
| Régi — 1,2 kΩ + 10 nF | ≈13 kHz | nincs | ±29° | ≈0 |
| Egy fokozat — 1,2 kΩ + 220 µF | ≈0,6 Hz | ≈80× | ±0,4° | 0,26 s |
| Kétfokozatú — + 10 kΩ + 10 µF | ≈0,5 Hz | ≈2500× | ±0,02° | ≈0,35 s |
Már egyetlen fokozat is használható lett volna, de a második mindössze egy ellenállásba és egy kondenzátorba kerül, és nagy tartalékot hagy arra az esetre, ha az árnyékolás kötése egyszer elkorrodálna a szabadban. A 0,3 s késleltetés a forgási sebességnél kb. 2°-nak felel meg, amit a K3NG szervo-holtsávja elnyel. Az utolsó kondenzátor közvetlenül az A0 lábnál ül.
Megépítettem, és a kiolvasott érték már járó motor mellett is kőstabil:
Egy furcsaságra érdemes figyelni: bekapcsoláskor van egy ~2 másodperces beállási tranziens, amíg a kondenzátorok feltöltődnek; ezalatt a kijelzett irány a teljes CCW-től kúszik fel a valódi pozícióig. Ez elkerülhetetlen — bármely RC-szűrőnél a beállási idő az 50 Hz-es elnyomással skálázódik — és ártalmatlan, mert a K3NG bekapcsoláskor magától sosem forgat. Csak ne higgyünk a kijelzőnek az első két másodpercben.
Bónuszmegfigyelések a mérési menetből
Megérte mindent végigmérni a multiméterrel, a zajjavításon túl is:
- A potméter végállásai a pálya ~10–15%-át kihasználatlanul hagyják mindkét végén (a szakaszok 106↔896 Ω és 152↔942 Ω között járnak). Ártalmatlan: a K3NG a tényleges végpontokra kalibrál.
- A tekercsáramok aszimmetriája (1,5 vs. 0,86 A) várható: ugyanaz a tekercs egyik irányban közvetlenül a hálózatról, a másikban a 120 µF-os üzemi kondenzátoron keresztül kap táplálást. A kondenzátort 60 Hz-re méretezték; az 50 Hz-es megfelelője ≈144 µF lenne, így egy plusz 25–30 µF-os motorkondenzátor párhuzamos bekötése kiegyenlítené a fázisokat — nem kötelező, a motor így is jól jár.
- A motor ≈41 VA-t vesz fel a transzformátorból — egy nagyságrenddel többet, mint az első, „kis ventilátormotoros” becslésem. A transzformátornak ≥40 VA-snak kell lennie (vagy 18 V-os szekunderrel, ami ~25%-kal csökkenti az áramot és ~45%-kal a motor melegedését), a hálózati biztosítéknak pedig 315–400 mA-es lomhának az eredetileg tervezett 125 mA-es gyors helyett.
A tanulság, mint mindig: előbb mérj, aztán tervezz. Minden egyes méréssorozat megváltoztatott egy számot, amelyet addig magabiztosan becsültem.