Controlador de motor 55#

Introdução#

A classe motor55 é utilizada para controlar um Controlador de Motor VEX 55 ligado ao EXP Brain. O Controlador de Motor 55 é um controlador de motor legado, concebido para operar motores CC de 2 fios.

O Controlador de Motor VEX 55.

Construtores de Classes#

1 — Cria um objeto motor55 na Smart Port especificada.

motor55(
  int32_t index );

2 — Cria um objeto motor55 na Smart Port especificada e altera o sentido de rotação positivo.

motor55(
  int32_t index,
  bool    reverse );

3 — Cria um objeto motor55 na Smart Port especificada, define a tensão máxima de acionamento e altera o sentido de rotação positivo.

motor55(
  int32_t index,
  double  maxv,
  bool    reverse );

Destrutor de classes#

Destrói o objeto motor55 e liberta os recursos associados.

~motor55();

Parâmetros#

Parâmetro

Tipo

Descrição

index

int32_t

A porta inteligente à qual o Controlador de Motor 55 está ligado, escrita como PORTx, em que x é o número da porta (por exemplo, PORT1).

reverse

bool

Determina se o sentido de rotação do motor está invertido:

  • true — O sentido de rotação positivo do motor está invertido.
  • false — O sentido de rotação positivo do motor mantém-se normal.

maxv

double

A tensão máxima que o Controlador de Motor 55 pode aplicar ao motor.

Exemplo#

// Create the motor55 instance in Smart Port 1
motor55 Motor1 = motor55(PORT1);

Funções de membro#

A classe motor55 inclui as seguintes funções membro:

  • spin — Roda o motor numa direcção especificada.

  • stop — Para o motor.

  • setVelocity — Indica ao motor de corrente contínua a velocidade de rotação.

  • setStopping — Define o comportamento de paragem (inércia ou travagem).

  • setReversed — Define se o sentido do motor está invertido.

  • current — Devolve a corrente elétrica do motor.

  • voltage — Devolve a tensão eléctrica do motor.

  • temperature — Devolve a temperatura do motor.

  • getMotorType — Retorna o tipo de motor/controlador detectado.

  • installed — Retorna se o Controlador de Motor 55 foi detectado na Porta Inteligente especificada.

Antes de chamar qualquer função membro de motor55 , deve ser criada uma instância, como se mostra abaixo:

/* This constructor is required when using VS Code.
Motor Controller 55 configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create the motor55 instance in Smart Port 1
motor55 MC55_1 = motor55(PORT1);

spin#

Roda o motor na direção especificada indefinidamente.

Funções disponíveis

1 — Gira utilizando a velocidade actualmente configurada.

void spin(
  directionType dir );

2 — Gira à voltagem especificada.

void spin(
  directionType dir,
  double        voltage,
  voltageUnits  units );

Parâmetros

Parâmetro

Tipo

Descrição

dir

directionType

O sentido de rotação do motor: forward ou reverse.

voltage

double

O valor da tensão aplicada ao motor. Um valor negativo roda no sentido oposto ao dado dir.

units

voltageUnits

Unidade utilizada para representar a voltagem:

  • volt — volts
  • voltageUnits::mV — milivolts

Valores de retorno

Esta função não devolve qualquer valor.

Notas

  • Esta função não requer espera e o programa continua imediatamente após a chamada.

  • O motor continuará a rodar até que stop seja chamado ou seja utilizado outro spin.

stop#

Impede a rotação do motor utilizando o modo de travagem atualmente configurado.

Funções disponíveis

void stop();

Parâmetros

Esta função não recebe qualquer parâmetro.

Valores de retorno

Esta função não devolve qualquer valor.

Notas

  • Para o motor que utiliza o modo de paragem actualmente configurado definido por setStopping.

setVelocity#

Indica a velocidade de rotação de um motor de corrente contínua. Uma percentagem mais elevada faz com que o motor gire mais depressa, enquanto uma percentagem mais baixa faz com que o motor gire mais devagar.

Cada projeto começa com cada motor CC ligado a rodar a 50% da velocidade por defeito.

Funções disponíveis

void setVelocity(
    double       velocity,
    percentUnits units = percent );

Parâmetros

Parâmetro

Tipo

Descrição

velocity

double

A velocidade de rotação de 0% a 100% quando se utiliza percent.

units

percentUnits

Unidade de velocidade: percent pct — por cento.

Valores de retorno

Esta função não devolve qualquer valor.

Notas

  • Qualquer chamada subsequente a spin sem uma tensão especificada utilizará este valor.

setStopping#

Define o comportamento do motor quando este pára.

Funções disponíveis

void setStopping(
    brakeType mode );

Parâmetros

Parâmetro

Tipo

Descrição

mode

brakeType

O modo de paragem aplicado quando stop é designado por:

  • coast — O motor pára por inércia
  • brake — O motor pára rapidamente utilizando a travagem

Valores de retorno

Esta função não devolve qualquer valor.

Notas

  • Qualquer chamada subsequente a stop utilizará este modo de paragem.

  • O Controlador de Motor 55 suporta apenas as posições coast travagem) e brake . A posição hold suspensão) não são suportadas.

setReversed#

Define se o sentido de rotação do motor será invertido.

Funções disponíveis

void setReversed(
    bool value );

Parâmetros

Parâmetro

Tipo

Descrição

value

bool

Se o sentido de rotação do motor estiver invertido:

  • true — Inverte o sentido de rotação do motor.
  • false — Devolve o sentido de rotação do motor ao padrão.

Valores de retorno

Esta função não devolve qualquer valor.

Notas

  • Chamar setReversed é o mesmo que alterar o parâmetro reverse no construtor.

current#

A corrente current indica a quantidade de corrente elétrica que o motor de corrente contínua está a consumir. A corrente é a quantidade de eletricidade que flui através do motor de corrente contínua. Quando é devolvida em amperes, a corrente é reportada de 0,0 a 1,2 A.

Um valor de corrente mais elevado significa que o motor de corrente contínua está a consumir mais corrente elétrica. Isto pode acontecer quando o motor CC está a levantar algo pesado, a empurrar um objeto ou a tentar mover-se quando está bloqueado.

Isto pode ser utilizado para verificar se o motor CC está a apresentar dificuldades durante o movimento. Se a corrente permanecer elevada, o motor pode sobreaquecer ou utilizar a energia de forma menos eficiente.

Available Functions

1 — Devolve a corrente elétrica do motor de corrente contínua em amperes.

double current(
  currentUnits units = amp );

2 — Devolve a corrente elétrica do motor de corrente contínua como uma percentagem da corrente nominal máxima.

double current(
  percentUnits units );

Parameters

Parâmetro

Tipo

Descrição

units

currentUnits

A unidade utilizada para representar a corrente:amp (padrão) — amperes

units

percentUnits

Representa a corrente em percentagem da corrente nominal máxima do motor:percent / pct%

Return Values

Devolve um valor double que representa a quantidade de corrente elétrica que o motor de corrente contínua está a utilizar nas unidades especificadas.

voltage#

Devolve a tensão elétrica fornecida ao motor.

Available Functions
double voltage(
  voltageUnits units = volt );

Parâmetros

Parâmetro

Tipo

Descrição

units

voltageUnits

Unidade para representar a voltagem:

  • volt (padrão)
  • voltageUnits::mV — milivolts

Valores de retorno

Devolve um valor double que representa a tensão elétrica do motor nas unidades especificadas.

temperature#

temperature returns the temperature of the DC motor.

A temperatura do motor indica o quão aquecido está o motor de corrente contínua. Uma temperatura mais elevada significa que o motor CC está a aquecer enquanto funciona. O motor deve permanecer abaixo dos 55°C para continuar a funcionar com o máximo desempenho.

Se o motor CC aquecer demasiado, reduzirá a sua corrente máxima para se proteger. A 70°C, o motor deixará de funcionar até arrefecer.

Isto pode ser utilizado para verificar se o motor de corrente contínua está a sobreaquecer durante movimentos repetidos, longos períodos de funcionamento ou quando está a empurrar um objeto.

Available Functions

1 — Retorna a temperatura do motor de corrente contínua como uma percentagem da temperatura máxima de funcionamento.

double temperature(
  percentUnits units = percent );

2 — Devolve a temperatura do motor de corrente contínua em unidades de temperatura física.

double temperature(
  temperatureUnits units );

Parâmetros

Parâmetro

Tipo

Descrição

units

percentUnits

The unit used to represent DC motor temperature as a percentage:

  • percent / pct (default) — percent

units

temperatureUnits

A unidade utilizada para representar a temperatura do motor de corrente contínua em graus:

  • celsius — graus Celsius
  • fahrenheit — graus Fahrenheit

Valores de retorno

Retorna um valor double que representa a temperatura do motor CC nas unidades especificadas.

Notas

  • A gama de temperaturas de funcionamento do motor é de aproximadamente 20°C (68°F) a 70°C (158°F).

getMotorType#

Retorna o tipo de motor/controlador detectado.

Funções disponíveis

int32_t getMotorType();

Parâmetros

Esta função não recebe qualquer parâmetro.

Valores de retorno

Retorna um valor int32_t indicando o tipo de motor/controlador detectado:

  • 0 — 11W Motor
  • 1 — 5.5W Motor
  • 2 — Motor Controller 55

installed#

Retorna se o Controlador de Motor 55 está ligado ao EXP Brain.

Available Functions
bool installed();

Parâmetros

Esta função não recebe qualquer parâmetro.

Valores de retorno

Retorna um valor booleano bool indicando se o Controlador de Motor 55 está ligado.

  • true — The Motor Controller 55 is connected.
  • false — The Motor Controller 55 is not connected.