Op modelspoorbeurzen spreek ik regelmatig bezoekers die een servo willen gebruiken voor het maken van een beweging op de baan zoals een overweg, een wissel of de deuren van een loc loods. Ze vragen dat dan aan een standhouder die servo's verkoopt of aan een mede bezoeker waarvan ze denken dat hij er verstand van heeft, en krijgen dan een enorm verhaal over DCC centrales, decoders, servodrivers, stuurpulsen en nog veel meer over zich heen gestort, terwijl ze eigenlijk alleen maar een schakelaartje willen waarmee ze een servo een overwegboom open en dicht kunnen laten gaan.
Dit overkwam mij dus ook op de laatste Houten-Digitaal, een bezoeker die mij die vraag stelde: " hoe kan ik met een schakelaar, zo een servo bedienen?" En ik betrapte mezelf erop dat ik ook aan zo een kletsverhaal begon, wist me redelijk op tijd in te houden en beloofde de man er eens naar te kijken of er zo iets bestaat.
Nu, zo een schakelaartje bestaat dus niet, maar laat ik een poging wagen om begrijpelijk uit te leggen waarom niet.
Een servo bestaat uit een motor, een setje tandwielen, een potentiometer en een kleine printje met electronica. De motor drijft de tandwielen aan zodanig dat de as die naar buiten gaat veel langzamer draait dan de motor. Op deze naar buiten komende as, dat witte dingetje op de foto, zit in de servo de potentiometer gemonteerd. Deze draait dus mee met de as. Een potentiometer is een regelbare weerstand, er wordt dus een weerstand geregeld als de as draait. Deze veranderde weerstand wordt ingelezen door het printje met electronica. Het printje weet dus de waarde van de regelweerstand, en omdat deze waarde overeenkomt met de verdraaiing van de as, weet het electronica printje dus de stand van de servo.
Een servo heeft drie aansluitdraden naar een stekkertje. De middelste is de positieve stroomaansluiting 5V. De buitenste zwart of bruin de massa. De oranje(witte) is de aansturing waarmee de servo wordt verteld waar het naar toe moet draaien. Helaas is er niet een echte standaard kleurcode voor deze draden dus is dat af en toe even hannesen. Bruin-rood-oranje zie je het vaakst.
Alleen met 5V op die bruine en rode draad gebeurt er niks. Want de servo wil graag op de oranje draad een signaal hebben waar het naar toe moet draaien.
Je zou verwachten dat je op de oranje draad een regelspanning kan zetten van 0<>5V die dan de gewenste stand aangeeft...? Dan een schakelaartje die van 0V naar 5V schakelt en ...Bingo! .....Maar helaas zo werkt het dus niet. De sturing naar de servo ziet er heel anders uit.
Ongeveer 50 per seconde moet er een positieve puls naar de servo worden gestuurd. Een puls is dat de spanning op de regeldraad, die oranje, heel even 5V moet worden, en dan weer 0V. En dat 50 keer in een seconde. De regeling zelf, zit dan verstopt in dat 'heel even' van hier boven. Als die puls 1 ms duurt, dus 1/1000 deel van een seconde even 5V, dan draait de servo helemaal de ene kant op, duurt deze puls 2 ms, 2/1000 deel van een seconde, dan draait de servo helemaal naar de andere kant.
Alles tussen die 1ms en 2ms zet de servo dan ergens er tussen in.
Dat lukt natuurlijk nooit met een schakelaar.
Maar hoe kan het dan wel?
Tegenwoordig doen we dit met een of andere vorm van een computer.
Voor een computer is het een makkie om een puls te maken van 1 tot 2ms lang en dat 50 keer in een seconde te herhalen. Op de computer sluit je weer een schakelaar aan, vertel de computer dat als de schakelaar omgaat hij de lengte van de pulse moet aanpassen en voila... we hebben wat we willen.
Praktisch kun je dit bv. doen met een Arduino. Hiervoor zijn standaard al heel veel programma's gemaakt die je gratis kunt gebruiken. Heel populair hiervoor is het systeem van Adafruit, wat werkt met een printje, PCA9685, van een paar euro waarmee je tot 16 servo's met 1 arduino kan bedienen.
Hier https://learn.adafruit.com/16-channel-pwm-servo-driver/using-the-adafruit-library lees je het hele verhaal en kun je alle benodigde software gratis downloaden.
Speciaal voor dit doel heb ik ook project SerVo-control gemaakt een Arduino project bestaande uit een arduino en een speciale print waarop tot 8 servo's kunnen worden aangesloten.
Een andere manier is met gewoon in de handel te verkrijgen apparaten. Het kan met een servo-decoder. Je kan dan met een DCC signaal uit een DCC centrale enz enz........ jawel dan komt dus het verhaal wat je vast al vaak hebt gehoord.
Bedenk wel dat sommige van die decoders ook een aansluiting hebben voor gewone schakelaars. Dan is die aansturing met DCC helemaal niet nodig. Dus zeker ook te gebruiken als je een volledig analoge baan hebt. Als voorbeeld de ESU switchpilot servo. Deze werkt gewoon helemaal perfect en zonder problemen, gemaakt door een professionele fabrikant en is gezien naar de kosten €35,00 voor 4 servo's helemaal niet zo duur. Ik kan dit echt iedereen aanraden die met een schakelaar een servo wil bedienen.
Een andere methode is door zelf een schakeling te maken die deze 'stuurpulsen' kan maken. Je kan dit bijvoorbeeld doen met 1 of meerdere servotesters. Een servotester is wat het woord al zegt een tester voor servo's. Deze kastje worden traditioneel veel gebruikt in de RC hobby (radiografisch bestuurde boten, vliegtuigen of auto's) In normaal bedrijf stuurt de ontvanger van een radiografisch systeem de servo aan, maar als je staat te koukleumen naast de vijver met je radiografisch bestuurde boot en het stuur doet het niet, kun je met een batterijtje en een servotester even checken of de servo niet is doorgebrand.
Die servotester stuurt een stuurpuls naar de servo, vaak instelbaar met een regelweerstand. Gebruik nu twee servotesters stel 1 van de servotesters af op de gewenste beginstand van de servo, de tweede op de gewenste eindstand van de servo en schakel met een wisselschakelaar de uitgangen ervan afwisselend naar de servo. Zoiets als hierboven getoond.
Maar de echte doe-het-zelf electronica man duikt natuurlijk diep in zijn onderdelen koffer en met een een handvol ic's, weerstanden en condensatoren maakt hij zelf een schakeling om de stuurpuls naar de servo te maken. Op internet, google even op 'servo tester circuit', staan duizenden schakelingen die misschien wel en waarschijnlijk niet precies doen wat je wilt.
Heb ik ook in verband met dit verhaal gedaan, een schakeling gekozen en gemaakt. Deze keer niet op een breadboard of experimenteer print maar als een 'klompje' van onderdelen.
Onderstaand de schakeling en een YouTube filmpje gemaakt van het resultaat, wat natuurlijk ook op de wisselmotor.nl stand valt te bewonderen.
Ik hoop dat je iets hebt gehad aan dit verhaal.
Conclusie, experimenteren is leuk en leerzaam, maar wil je een bruikbare oplossing voor servo's gebruik an een Servo-decoder met of zonder een DCC aansturing.
Servo’s zijn goedkoop en ook de techniek die nodig is om ze te controleren is eenvoudig. Verder zijn ze compact en dus goed ergens in te bouwen.
Toch kennen servo’s bekende en minder bekende vervelende problemen.
Deze problemen kun je weer opdelen in type of model gerelateerd, dus alle servo’s van dit model, of exemplarisch.
Veel te sterk. Een eigenschap van alle servo’s
Voor het omleggen van een wissel of andere beweging heeft een servo eigenlijk gewoon veel te veel kracht. Dit geeft problemen als er iets mis gaat, denk bijvoorbeeld aan een blokkade van een wissel of een loodsdeur, de servo gaat dan door en drukt het model of de wissel stuk.
Een beetje kun je dit verminderen door de voedingsspanning te verlagen naar minimaal een 3.3V. Ook het gebruik van een verende overbrenging kan helpen.
Door het gebruik van SerVo is dit probleem minder omdat de servo wordt uitgezet na bereiken van de nieuwe positie.
Jitteren.
Servo blijft telkens een klein beetje bewegen en maakt daarbij irriterende onregelmatige geluiden. Dit kan echt heel veel redenen hebben.
Servo lukt het niet om de gewenste positie te bereiken en blijft het proberen. Dit is de ernstigste vorm van jitter, servo is nu aan het verbranden. Te verhelpen door de servo beter af te stellen.
Met SerVo is dit probleem er niet omdat SerVo de stuurpuls na bereiken van de nieuwe positie uitzet, de servo dus stopt.
De stuurpuls is niet schoon met andere woorden de tijdsduur van de puls is niet constant. Lastig te verhelpen, de stuurpuls moet exact de juiste duur hebben, eenvoudige servo controllers zoals een servo tester hebben een analoge timer die deze puls moet maken, deze is niet precies genoeg. Met een arduino of andere AVR is een redelijk resultaat te bereiken bij gebruik van een timer interrupt.
Dit probleem treedt bij gebruik van SerVo niet op.
De potmeter in de servo is niet meer goed (genoeg) waardoor de terugkoppeling onregelmatig wordt en de servo constant blijft corrigeren. Vergelijk dit met de ‘storende’ potmeter in een audiosysteem, dat kraken als je het verdraaid.
Dit is een veel voorkomend exemplarisch probleem, vernieuwen van de servo is de enige oplossing ervoor.
Onverwachte bewegingen
Servo beweegt terwijl het absoluut niet had moeten bewegen. Storingen in de datalijn worden vaak als oorzaak genoemd maar ik heb daar mijn twijfels over, eerder verdenk ik elektromagnetische storingen.
Dit is vaak een type, model probleem. Probeer andere type servo’s te vinden die hier minder last van hebben. Goede ervaringen heb ik met de TZT micro servo 9g SG90. Heel goedkoop in china te verkrijgen of op modelspoorbeurzen.
Super slechte ervaring heb ik met de HXT900.
Je hele modelbaan staat te storen als je er zo eentje aansluit.
Dit probleem wordt met het gebruik van SerVo wel beter, omdat de stuurpuls hard aan de GND wordt gelegd als geen beweging wordt gevraagd, maar helemaal weg is het niet, beste oplossing is goede niet storende servo’s gebruiken.
Bewegingen bij opstarten.
Vaak een model,type probleem, vaak ook exemplarisch. Je zet stroom op de servo en deze maakt een kleine of soms zeer grote beweging. Kan zelfs de verbonden wissel kapot maken met zoveel geweld kan dit gaan.
Dit is gewoon niet op te lossen. Vervang de servo of ga andere modellen gebruiken die hier geen of minder last van hebben.
Meer info:
https://circuitdigest.com/article/servo-motor-basics
(Veel reclame hier, maar de beste uitleg die ik kon vinden)