Werken met servo's

Gepost door Jeroen Vreuls op maandag 9 november 2015 21:36

Servo met een ruitenwissermotor

We gaan nog een servo maken van een ruitenwissermotor. Maar we moeten dan eerst de motor helemaal aanpassen. Ik ga met behulp van wat foto's uitleggen wat er moet gebeuren.

Het aanpassen van de ruitenwissermotor

Koolborstels van de ruitenwissermotorKoolborstels van de ruitenwissermotor

Ik had deze motor al een keer aangepast, dus heb hem voor wat foto's maar even uit elkaar gehaald. Op de foto kan je de borstelbrug zien, deze moet aangepast worden. Als je onder het linker spoeltje kijkt (één van de twee ontstoringsfilters) dan zie je daar twee sleufjes in de borstelbrug zitten, daar heeft nog een koolborstelhouder gezeten. Die zit er standaard op bij de meeste ruitenwissermotoren en is voor het hoge toerental. Die heb je niet nodig, dus die haal ik dan ook altijd weg. Zoals je kan zien op de foto heb je nu twee borstels tegenover elkaar zitten. De spoeltjes staan in serie met de borstels en de nieuwe aansluitdraden. De condensatoren (de gele blokjes) zitten aan de ene kant aan de spoel en aan de andere kant aan de behuizing, maar daar is in principe niets aan veranderd. Dus als je zo'n motor aan wil passen wijst alles eigenlijk voor zich.

Hieronder de foto's van het anker en van het huis met de permanentmagneten.

Anker van de ruitenwissermotorAnker van de ruitenwissermotor

Huis van de ruitenwissermotorHuis van de ruitenwissermotor

Zoals je kan zien op de foto's is zowel het anker als het huis nog in prima staat. Aan het anker hoeft dus niets te gebeuren, tenzij de collector slecht is. Die kan je eventueel iets opschuren (op bijvoorbeeld de draaibank) of iets afdraaien. Hierbij is wel de nodige voorzichtigheid geboden, want als je niet oppast maak je het alleen maar erger. Ook moet je de lamellen (dat zijn de stukjes tussen de kopervlakken van de collector) iets wegfrezen, dus als je de spullen daar niet voor hebt kan je er beter niet aan beginnen.

Dan hebben we het tandwiel waar de worm in loopt (het wormwiel). Zie de foto's hieronder.

Wormwiel van de ruitenwissermotorWormwiel van de ruitenwissermotor

Wormwiel van de ruitenwissermotorWormwiel van de ruitenwissermotor

Daar heb ik een as van 4 mm op gemaakt om bijvoorbeeld een encoderschijfje of een potmeter op te bevestigen. Ik heb op de draaibank een gat van 3,9 mm in de as geboord en uitgeruimd naar 4 mm. In het asje van 4 mm heb ik met een centerpunt kleine putjes geslagen, zodat deze strak in het gat van 4 mm past. Het asje is met Loctite 638 in het gat geperst en zit dus muurvast. Op deze manier kun je makkelijk een potmeter op de as monteren. Je kan de potmeter ook op dezelfde wijze monteren als in het voorbeeld met de RB35 motor natuurlijk, maar ik vind het op deze manier mooier.

Je kunt op deze manier ook makkelijker iets op de hoofdas monteren. Hieronder heb je een foto van het geheel weer gemonteerd.

De complete ruitenwissermotorDe complete ruitenwissermotor

Je ziet op de foto de afdekplaat zitten (dat is de plaat die over de worm en het wormwiel zit). Daar zie je naast de schroefjes putjes zitten. Daar zit de afdekplaat standaard mee vastgeklonken om de motor uit elkaar te halen moet je die dus wegboren. Om de plaat weer vast te zetten heb ik nieuwe gaatjes geboord en schroefdraad (M3) getapt. Op deze manier kan je de afdekplaat weer goed vast zetten.

Je ziet ook een sleuf in de afdekplaat zitten, daar hebben de sleepcontacten aangezeten. Die zijn in kunststof ingegoten en in de afdekplaat geperst. Die moet je dus ook verwijderen, want die worden niet meer gebruikt. Op het wormwiel zaten ook koperplaatjes, ook die mag je verwijderen.

Om het anker in de borstelplaat te plaatsen, plak ik één borstel even met een stukje tape vast. De andere borstel houd ik zelf even op zijn plek. Op deze manier kan je het anker makkelijk in de plaat monteren. Niet vergeten om het plakband weg te halen.

Bij het anker in het magneethuis plaatsen moet je wel even goed opletten. Je moet het anker goed vasthouden anders vliegt hij je magneethuis in, met het gevolg dat je borstels weer uit je borstelhouders schieten en dan kan je weer opnieuw beginnen. Zelf houd ik hem altijd bij de worm vast, dan heb je lekker grip op het geheel en kan er weinig gebeuren. Op deze manier kan je een ruitenwissermotor dus ombouwen. Niet alleen om er een servo mee te maken, maar ook voor andere toepassingen. Het zijn sterke motoren en ze kunnen tegen een stootje.

Hieronder een foto met de potmeter op de motor gemonteerd.

Potmeter op de ruitenwissermotorPotmeter op de ruitenwissermotor

De potmeter is op een aluminium hoeklijntje gemonteerd, de verbinding tussen de potmeter en de as is met een messing koppeling gedaan. Deze koppelingen zijn zo te koop, dus die hoef je niet zelf te maken. De koppeling heeft een gat van 4 en 6 mm. Het geheel staat op twee afstand houders en is daarmee op de motor gemonteerd. Let er wel op dat alles precies uitgelijnd is, anders komt er teveel zijdelingse kracht op de potmeter. Het geheel is nu klaar om gebruikt te worden.

Om een goed werkend geheel te krijgen moet er zo min mogelijk speling op de worm en wormwiel zitten. Vaak zit er op de kopse kant (in de behuizing boven de worm) van de motor een stelschroef, daar kan de axiale speling van het anker en worm mee afgesteld worden. Die speling moet minimaal zijn, anders gaat de motor staan oscilleren. Stel de schroef ook weer niet te strak af, anders loopt de motor te zwaar.

Voordat je de motor aansluit op de besturing kan je het beste één van de stelschroeven (waar de potmeter mee op de as zit) even losgezet worden. Dit is om te controleren of de potmeter goed aangesloten zit. Als je de bedienpotmeter verdraait moet de motor in een bepaalde richting gaan lopen. Als je nu de potmeter die op de as zit in dezelfde richting draait als de motor loopt, moet de motor op een bepaald punt stoppen. Doet de motor dat niet dan moet je de aansluitdraden van de motor omdraaien. Als alles wel goed werkt, maar je wil dat de motor de andere kant op moet lopen, dan moet je de aansluitdraden van de motor omdraaien en de plus en min draden van de potmeter.

De software

Hieronder het programma voor de servo regeling.

Device 16F887             ; Processor type
 
Xtal 10                   ; Crystal 10MHz
 
Asm                       ; Config settings
CONFIG_REQ
__CONFIG _CONFIG1, HS_OSC & WDT_OFF & DEBUG_OFF & FCMEN_OFF & LVP_OFF & IESO_OFF & BOR_OFF & CPD_OFF & CP_OFF & MCLRE_OFF & PWRTE_ON
__CONFIG _CONFIG2, WRT_OFF & BOR40V
EndAsm
 
All_Digital true          ; Alle poorten digitaal
 
Declare Adin_Res = 8      ; resolutie 8 bits
Declare Adin_Tad = frc    ; set RC osc
Declare Adin_Stime = 50   ; sample tijd 5
 
Declare LCD_RSPin PORTD.2 ; Reset display poort D.2
Declare LCD_ENPin PORTD.3 ; Enable display poort D.3
Declare LCD_DTPin PORTD.4 ; Data display poort D.4 t/m D.7
 
Declare CCP1_Pin PORTC.2  ; HPWM 1 op poort C.2
 
Symbol UIT1 = PORTC.0     ; Naar ingang H-brug
Symbol UIT2 = PORTC.1     ; Naar ingang H-brug
 
Symbol VERSTERKING = 140  ; Instelling reactie snelheid
Symbol FREQUENTIE = 8000  ; Instelling frequentie
Symbol HYSTERESIS = 2     ; Instelling hysteresis
 
Dim WAARDE_1 As Byte      ; Variabele in programma
Dim WAARDE_2 As Byte      ; Variabele van potmeter
 
Cls                       ; Wis display
 
DelayMS 500               ; Pauze 0.5 sec
 
Clear                     ; Wis geheugen
 
         ;543210          ; Hulpregel poort A
PORTA  = %000000          ; Maak poort A laag
TRISA  = %111111          ; Poort A I/O
 
         ;543210          ; Hulpregel poort B
PORTB  = %000000          ; Maak poort B laag
TRISB  = %000000          ; Poort B I/O
 
         ;76543210        ; Hulpregel poort C
PORTC  = %00000000        ; Maak poort C laag
TRISC  = %00000000        ; Poort C I/O
 
         ;76543210        ; Hulpregel poort D
PORTD  = %00000000        ; Maak poort D laag
TRISD  = %00000000        ; Poort D I/O
 
         ;210             ; Hulpregel poort E
PORTE  = %000             ; Maak poort E laag
TRISE  = %111             ; Poort E I/O
 
         ;76543210        ; Hulpregel analoog
ADCON0 = %00000001        ; ADCON0 register analoog
 
         ;543210          ; Hulpregel analoog poort B
ANSELH = %000000          ; ANSEL register analoog poort B
 
;-----------------------------------------------
; PROGRAMMA SERVOREGELING MET RUITENWISSERMOTOR.
;-----------------------------------------------
 
RUN:
    WAARDE_1 = ADIn 0
    WAARDE_2 = ADIn 1
 
    HPWM 1,VERSTERKING,FREQUENTIE
 
    ;Print At 1,1,Dec3 WAARDE_1,
    ;Print At 2,1,Dec3 WAARDE_2,
 
    If WAARDE_1 > WAARDE_2 + HYSTERESIS Then
        UIT1 = 1
        UIT2 = 0
    Else
        UIT1 = 0
        If WAARDE_1 < WAARDE_2 Then
            UIT2 = 1
            UIT1 = 0
        Else
            UIT2 = 0
        EndIf
    EndIf
GoTo RUN
 
End

Zoals je ziet is het maar een klein programma. De werking is als volgt: op de analoge ingang 0 wordt de bedienpotmeter aangesloten en op analoge ingang 1 de potmeter die op de motor-as zit. Deze twee waardes worden met elkaar vergeleken en als de waardes gelijk zijn zal de motor stilstaan. De HPWM uitgang zet een PWM-signaal op de eindtrap en verzorgt de draaisnelheid van de as. Hoe hoger de PWM waarde is, hoe sneller de motor-as verdraait. Ik heb er versterking achter gezet, omdat ook de stroom toeneemt als de PWM waarde hoger ingesteld wordt.

Symbol VERSTERKING = 140
Symbol FREQUENTIE = 8000
Symbol HYSTERESIS = 2

Achter versterking, frequentie en de hysterese kan de waarde aangepast worden. De frequentie staat hier op 8 kHz, kan je aanpassen maar is niet echt nodig. Met de versterking en de hysterese kan je wat spelen, net zolang tot de motor netjes draait. Als alles goed reageert hoor je een knerpend geluid tijdens het verdraaien van de motoras.

Let op dat als je een hevel op de motoras zet, je er niet met je vingers tussenkomt. Zo'n motor is behoorlijk sterk.

Ik heb ook een LCD aangesloten voor het testen van de servo. Als alles goed loopt kan de printfunctie uitgezet worden, zoals in het voorbeeld gebeurd is met de haakjes voor de Print opdracht.

Dit programma kan ook gebruikt worden voor de servo met de RB35 motor.

De eindtrap

Hieronder het schema van de eindtrap voor de servo regeling.

Schema eindtrapSchema eindtrap

De eindtrap mag gebruikt worden met een voedingsspanning tussen de 9 en 30 V DC. Let op: de schakeling is niet tegen ompolen beveiligd! De H-brug kan opgebouwd worden met transistoren van het type TIP142 en TIP147, of met het type MJ11016 en MJ11015. Ik heb de TIP versie gebruikt, en die zijn prima voor ruitenwissermotoren. Voor motoren tot 200 Watt kan je de MJ11016 en MJ11015 gebruiken.

De aansluitingen van de microcontroller naar de eindtrap zijn: UIT1 (PORTC.0) komt op (TTL INGANG- LINKSOM), UIT2 (PORTC.1) komt op (TTL INGANG RECHTSOM), HPWM 1 (PORTC.2) komt op (TTL- INGANG PWM SIGNAAL) en de 0VDC (GND) van de controller komt op de 0VDC (GND) van de eindtrap.

De stroommeet uitgang van de eindtrap wordt hier niet gebruikt, maar als je daar mee wilt experimenteren kan dat. De uitgang komt dan rechtstreeks op een analoge ingang van de controller te zitten. Op deze manier kan je dan nog stroomcompensatie toepassen of de eindtrap beveiligen tegen overstroom.

De H-brug kan ook opgebouwd worden met MOSFET's, dat schema kan je terugvinden op Circuit Online. In dit artikel wordt ook uitgelegd hoe je met MOSFET's kan werken, er staan allerlei schema voorbeelden met MOSFET's beschreven.

Voor deze H-brug is ook een print gemaakt. Hieronder de print van de eindtrap.

Print van de eindtrapPrint van de eindtrap

De middenpootjes (de drain) van de IRF540’s worden weggeknipt, het koelvlak (wat ook de drain is) wordt op het kopervlak van de print geschroefd met M3 schroeven. Hetzelfde is gebeurd met de spanningsregelaar, de 78S05. Let erop dat de transistoren die op het koelblok zitten (de TIP142 en de TIP147) geïsoleerd gemonteerd worden met isolatieplaatjes.

Je kan ook kiezen om de transistoren met veerklemmen op het koelblok vast te zetten, je hebt dan wel een koelblok nodig waar je de veren in kan drukken. Dat werkt een stuk makkelijker dan met M3 schroeven en met isolatieringen. Maar dat is een eigen keuze natuurlijk. Ik heb de transistoren met schroeven en de isolatieringen vastgezet.

Voor de rest wijst het voor zich, denk ik. Hieronder nog een paar foto's van de eindtrap, onder het koelblok zit de rest van de componenten.

De eindtrap opgebouwdDe eindtrap opgebouwd

De eindtrap opgebouwdDe eindtrap opgebouwd