Protegendo motores inteligentes Rev 10 V5 (11W) com código

Isso se aplica apenas à Rev 10 do V5 Smart Motor (11W).  Para saber mais acesse rev10rma.vex.com

Quais comandos precisam de proteção

Identificamos um problema que pode causar a falha desses motores. O problema se apresenta quando o motor é comandado para funcionar com uma tensão superior a 11 volts e então outro comando é enviado ao motor para girar na direção oposta. Esta sequência de comandos provoca um pico de tensão que danifica componentes da placa do motor.

A maioria dos comandos do motor usa a lógica de controle interna do motor, que não permite que o motor atinja 11 volts de potência de saída. Comandos de motor como “motor.spinto(...)” e “motor.spinfor(...)” utilizam PID para manter velocidades e não permitem que o motor funcione acima de 11 volts. O único comando que pode ser utilizado para enviar um comando específico de tensão ao motor é “motor.spin(...)”. Existem várias versões de motor.spin():

Exemplos de comandos de modo de tensão

 A versão específica de motor.spin() que define a tensão dos motores é:

C++:

motor m1 = motor(PORT1, relação18_1, falso);

m1.spin(forward, comandoVolts, volt);

Pitão:

m1 = Motor (Portas.PORT1, GearSetting.RATIO_18_1, Falso)

m1.spin (AVANÇAR, Volts comandados, VOLT)

Protegendo comandos do modo de tensão

A versão de motor.spin() que usa unidades de tensão é o único comando que pode fazer o motor funcionar em ou acima de 11 volts. Você precisará passar apenas valores menores que 11,0 para esta função. Exemplo:

C++
if(Volts comandados >= 11,0) {
comandados = 10,9;
}
else if(Volts comandados <= -11,0) {
comandados = -10,9;
}
m1.spin(para frente, comandadoVolts, volt);

Python
if (Volts comandados >= 11,0):
Volts comandados = 10,9
elif (Volts comandados <= -11,0):
Volts comandados = -10,9
m1. spin(FORWARD, comandadoVolts, VOLT)

Se você estiver usando quaisquer unidades diferentes de unidades de tensão no comando de rotação, não será necessário realizar esta verificação do valor comandado. Certifique-se de nunca acionar seus motores Rev 10 acima de 11 ou mais volts para evitar falhas nos motores. 

Referência de comando C++

/**
* @brief Liga o motor e gira na direção especificada.
* @paramdir A direção para girar o motor.
*/
voidspin( direçãoTipodir );

/**
* @brief Liga o motor e gira em uma direção especificada e em uma velocidade especificada
*.
* @paramdir A direção para girar o motor.
* @paramvelocidade Define a quantidade de velocidade.
* @paramunidades A unidade de medida para o valor da velocidade.
*/
vazio85( direção Tipodir, duplovelocidade, velocidade Unidadesunidades );
vaziogiro( direção Tipodir, duplovelocidade, por cento Unidadesunidades ){
( dir, velocidade, static_cast<unidades de velocidade>(unidades));
}


/**
* @brief Liga o motor e gira em uma direção especificada e em uma tensão especificada
*.

* @paramdir A direção para girar o motor.
* @paramvoltage Define a quantidade de volts.
* @paramunidades A unidade de medida para o valor de tensão.
*/

vaziorotação( direção Tipodir, duplotensão, unidades de tensãounidades );

 

Referência de comando Python

defspin(self, direção: DirectionType.DirectionType, *args, **kwargs):
'''### Gire o motor usando os argumentos fornecidos

#### Argumentos:
direção: A direção para girar o motor, PARA FRENTE ou RÉ
velocidade (opcional): rotação Se o motor usar esta velocidade, a velocidade padrão
definida por set_velocity será usada se não for fornecida.
unidades (opcional): As unidades da velocidade fornecida, o padrão é RPM

#### Retorna:
Nenhum

#### Exemplos:
# gire o motor para frente em velocidade definida com set_velocity\\
motor1.spin(FORWARD)\n

# gire o motor para frente a 50 rpm\\
motor1.spin(FORWARD, 50)\n

# gira com velocidade negativa, ou seja. para trás\\
motor1.spin(FORWARD, -20)\n

# gire o motor para frente com 100% de velocidade\\
motor1.spin(FORWARD, 100, PERCENT)\n

# girar o motor para frente a 50 rpm\\
motor1.spin(FORWARD, 50, RPM)\n

# girar o motor para frente a 360 dps\\
motor1.spin (AVANÇAR, 360,0, Unidades de velocidade.DPS)

'''


 



For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: