Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
„Tinee9“grįžo su nauju moduliu. Šis modulis vadinamas „Resolver“moduliu.
Variklio valdymo pasaulyje yra įvairių tipų ar metodų, kaip aptikti padėtį. Šie metodai apima salės jutiklius, XY jutiklius, rezoliuciją, RVDT, LVDT, lauko režisierius, potenciometrą ir tt Priklausomai nuo to, kaip kiekvienas iš šių jutiklių yra sumontuotas, jūs netgi galite nustatyti savo absoliučią padėtį net neišsaugodami paskutinės pozicijos atmintyje.
Mano naudojamas modulis gali būti naudojamas RVDT, LVDT ir „Resolver“demoduliavimui, tačiau šiandienos tikslu bus naudojamas demoduliavimas.
Techninis supratimas: ekspertų lygis
Mokomoji programa „Plug and Play“: vidutinis lygis
Prekės
1: „Arduino Nano“
2: Sprendimo modulis
3: Duonos lenta
4: 9.0 voltų baterija arba NScope
5: Sprendėjas
6: 10x duonos lentos trumpikliai
1 žingsnis: Sprendimo modulis
Yra keletas dalykų, kuriuos galite padaryti naudodamiesi rezoliuciniu varikliu, kad galėtumėte demoduliuoti variklį, kad pakeistumėte variklį, ir jūs galite gauti absoliučią padėtį, jei neperžengsite nulinio taško ribų, ir galite nustatyti greitį iš variklio.
Daugiausia mačiau, kaip jie naudojami, yra erdvėlaivių, vairalazdžių, raketų peleko ar fotoaparato valdymo srityse.
Jie paprastai yra šiek tiek brangesni nei puodo ar salės jutiklis, tačiau jie suteikia neįtikėtiną skiriamąją gebą.
2 veiksmas: sąranka
1: Pirmiausia turėsite pastatyti savo arduino nano ant duonos lentos
2: Turite prijungti 5 V kaištį „Arduino“prie +3 V3 kaiščio ir 5 V kaištį „Resolver“modulyje (modulis gali turėti 3,3 V maitinimo šaltinį, tuo pačiu suteikiant 5 V sužadinimą rezoliucijoje)
3: prijunkite „Arduino“RTN prie „Resolver Module“RTN
4: prijunkite „Arduino“D9 prie „Resolver“modulio PWM
5: Prijunkite A0 „Arduino“prie „MCU_COS+“„Resolver“modulyje
6: Prijunkite A1 „Arduino“prie „MCU_SIN+“„Resolver“modulyje
7: Prijunkite „Resolver EX+“laidą prie „Resolver“modulio EX+
8: Prijunkite „Resolver EX“laidą prie „Resolver“modulio EX-
9: Prijunkite „Resolver COS+“laidą prie „Resolver“modulio COS+
10: Prijunkite 2 „Resolver RCOM“laidus prie „Resolver“modulio RCOM
11: Prijunkite „Resolver SIN+“laidą prie „Resolver“modulio SIN+
12: Prijunkite 9 V bateriją prie RTN (-) ir VIN (+)
13: Arba prijunkite „Nscope“+5V – 5V kaištį „Arduino“ir RTN „Nscope“prie RTN „Arduino“
14: Prijunkite apimtį prie USB kompiuterio
15: Prijunkite „Arduino“prie USB prie kompiuterio
3 žingsnis: įkelkite kodą
Nukopijuokite žemiau esantį „Arduino“kodą į savo eskizą „Arduino IDE“
Šis kodas padarys PWM „Resolver Module“. Šis modulis sužadins rezoliuciją ir sukels kvadratinę bangą ant antrinių rezoliucijos ritinių. Tada signalai, sklindantys iš „Sin+“ir „Cos+“, patenka į OPAMP, kuris sutelks bangą ir sumažins išėjimą, kad ji būtų tarp 0–5 voltų.
Sin+ ir Cos+ yra taip, kaip jie reiškia. Su „Cos“banga „Sin“yra 90 laipsnių nuo fazės.
Kadangi jie yra 90 laipsnių nuo fazės, turime naudoti Atan2 (Cos, Sin) funkciją, kad gautume teisingą sprendėjo padėties koordinatę.
Tada, gavęs 4 mėginius, „Arduino“išspjauna vertę nuo –3,14 iki 3,14, atitinkamai –180 laipsnių ir +180 laipsnių. Štai kodėl, jei norite naudoti rezoliuciją absoliučiai padėčiai, turite naudoti tik nuo -180 iki 180, nesukdami perviršio, kitaip apsiversite ir manysite, kad grįžtate į pavaros pradžią. Tai būtų problema, jei nuspręstumėte naudoti 3D spausdintuvo x arba y ašies sprendimo priemonę ir apsivertę sukeltumėte 3D spausdintuvo sutrikimą.
Aš galėjau padaryti kodą šiek tiek geresnį su pertraukomis, kad būtų daugiau nuolatinio PWMing, bet tai bus pakankamai šiai programai. Int A = A0;
int B = A1; int pwm = 9; int c1 = 0; int c2 = 0; int c3 = 0; int c4 = 0; int c5 = 0; int c6 = 0; int s1 = 0; int s2 = 0; int s3 = 0; int s4 = 0; int s5 = 0; int s6 = 0; plūdės išėjimas = 0,00; int sin1 = 0; int cos1 = 0; int pozicijos_stata = 1; int get_position = 0; void setup () {// įdėkite čia savo sąrankos kodą, kad paleistumėte vieną kartą: pinMode (pwm, OUTPUT); Serial.begin (115200); }
void loop () {
jei (gauti_pozicija = 5) {cos1 = (c1+c2)-(c3+c4); sin1 = (s1+s2)-(s3+s4); išvestis = atan2 (cos1, sin1); c1 = 0; c2 = 0; c3 = 0; c4 = 0; s1 = 0; s2 = 0; s3 = 0; s4 = 0; Serial.print ("Pozicija:"); Serial.println (išvestis); get_position = 1; }
// Įdėkite savo pagrindinį kodą čia, kad paleistumėte pakartotinai:
}
4 žingsnis: 3 žingsnis: linksminkitės
Mėgaukitės sukdami sprendiklį ir sužinokite, kaip jis veikia ir kokias programas galėtumėte naudoti šiuo sprendimo moduliu.