Hall Effect Sensor
Hall -effek sensors kan die teenwoordigheid van magneetveld opspoor en 'n uitsetspanning lewer wanneer een opgespoor word. Hall -effek sensors, wanneer dit saam met Lineêre aktuators, word tipies in die ratkas van die aktuator geplaas, saam met 'n magnetiese skyf. Namate die lineêre aktuator uitbrei of terugtrek, draai hierdie skyf verby die Hall -effeksensor wat veroorsaak dat die sensor 'n digitale uitset lewer in die vorm van 'n polsspanning. Hierdie pulse kan getel word en gebruik word om te bepaal hoe ver die aktuator beweeg het.
Posisionele terugvoer van 'n Hall Effect -sensor
Die nadeel van die gebruik van 'n Hall Effect -sensor vir posisionele terugvoer is dat hulle nie 'n absolute posisie meet nie. In plaas daarvan produseer hulle pulse wat getel kan word om te bepaal hoe ver die aktuator beweeg het. Om hierdie pulse te gebruik vir posisionele terugvoer, moet u 'n mikro-beheerder om die geproduseerde pulse te tel. Om dit te kan doen, moet u gebruik maak van eksterne onderbrekingspennetjies van u mikro-beheerder om hierdie pulse te tel soos dit voorkom. Eksterne onderbrekings is penne wat 'n verandering in spanning opspoor en in ons geval gebruik kan word om die spanningspuls vanaf die Hall Effect -sensor op te spoor. U moet die datablad van u mikro-beheerder raadpleeg om te verseker watter penne van u mikro-beheerder as onderbrekingspenne gebruik kan word. Gebruik 'n Arduino Uno Pins 2 en 3 kan byvoorbeeld gebruik word vir eksterne onderbrekings. Nadat u 'n toepaslike onderbrekingspen gekies het, kan u die draad van die Hall Effect -sensor -uitset aan daardie pen koppel en die insetspanning aan 5V en grond aan 'n grondpen koppel.
Die onderstaande kode -voorbeeld toon hoe om 'n onderbreking in die Arduino IDE op te stel, waar die onderbreking aan die stygende rand van die spanningspuls geaktiveer sal word. U kan u onderbreking opstel om op verskillende punte in 'n spanningsverandering geaktiveer te word en moet u datablad van die mikro-beheerder raadpleeg om die beskikbare opsies te bepaal. Die laaste aspek wat u moet doen om u onderbreking op te stel, is om u onderbrekingsdiensroetine te skryf, wat die funksie is wat die kode sal loop elke keer as die onderbreking geaktiveer word. Hierdie funksie moet kort wees en slegs eenvoudige take verrig, soos om die aantal pulse uit ons Hall Effect -sensor te tel. Die funksie Countsteps () In die onderstaande kode word gebruik om die aantal pulse van die Hall Effect -sensor te tel.
Om hierdie pulse te gebruik om 'n posisionele waarde te bepaal, moet u die vorige posisie van die lineêre aktuator ken en die rigting waarin die lineêre aktuator beweeg. U mikro-beheerder sal al weet watter manier u lineêre aktuator dryf, U kan dus eenvoudig 'n veranderlike opstel om die rigting van die aktuator in u kode op te spoor wat gebruik sal word om te bepaal of u die pulse van u vorige posisie byvoeg of aftrek. Sodra u u posisie opgedateer het, moet u die getelde pulse op nul stel. Die onderstaande kode -voorbeeld toon u 'n funksie wat die posisie opdateer op grond van die aantal pulse wat getel is. Sodra u 'n posisie het in terme van pulse, kan u in duim omskakel met behulp van die polsslag per duim spesifikasie van u lineêre aktuator. In die kode -monster hieronder is die polsslag per duim 3500.
Homing u lineêre aktuator
Om posisionele terugvoer van 'n Hall Effect -sensor akkuraat te gebruik, moet u altyd die beginposisie van u lineêre aktuator ken. Alhoewel u die eerste keer u stelsel aanskakel, sal u mikro-beheerder nie kan sien of die aktuator uitgebrei is of nie. Dit sal van u vereis om u lineêre aktuator in 'n bekende posisie te huisves. Om u lineêre aktuator te huisves, moet u dit na 'n bekende posisie ry, soos volledig teruggetrek word. U kan ook gebruik maak van Eksterne limietskakelaars Om u bekende posisie op 'n ander plek as volledig uitgebrei of teruggetrek te stel. Met behulp van die Arduino -kode hieronder as voorbeeld, wil ons 'n lus opstel wat ons lineêre aktuator na u bekende posisie sal dryf, in hierdie geval volledig teruggetrek. Ons weet dat u op ons bekende posisie is, omdat die onderbreking van die Hall Effect -sensor nie sal aktiveer nie. In hierdie geval kyk ons of die stappe -veranderlike verander het om te bepaal of die onderbreking geaktiveer is. Ons moet ook seker maak dat genoeg tyd verbygegaan het om te verwag dat die onderbreking geaktiveer sal word, want hiervoor maak ons gebruik van die millis () -funksie wat die tyd in millisekondes lewer sedert die kode begin het, en ons vergelyk dit met die vorige tydstempel . Nadat ons vasgestel het dat die lineêre aktuator op ons tuisposisie is, hou ons op om die aktuator te bestuur, stel die stappe -veranderlike weer in en verlaat ons die lus.
Die hantering van valse snellers
Alhoewel Hall Effect -sensors nie so sensitief is vir elektriese geraas soos 'n potensiometer nie, kan elektriese geraas steeds die uitsetsein beïnvloed. Switch-bons kan ook 'n probleem wees met Hall Effect-sensors wat vals pulse kan veroorsaak wat getel moet word, wat sal beïnvloed hoe ver u mikro-beheerder dink dat u lineêre aktuator beweeg het. 'N Paar ekstra pulse sal nie die posisionering baie beïnvloed nie, want daar is 1000s pulse per duim, maar mettertyd kan dit 'n groter probleem wees. U kan hierdie kwessies bekamp deur gebruik te maak van 'n interne timer om vals snellers uit te filter. Aangesien u kan bepaal hoe gereeld u sou verwag dat nuwe pulse opgespoor sou word, kan u uitfilter as die onderbreking deur geraas veroorsaak word. In die onderstaande kodemonster is Trig-Delay die tydvertraging tussen elke polsslag. As die onderbreking voor hierdie vertraging geaktiveer is, sal die polsslag nie getel word nie.
Die tydsduur van hierdie vertraging sal wissel op grond van u aansoek, maar as dit te kort is, sal dit nie die geraas behoorlik filter nie, en as dit te lank is, sal dit werklike pulse van die lineêre aktuator mis. Die snelheid van die lineêre aktuator sal ook hierdie vertraging beïnvloed, en as u die snelheid wil aanpas, moet hierdie veranderlike moontlik verander om aan te pas by die nuwe frekwensie van die verwagte pulse. Om 'n presiese vertraging tussen elke polsslag akkuraat te bepaal, kan u 'n logiese ontleder gebruik om die werklike sein vanaf die Hall Effect -sensor te sien. Alhoewel dit nie in die meeste toepassings nodig is nie, kan u 'n presiese vertraging bepaal as u baie presiese posisionering benodig.
'N Ander manier om vals snellers te bekamp, is om die posisionele waarde reg te stel elke keer as die aktuator 'n bekende posisie bereik. Soos die lineêre aktuator, as u die lineêre aktuator na 'n volledig teruggetrekte of uitgebreide posisie gedryf het, of as u gebruik maak van Eksterne limietskakelaars, jy sal weet hoe ver die aktuator beweeg het. Soos u weet hoeveel stappe die Hall Effect -sensor moet stuur om u bekende posisie te bereik, kan u die waarde eenvoudig regstel as ons dit bereik. In die onderstaande kodemonster word dit gedoen vir die volledig uitgebreide en volledig teruggetrekte posisies. Aangesien die aktuator nie sal beweeg sodra dit een van die posisies bereik nie, as ons die aktuator probeer dryf en die posisiewaarde nie verander nie, weet ons dat ons op die perk is. Hierdie metode bied 'n praktiese oplossing om te verseker dat u posisionele waarde akkuraat bly, veral as u u aktuator op 'n sekere punt ten volle uittrek of ten volle uitbrei. U kan hierdie metode gebruik in samewerking met die metode hierbo beskryf, wat die akkuraatheid van u posisionele waarde moet help handhaaf.
Opsomming
Die gebruik van 'n Hall Effect -sensor vir posisionele terugvoer gee baie groter resolusie in vergelyking met die terugvoer van 'n potensiometer. Aangesien daar 1000s pulse per duim van beweging kan wees, bied Hall Effect -sensors noukeurigheid en betroubaarheid in die posisionering van u lineêre aktuator. Hall Effect -sensors bied ook 'n groter vermoë om te verseker dat veelvuldige lineêre aktuators gelyktydig saam beweeg, aangesien die poltellings meer akkuraat is as die veranderende spanning van die potensiometer. Gebruik ons Fa-sync-x Aktuator -beheerder, u kan selfs verseker dat die aktuators eenstemmig beweeg, ongeag die las. Vir Diyers kan u kyk hoe sorg dat u aktuators eenstemmig met behulp van 'n Arduino beweeg hier.
Hieronder is die volledige voorbeeldkode wat in hierdie blog gebruik word en is gebou om 'n lengte van 14 ”beroerte te beheer Bullet Series 36 Cal. Lineêre aktuator. Die lineêre aktuator word aangedryf met behulp van 'n Motorbestuurder, wat u kan leer hoe om op te stel hier.
[1] Monari, G. (Junie 2013) Begrip van resolusie in optiese en magnetiese enkodeerders. Ontsluit van: https://www.electronicdesign.com/technologies/components/article/21798142/understanding-resolution-in-optical-and-magnetic-encoders