Бұл тек V5 Smart моторының (11 Вт) 10-шы нұсқасына қатысты. Қосымша ақпарат алу үшін rev10rma.vex.com сайтына өтіңіз
Қандай командалар қорғауды қажет етеді
Біз бұл қозғалтқыштардың істен шығуына әкелетін мәселені анықтадық. Мәселе қозғалтқышқа 11 вольттан жоғары кернеуде жұмыс істеуге бұйрық берілгенде, содан кейін қозғалтқышқа қарсы бағытта бұрылу үшін басқа пәрмен жіберілгенде пайда болады. Бұл пәрмендер тізбегі қозғалтқыштың ДК тақтасындағы компоненттерді зақымдайтын кернеудің жоғарылауын тудырады.
Көптеген қозғалтқыш командалары қозғалтқыштың 11 вольт шығыс қуатына жетуіне мүмкіндік бермейтін қозғалтқыштың ішкі басқару логикасын пайдаланады. “motor.spinto(...)” және “motor.spinfor(...)” сияқты қозғалтқыш пәрмендері жылдамдықтарды қолдау үшін PID пайдаланады және қозғалтқыштың 11 вольттан жоғары жұмыс істеуіне мүмкіндік бермейді. Қозғалтқышқа белгілі бір кернеу пәрменін жіберу үшін пайдалануға болатын жалғыз пәрмен – “motor.spin(...)”. motor.spin() бірнеше нұсқасы бар:
Кернеу режимінің командаларының мысалдары
Қозғалтқыштардың кернеуін орнататын motor.spin() арнайы нұсқасы:
C++:
қозғалтқыш m1 = мотор(PORT1, қатынасы18_1, жалған);
m1.spin(алға, команда берілгенВольт, вольт);
Python:
m1 = Мотор(Ports.PORT1, GearSetting.RATIO_18_1, False)
m1.spin(АЛҒА, пәрменді вольт, ВОЛТ)
Кернеу режимінің командаларын қорғау
Кернеу бірліктерін қабылдайтын motor.spin() нұсқасы қозғалтқыштың 11 вольт немесе одан жоғары кернеуде жұмыс істеуіне себеп болатын жалғыз пәрмен болып табылады. Бұл функцияға тек 11,0-ден аз мәндерді бергеніңізге көз жеткізуіңіз керек. Мысалы:
C++
if( commandedVolts >= 11,0) {
commandedVolts = 10,9;
}
басқа if(командаланғанВольт <= -11,0) {
командаланғанВольт = -10,9;
}
м1.айналдыру(алға, пәрмендіВольт, вольт);
if(>= 11,0 ):
10,9
( пәрмендіВольт <= -11,0 ):
командаланғанВольт =. . айналдыру (АЛҒА, пәрменді Вольт, ВОЛТ)
Айналдыру пәрменінде кернеу бірліктерінен басқа кез келген бірліктерді пайдалансаңыз, осы пәрмен берілген мәнді тексеруді орындаудың қажеті жоқ. Rev 10 қозғалтқыштарын ешқашан 11 немесе одан да көп вольттан асырмағаныңызға көз жеткізіңіз, қозғалтқыштарыңыздың ақауларынан сақтаңыз.
C++ пәрмен сілтемесі
/**
* @brief Моторды қосады және оны көрсетілген бағытта айналдырады.
* @paramdir Моторды айналдыру бағыты.
*/
босайналдыру( бағытТипдир );
/**
* @brief Қозғалтқышты қосып, оны белгіленген бағытта және
* белгіленген жылдамдықта айналдырады.
* @paramdir Моторды айналдыру бағыты.
* @paramvelocity Жылдамдық мөлшерін орнатады.
* @paramбірлік Жылдамдық мәні үшін өлшем бірлігі.
*/
босайналдыру( бағытТүр қосжылдамдық;
босайналдыру( дир, doubleбірлік ){
спиндир, жылдамдық, <жылдамдықБірлік>());
}
/**
* @brief Қозғалтқышты қосып, оны белгіленген бағытта және
* көрсетілген кернеуде айналдырады.
* @paramdir Моторды айналдыру бағыты.
* @paramкернеу Вольт мөлшерін орнатады.
* @paramбірлік Кернеу мәніне арналған өлшем бірлігі.
*/
босайналдыру( бағытТүрдир бірлік )
Python пәрменіне сілтеме
Defspin(self,
: DirectionType., *, **)'''### Берілген аргументтерді пайдаланып қозғалтқышты айналдырыңыз
#### Аргументтер:
бағыт : Қозғалтқышты айналдыру бағыты, АЛҒА немесе КЕРІ
жылдамдық (қосымша) : айналдыру осы жылдамдықты пайдаланатын қозғалтқыш, егер берілмеген болса, set_velocity арқылы орнатылған әдепкі
жылдамдық пайдаланылады.
бірлік (қосымша) : Берілген жылдамдық бірліктері, әдепкі RPM
#### Қайтарулар:
Ешбір
#### Мысалдар:
# айналдыру қозғалтқышы белгіленген_жылдамдығы бар жылдамдық жинағы\\
motor1.spinАЛҒА)\n
# айналдыру қозғалтқышы 50 айн/мин\\
қозғалтқыш1.айналдыру (FORW)\n
)
# теріс жылдамдықпен айналдыру, яғни. артқа\\
motor1.spin(АЛҒА, -20)\n
айналдыру қозғалтқышы 100% жылдамдықпен алға\\
мотор1.spin10C,WARD10C,\n
# айналдыру қозғалтқышы алға 50 айн/мин\\
мотор1.айналдыру (АЛҒА, 50, айн/мин)\n
/
алға айналдырус\\мотор1.айналу(АЛҒА, 360,0, ЖылдамдықБірліктер.DPS)
'''