Hoe om terugvoer van 'n optiese senso...
Hoe om terugvoer van 'n optiese sensor te lees
Gepos deur Robbie Dickson aan Junie 11, 2020
Optiese sensors, wanneer dit gebruik word met lineêre aandrywers,funksie baie soortgelyk aan saal-effek sensors, behalwe as hulle lig opspoor in plaas van magnetiese velde . Optiese sensors werk deur die gebruik van lig van 'n LED of 'n ander ligbron wat deur 'n enkodeerskyf gelei word. Hierdie koderingsskyf is in die gleuf gesit om die lig periodiek deur te laat. Aan die ander kant van die skyf is 'n fotodetektor wat die lig opspoor wanneer dit deur die gleuwe in die skyf gaan en 'n uitset skep . Terwyl die aandrywer beweeg, draai die kodeerderskyf en word die lig opgespoor deur die fotodetektor wat 'n vierkantige golf spanningspulse lewer. Hierdie pulse kan soortgelyk aan die pulse van 'n saal-effekteksensor gebruik word om vas te stel hoe ver die aandrywer beweeg het.
Posisionele terugvoer vanaf 'n optiese sensor
Aangesien optiese sensors in terme van hul uitset baie soortgelyk is aan hall-effek-sensors, sal hierdie blogpos kortliks bespreek hoe om hul uitsette te lees vir posisionele terugvoer. As u meer besonderhede soek, kyk na ons pos oor hoe om posisionele terugvoer van 'n saal-effekteksensor te lees, aangesien dit soortgelyk is.
Net soos sensore vir saaleffekte, sal optiese sensors drie penne hê om aan te sluit; die een is die insetspanning, die ander is die grond, en laastens is die een die uitsetsein. Om die pulse op die uitset vir posisionele terugvoer te gebruik, moet u a gebruik mikrobeheerder om die geproduseerde pulse te tel. U sal die eksterne onderbrekingspennetjies van u mikrobeheerder wil gebruik om hierdie pulse akkuraat te tel. Aangesien eksterne onderbrekings veroorsaak word deur 'n verandering in spanning, kan dit gebruik word om elke pols op te spoor soos dit voorkom. Nadat u u onderbreking in die kode van u mikrobeheerder ingestel het, moet u 'n onderbrekingsdiensroetine opstel wat die pulse tel soos dit voorkom. Die funksie countSteps () in die onderstaande kode-voorbeeld word gebruik om die aantal pulse van die optiese sensor te tel.
Om hierdie pulse te gebruik om 'n posisiewaarde te bepaal, moet u die vorige posisie van die lineêre aandrywer ken en die rigting waarin die lineêre aandrywer beweeg. As u bepaal in watter rigting u lineêre aandrywer beweeg, kan u eenvoudig 'n veranderlike opstel om die rigting van die aandrywer in u kode op te spoor. Hierdie veranderlike kan gebruik word om te bepaal of u die pulse van u vorige posisie moet optel of aftrek. Nadat u u posisie opgedateer het, moet u die getelde pulse op nul stel. Die onderstaande kode-voorbeeld wys u 'n funksie wat die posisie opdateer op grond van die getelde pulse. Sodra u 'n posisie in terme van pulse het, kan u dit in sentimeter omskakel met behulp van die puls per duim-spesifikasie van u lineêre aandrywer.
Om posisionele terugvoer van 'n optiese sensor akkuraat te kan gebruik, moet u altyd die beginposisie van u lineêre aandrywer ken. Alhoewel die eerste keer dat u die stelsel aanskakel, kan u mikrobeheerder nie weet of die aandrywer verleng is of nie. Dit sal vereis dat u u lineêre aandrywer in 'n bekende posisie moet huisves. Om u huis toe te maak lineêre aandrywer, sal u dit na 'n bekende posisie moet ry, soos volledig ingetrek. Met behulp van die onderstaande Arduino-kode, het ons 'n WHILE-lus opgestel wat ons lineêre aandrywer na ons bekende posisie sal dryf. In hierdie voorbeeld sal ons weet dat ons op ons bekende posisie is deur te kyk of die onderbreking al dan nie veroorsaak is deur te kyk of die stapsveranderlike verander het. Ons moet ook seker maak dat genoeg tyd verby is om te verwag dat die onderbreking geaktiveer moet word, hiervoor maak ons ​​gebruik van die millis () -funksie en vergelyk dit met die vorige tydstempel. Nadat ons vasgestel het dat die lineêre aandrywer by ons tuisposisie is, hou ons op om die aandrywer te bestuur, stel ons die stapveranderlike weer in en verlaat ons die WHILE-lus.
Die hantering van valse snellers
Alhoewel optiese sensors nie so sensitief is vir elektriese geraas as potensiometers nie, kan elektriese geraas en skakelaars weerkaats steeds die uitsetsein beïnvloed en kan dit veroorsaak dat vals pulse getel word. 'N Paar ekstra pulse sal die posisionering nie baie beïnvloed nie, maar mettertyd kan dit 'n groter probleem wees. U kan hierdie probleme bestry deur gebruik te maak van 'n interne timer om vals snellers uit te filter. Aangesien u kan bepaal hoe gereeld u sal verwag dat nuwe pulse opgespoor word, kan u uitfilter wanneer die onderbreking deur geraas veroorsaak is. In die onderstaande kode-voorbeeld is trigDelay die tydsvertraging tussen elke pols. As die onderbreking voor hierdie vertraging veroorsaak is, sal die pols nie getel word nie. Die tydsduur van hierdie vertraging sal afhang van u toepassing, maar as dit te kort is, sal die geraas nie behoorlik uitgefiltreer word nie en as dit te lank is, sal die werklike pulse van die optiese sensor mis.
Nog 'n manier om valse snellers te bestry, is om die posisionele waarde reg te stel elke keer as die aandrywer 'n bekende posisie bereik. Soos om die lineaire aandrywer te besoek, sal u weet hoeveel pulse dit benodig om die posisie te bereik, as u die lineêre aandrywer na 'n volledig teruggetrekte of verlengde posisie gedryf het of as u eksterne eindskakelaars gebruik. U kan dan die posisionele waarde regstel deur die waarde te gebruik wanneer u die bekende posisie bereik. In die onderstaande kode-voorbeeld word dit gedoen vir die posisies wat volledig uitgebrei en volledig ingetrek is. Hierdie metode bied 'n praktiese oplossing om te verseker dat u posisionele waarde akkuraat bly.
Optiese sensors wat gebruik word vir posisionele terugvoer, bied groter akkuraatheid en resolusie in vergelyking met sensore en potensiometers vir saaleffekte, terwyl hulle dieselfde sterk- en nadele het as sensors vir saaleffekte. Alhoewel hulle nie die absolute posisie meet nie en 'n bekende beginposisie benodig om 'n posisionele waarde te bied, maak die groot aantal pulse per duim voorsiening vir betroubaarheid in posisionering en verseker dit dat verskeie lineaire aandrywers gelyktydig beweeg. Gebruik van ons FA-SYNC-X aandrywerbeheerder of tdeur addisionele kode, u kan selfs verseker dat die aandrywers in eenheid beweeg, ongeag die lading.
Kyk na ons blog op vir 'n volledige voorbeeld van die kode hoe om posisionele terugvoer van 'n saal-effekteksensor te lees soveel sal soortgelyk wees. Waardes soos pols per duim en vertragings tussen die pulse is enkele van die veranderinge wat u moet aanbring om daardie kode te gebruik om u optiese sensor akkuraat te gebruik.
 Paschotta, R. Artikel oor optiese sensors. Ontvang vanaf:https://www.rp-photonics.com/optical_sensors.html