Tervetuloa Progressive Automationsin uuteen tekniseen blogiin! Tänään kerromme, miten Arduino voi kommunikoida PA-04-HS-mallimme kanssa.
Hall-efektianturi on elektroniikkakomponentti, jonka avulla voidaan ohjata tarkasti lineaarista toimilaitetta. Se sijoitetaan yleensä vaihteiston sisään magneettilevyn viereen. Kun lineaarinen toimilaite liikkuu, magneettilevy pyörii ja synnyttää magneettikentän, joka kulkee Hall-efektianturin läpi. Tämä muodostaa jännitepulssin, jota voidaan laskea toimilaitteen sijainnin, nopeuden tai suunnan määrittämiseksi. Näiden signaalien hyödyntämiseksi tarvitaan kuitenkin mikro-ohjain, kuten Arduino tai Raspberry Pi. Tässä artikkelissa sukellamme toimilaitteen käyttöön Raspberry Pi:llä ja siihen, miten lineaarista toimilaitetta ohjataan Arduinolla. Kuten mainittu, molemmat mikro-ohjaimet demonstroidaan Progressive Automationsin PA-04-HS Hall-efekti -lineaarisella toimilaitteella.
Sijainnin, nopeuden ja suunnan laskenta
Ennen yksityiskohtiin menemistä on tärkeää ymmärtää, miten Hall-efektianturilta tulevia signaaleja käytetään lineaarisen toimilaitteen sijainnin, nopeuden ja suunnan laskemiseen. PA-04-HS-mallissa Hall-efektianturi on suunniteltu tuottamaan kaksi signaalia, jotka ovat jommassakummassa kahdesta binaaritilasta: päällä tai pois. Nämä kaksi signaalia nousevat ja laskevat sähkömoottorin pyöriessä, niiden välillä on 90 asteen vaihe-ero. Ei hätää, jos et vielä tiedä, miten tämä toteutetaan mikro-ohjaimen luettavaksi koodiksi – annamme sen sinulle myöhemmin tässä artikkelissa.
Sijainti
Lineaarisen toimilaitteen sijainnin määrittäminen edellyttää laskelmia Hall-efektisignaalien ja itse toimilaitteen mittausten perusteella. Toimilaitteen varren sijainnin kaava tarvitsee toimilaitteen iskun pituuden sekä kokonaisreunojen lukumäärän, jotka havaitaan täysin sisäänvedetystä täysin ulosvedettyyn. Näillä arvoilla voidaan käyttää seuraavaa kaavaa:

Yllä olevan kaavan “täysin sisäänvedosta lähtien havaitut” reunat alkavat nollasta ja kasvavat yhdellä, kun reuna havaitaan eteenpäin suuntautuvassa liikkeessä, ja pienenevät yhdellä, kun reuna havaitaan taaksepäin suuntautuvassa liikkeessä.
Nopeus
Toimilaitteen nopeutta voidaan mitata Hall-efektisignaalien avulla toteuttamalla ohjelmaan ajastin. Ajastinta käytetään havaituiden reunojen välisen ajan mittaamiseen. Lisäksi tarvitaan laskettu arvo iskun muutoksesta per havaittu reuna. Näillä arvoilla voidaan käyttää seuraavaa kaavaa:

Suunta
Toimilaitteen liikkeen suunta voidaan päätellä tarkastelemalla kahden signaalin (signaali A ja B) nykytilaa ja vertaamalla sitä edelliseen tilaan. Tämä johtuu siitä, että signaalien etenevä/jäljessä oleva vaihtelee toimilaitteen liikesuunnan mukaan.


Kumpi on parempi – Arduino vai Raspberry Pi -mikro-ohjain?
Kyse ei ole siitä, kumpi on yleisesti parempi, vaan siitä, kumpi sopii paremmin aiottuun käyttökohteeseesi. Arduino on parempi valinta, jos sovelluksesi päätehtävä on lukea Hall-efektianturin data ja palauttaa tietty joukko ohjeita.
Raspberry Pi taas on käytännöllisempi tehtäviin, joita tavallisesti suoritettaisiin henkilötietokoneella. Lisäksi Raspberry Pi yksinkertaistaa työnkulun hallintaa monissa tilanteissa, kuten internet-yhteydessä tai lineaarisen toimilaitteen ohjaamisessa mobiililaitteella.
Toisinaan on kätevää käyttää molempia mikro-ohjaimia eri tehtäviin. Raspberry Pi voi käyttää koodia ja säätää erilaisia parametreja, jotka voidaan sen jälkeen lähettää Arduinolle ohjaamaan lineaarista toimilaitetta kerätyn tiedon perusteella.
Sukelletaan yksityiskohtiin ja katsotaan, miten lineaarista toimilaitetta ohjataan Arduinolla.
Arduino ja lineaariset toimilaitteet

Sovelluksesta riippuen voit digitaalisten signaalien kanssa valita kyselyn (polling) tai keskeytyksen (interrupt) käytön mikro-ohjaimella. Kysely on ohjelmoitu menetelmä, jossa mikro-ohjain tarkistaa säännöllisesti tulon tilan nähdäkseen, onko tapahtunut muutosta. Keskeytykset ovat laitteistomekanismi, joka siirtää välittömästi mikro-ohjaimen ohjelman huomion, kun tulon tila muuttuu.
Demonstraatiota varten käytämme keskeytysmenetelmää, jotta tiedämme tarkan hetken, jolloin signaali vaihtaa tilaa. Arduino-mikro-ohjaimella keskeytystä käytetään luomalla keskeytyspalvelurutiini (Interrupt Servicing Routine, ISP).
Tätä tarvitset:
Arduinon ja shield-komponenttien johdotus
Hall-efektiantureissa on 4 johdinta: 5V, GND ja 2 signaalijohtoa. Kukin signaalijohto tuottaa pulsseja moottorin pyöriessä. MegaMotoon liitetään lisäksi kaksi toimilaitteen johtoa. Käytämme vain toista Hall-efektisignaaleista.
Kytke lineaarinen toimilaite Arduinoon ja MegaMotoon näin:
- Punainen anturijohto Arduinon 5V-nastaan.
- Musta anturijohto Arduinon GND-nastaan.
- Keltainen/oranssi johto Arduinon nastaan 2 tai 3 (jos käytät muuta Arduinoa, varmista, että nastat tukevat keskeytyksiä).
- Punainen toimilaitteen johto MegaMoton MOTA-liitäntään.
- Musta toimilaitteen johto MegaMoton MOTB-liitäntään.
Kun moottorit on johdotettu oikein piirilevyihin, kytke virtalähde näin:
- 12V BAT+:aan.
- GND BAT-:aan.
- 12V Arduinon Vin:iin.
- Kytke kaksi painiketta Arduinon nastojen 7 ja 8 väliin ja liitä ne GND:hen.
Keskeytykselle on 4 laukaisutapaa: Rising, Falling, High ja Low. Vaihtamalla liipaisua voit säätää, milloin keskeytys tapahtuu. Rising on, kun nasta näkee siirtymän Low→High, Falling kun High→Low, Low kun nasta on matala ja High kun nasta on korkea.
Täyden Arduino-koodin löydät oppaastamme: Hall-efekti -lineaaritoimilaitteen Arduino-koodi
Koodi liikuttaa toimilaitetta eteen- tai taaksepäin tietyn määrän, kun painat nastan 7 tai 8 painikkeita (aktiivinen LOW). Mukana on myös homing-toiminto. Tämä on tärkeää, koska jos ajat moottoria pitkään edestakaisin, laskuri saattaa menettää pulsseja ja sijainti alkaa hiljalleen lipsua. Homing-toiminto siirtää lineaarisen toimilaitteen takaisin tunnettuun asemaan, jotta laskuri voidaan nollata.
Raspberry Pi -toimilaite
Miten toimilaite kytketään Raspberry Pi 2:een, 4:ään tai uudempiin malleihin? Lineaarisen toimilaitteen ohjaus Raspberry Pi:llä on helppoa ja onnistuu internetin yli, mikä mahdollistaa langattoman ohjauksen. Seuraa tämän oppaan vaiheita nähdäksesi tarkalleen miten: Raspberry Pi -lineaaritoimilaitteen ohjaus.
Raspberry Pi 4:ää käytetään palvelinohjelmiston ajamiseen ja käskyjen vastaanottamiseen lineaarisen toimilaitteen ohjausta varten. Tämä opas ei kuitenkaan hyödynnä Hall-efektianturia. Jos haluat käyttää sitä, Arduino-kortti voidaan liittää lineaariseen toimilaitteeseen ja Raspberry Pi:hin tiedon langattomaan lähetykseen/vastaanottoon. Vaikka Raspberry Pi:tä voidaan käyttää suoraan myös anturidatan lukemiseen Arduinon tapaan, se voi olla ylimitoitettua, jos ohjaat vain muutamaa lineaarista toimilaitetta.
Usean lineaarisen toimilaitteen ohjaus

Jos tarvitset usean lineaarisen toimilaitteen ohjausta Raspberry Pi:llä tai Arduinolla, tarvitset muutamia lisäkomponentteja ja koodia on muokattava. Kaksi tai useampi lineaarinen toimilaite voidaan synkronoida seuraamalla Hall-efektianturin pulsseja; jos toimilaitteiden laskurit erkanevat liikaa toisistaan, kukin toimilaite hidastaa tasatakseen sijainnit.
Katso koko ohjesarja täältä: Ohjaa useita lineaarisia toimilaitteita mikro-ohjaimella
Vaihtoehtoisesti, jos synkronointi ei ole osa käyttökohdettasi, käytä yhtä Arduinoa yhdelle tai kahdelle toimilaitteelle, riippuen vapaiden keskeytysnastojen määrästä. Jos haluat ohjata useampia toimilaitteita, voit käyttää lisää Arduino-kortteja tai hankkia Arduino-shieldin, jossa on enemmän keskeytysnastoja.
Yhteenveto
Jos haluat haastetta, voit kokeilla myös muita tapoja ohjata liikettä Arduinolla ja lineaarisilla toimilaitteilla, kuten näppärää PID-koodia, jonka näet täällä: Lineaarisen toimilaitteen PID-ohjaus. Hall-efektianturi lineaarisen toimilaitteen sisällä, kuten PA-04-HS, tarjoaa lisätason hallintaa, joka on helppo ottaa käyttöön Arduinon tai Raspberry Pi:n avulla. Tarvitsetpa vain anturidatan lukemista tai haluat viedä lineaarisen toimilaitteesi seuraavalle tasolle viemällä sen verkkoon, Hall-efektianturi yhdistettynä valitsemaasi mikro-ohjaimeen on oikea ratkaisu.
Jos sinulla on kysyttävää tämän artikkelin sisällöstä tai haluat keskustella mahdollisista tuoteratkaisuista, ole hyvä ja ota meihin yhteyttä – autamme mielellämme!