ตัวควบคุมมอเตอร์ 55#

การแนะนำ#

คลาส motor55 ใช้สำหรับควบคุม VEX Motor Controller 55 ที่เชื่อมต่อกับ EXP Brain โดย Motor Controller 55 เป็นตัวควบคุมมอเตอร์แบบเก่าที่ออกแบบมาเพื่อใช้งานกับมอเตอร์ DC แบบ 2 สาย

ตัวควบคุมมอเตอร์ VEX 55.

ตัวสร้างคลาส#

1 — สร้างอ็อบเจ็กต์ motor55 บน Smart Port ที่ระบุ

motor55(
  int32_t index );

2 — สร้างวัตถุ motor55 บน Smart Port ที่ระบุ และเปลี่ยนทิศทางการหมุนบวก

motor55(
  int32_t index,
  bool    reverse );

3 — สร้างวัตถุ motor55 บน Smart Port ที่ระบุ ตั้งค่าแรงดันไฟฟ้าสูงสุด และเปลี่ยนทิศทางการหมุนบวก

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

ตัวทำลายคลาส#

ทำลายอ็อบเจ็กต์ motor55 และปล่อยทรัพยากรที่เกี่ยวข้อง

~motor55();

พารามิเตอร์#

พารามิเตอร์

พิมพ์

คำอธิบาย

index

int32_t

พอร์ตอัจฉริยะที่เชื่อมต่อกับตัวควบคุมมอเตอร์ 55 จะเขียนในรูปแบบ PORTxโดยที่ x คือหมายเลขพอร์ต (ตัวอย่างเช่น PORT1)

reverse

bool

ตรวจสอบว่าทิศทางการหมุนของมอเตอร์กลับทิศทางหรือไม่:

  • true — ทิศทางการหมุนบวกของมอเตอร์กลับทิศทาง
  • false — ทิศทางการหมุนบวกของมอเตอร์ยังคงปกติ

maxv

double

แรงดันไฟฟ้าสูงสุดที่ตัวควบคุมมอเตอร์ 55 สามารถจ่ายให้กับมอเตอร์ได้

ตัวอย่าง#

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

ฟังก์ชันสมาชิก#

คลาส motor55 ประกอบด้วยฟังก์ชันสมาชิกต่อไปนี้:

  • spin — หมุนมอเตอร์ไปในทิศทางที่กำหนด

  • stop — หยุดมอเตอร์

  • setVelocity — บอกมอเตอร์ DC ว่าจะหมุนเร็วแค่ไหน

  • setStopping — กำหนดพฤติกรรมการหยุด (ไหลหรือเบรก)

  • setReversed — ตั้งค่าว่าจะกลับทิศทางการหมุนของมอเตอร์หรือไม่

  • current — ส่งคืนกระแสไฟฟ้าของมอเตอร์

  • voltage — ส่งคืนแรงดันไฟฟ้าของมอเตอร์

  • temperature — ส่งคืนอุณหภูมิของมอเตอร์

  • getMotorType — ส่งคืนประเภทมอเตอร์/ตัวควบคุมที่ตรวจพบ

  • installed — ส่งคืนว่าตรวจพบตัวควบคุมมอเตอร์ 55 บน Smart Port ที่ระบุหรือไม่

ก่อนเรียกใช้ฟังก์ชันสมาชิก motor55 ใดๆ จะต้องสร้างอินสแตนซ์ก่อน ดังที่แสดงด้านล่าง:

/* 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#

หมุนมอเตอร์ไปในทิศทางที่กำหนดอย่างต่อเนื่อง

ฟังก์ชันที่ใช้งานได้

1 — หมุนโดยใช้ ความเร็วที่กำหนดค่าไว้ในปัจจุบัน

void spin(
  directionType dir );

2 — หมุนด้วยแรงดันไฟฟ้าที่กำหนด

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

พารามิเตอร์

พารามิเตอร์

พิมพ์

คำอธิบาย

dir

directionType

ทิศทางการหมุนของมอเตอร์: forward หรือ reverse

voltage

double

ค่าแรงดันไฟฟ้าที่จ่ายให้กับมอเตอร์ ค่าลบจะหมุนในทิศทางตรงกันข้ามกับค่าที่กำหนด dir

units

voltageUnits

หน่วยที่ใช้แทนแรงดันไฟฟ้า:

  • volt — โวลต์
  • voltageUnits::mV — มิลลิโวลต์

ค่าที่ส่งคืน

ฟังก์ชันนี้ไม่ส่งค่ากลับ

หมายเหตุ

  • ฟังก์ชันนี้ไม่ต้องรอ และโปรแกรมจะทำงานต่อทันทีหลังจากเรียกใช้

  • มอเตอร์จะหมุนต่อไปจนกว่าจะมีการเรียก stop หรือใช้ spin อีกครั้ง

stop#

หยุดมอเตอร์ไม่ให้หมุนโดยใช้ โหมดเบรกที่กำหนดค่าไว้ในปัจจุบัน

ฟังก์ชันที่ใช้งานได้

void stop();

พารามิเตอร์

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

ค่าที่ส่งคืน

ฟังก์ชันนี้ไม่ส่งค่ากลับ

หมายเหตุ

  • หยุดมอเตอร์โดยใช้โหมดหยุดที่กำหนดค่าไว้ในปัจจุบันโดย setStopping

setVelocity#

คำสั่งนี้บอกมอเตอร์กระแสตรงว่าควรหมุนเร็วแค่ไหน ค่าเปอร์เซ็นต์ที่สูงขึ้นจะทำให้มอเตอร์หมุนเร็วขึ้น และค่าเปอร์เซ็นต์ที่ต่ำลงจะทำให้มอเตอร์หมุนช้าลง

ทุกโปรเจกต์เริ่มต้นด้วยมอเตอร์ DC ที่เชื่อมต่อแต่ละตัวหมุนด้วยความเร็ว 50% เป็นค่าเริ่มต้น

ฟังก์ชันที่ใช้งานได้

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

พารามิเตอร์

พารามิเตอร์

พิมพ์

คำอธิบาย

velocity

double

ความเร็วในการหมุนตั้งแต่ 0% ถึง 100% เมื่อใช้ percent

units

percentUnits

หน่วยความเร็ว: percent pct เปอร์เซ็นต์

ค่าที่ส่งคืน

ฟังก์ชันนี้ไม่ส่งค่ากลับ

หมายเหตุ

  • การเรียกใช้ spin ครั้งถัดไปโดยไม่มีแรงดันไฟฟ้าที่ระบุจะใช้ค่านี้

setStopping#

ตั้งค่าพฤติกรรมของมอเตอร์เมื่อหยุดทำงาน

ฟังก์ชันที่ใช้งานได้

void setStopping(
    brakeType mode );

พารามิเตอร์

พารามิเตอร์

พิมพ์

คำอธิบาย

mode

brakeType

โหมดการหยุดที่ใช้เมื่อเรียก stop คือ:

  • coast — มอเตอร์ค่อยๆ หยุด
  • brake — มอเตอร์หยุดอย่างรวดเร็วโดยใช้เบรก

ค่าที่ส่งคืน

ฟังก์ชันนี้ไม่ส่งค่ากลับ

หมายเหตุ

  • การเรียกใช้ stop ครั้งถัดไปจะใช้โหมดการหยุดนี้

  • ตัวควบคุมมอเตอร์ 55 รองรับเฉพาะโหมด coast และ brake เท่านั้น โหมด hold ไม่ได้รับการสนับสนุน

setReversed#

ตั้งค่าว่าจะกลับทิศทางการหมุนของมอเตอร์หรือไม่

ฟังก์ชันที่ใช้งานได้

void setReversed(
    bool value );

พารามิเตอร์

พารามิเตอร์

พิมพ์

คำอธิบาย

value

bool

ทิศทางการหมุนของมอเตอร์กลับทิศทางหรือไม่:

  • true — กลับทิศทางการหมุนของมอเตอร์
  • false — กลับไปใช้ทิศทางการหมุนปกติ

ค่าที่ส่งคืน

ฟังก์ชันนี้ไม่ส่งค่ากลับ

หมายเหตุ

  • การเรียก setReversed เหมือนกับการเปลี่ยนพารามิเตอร์ reverse ใน constructor

current#

ค่ากระแสไฟฟ้า current จะแสดงปริมาณกระแสไฟฟ้าที่มอเตอร์กระแสตรง (DC motor) ใช้ กระแสไฟฟ้าคือปริมาณไฟฟ้าที่ไหลผ่านมอเตอร์กระแสตรง เมื่อแสดงค่าเป็นแอมป์ ค่ากระแสไฟฟ้าจะอยู่ระหว่าง 0.0 ถึง 1.2 แอมป์

ค่ากระแสไฟฟ้าที่สูงขึ้นหมายความว่ามอเตอร์ DC ใช้กระแสไฟฟ้ามากขึ้น ซึ่งอาจเกิดขึ้นเมื่อมอเตอร์ DC กำลังยกของหนัก ผลักวัตถุ หรือพยายามเคลื่อนที่เมื่อติดอยู่

สามารถใช้ตรวจสอบได้ว่ามอเตอร์ DC ทำงานหนักเกินไปขณะเคลื่อนที่หรือไม่ หากกระแสไฟฟ้าสูงต่อเนื่อง มอเตอร์อาจร้อนขึ้นหรือใช้พลังงานอย่างไม่มีประสิทธิภาพ

Available Functions

1 — ส่งคืนค่ากระแสไฟฟ้าของมอเตอร์ DC ในหน่วยแอมป์

double current(
  currentUnits units = amp );

2 — แสดงค่ากระแสไฟฟ้าของมอเตอร์ DC เป็นเปอร์เซ็นต์ของกระแสไฟฟ้าสูงสุดที่กำหนด

double current(
  percentUnits units );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

units

currentUnits

หน่วยที่ใช้แทนกระแสไฟฟ้า:amp (ค่าเริ่มต้น) — แอมแปร์

units

percentUnits

แสดงกระแสไฟฟ้าเป็นเปอร์เซ็นต์ของกระแสไฟฟ้าสูงสุดที่มอเตอร์รับได้:percent pct เปอร์เซ็นต์

Return Values

ส่งคืนค่า double ซึ่งแสดงถึงปริมาณกระแสไฟฟ้าที่มอเตอร์ DC ใช้ในหน่วยที่ระบุ

voltage#

ส่งคืนแรงดันไฟฟ้าที่จ่ายให้กับมอเตอร์

Available Functions
double voltage(
  voltageUnits units = volt );

พารามิเตอร์

พารามิเตอร์

พิมพ์

คำอธิบาย

units

voltageUnits

หน่วยที่ใช้แสดงแรงดันไฟฟ้า:

  • volt (ค่าเริ่มต้น)
  • voltageUnits::mV — มิลลิโวลต์

ค่าที่ส่งคืน

ส่งคืนค่า double ซึ่งแสดงถึงแรงดันไฟฟ้าของมอเตอร์ในหน่วยที่ระบุ

temperature#

temperature returns the temperature of the DC motor.

อุณหภูมิของมอเตอร์แสดงให้เห็นว่ามอเตอร์กระแสตรงร้อนแค่ไหน อุณหภูมิที่สูงขึ้นหมายความว่ามอเตอร์กระแสตรงร้อนขึ้นขณะทำงาน อุณหภูมิของมอเตอร์ควรต่ำกว่า 55°C เพื่อให้ทำงานได้อย่างเต็มประสิทธิภาพ

หากมอเตอร์กระแสตรงร้อนเกินไป มันจะลดกระแสสูงสุดลงเพื่อป้องกันตัวเอง ที่อุณหภูมิ 70°C มอเตอร์จะหยุดทำงานจนกว่าจะเย็นลง

สามารถใช้ตรวจสอบได้ว่ามอเตอร์ DC ร้อนเกินไปหรือไม่ ในระหว่างการเคลื่อนไหวซ้ำๆ การทำงานต่อเนื่องเป็นเวลานาน หรือเมื่อมันดันกับวัตถุ

Available Functions

1 — แสดงอุณหภูมิของมอเตอร์ DC เป็นเปอร์เซ็นต์ของอุณหภูมิการทำงานสูงสุด

double temperature(
  percentUnits units = percent );

2 — ส่งคืนค่าอุณหภูมิของมอเตอร์ DC ในหน่วยอุณหภูมิทางกายภาพ

double temperature(
  temperatureUnits units );

พารามิเตอร์

พารามิเตอร์

พิมพ์

คำอธิบาย

units

percentUnits

หน่วยที่ใช้แสดงอุณหภูมิของมอเตอร์ DC เป็นเปอร์เซ็นต์:

  • percent pct (ค่าเริ่มต้น) — เปอร์เซ็นต์

units

temperatureUnits

หน่วยที่ใช้แสดงอุณหภูมิของมอเตอร์ DC ในหน่วยองศา:

  • celsius — องศาเซลเซียส
  • fahrenheit — องศาฟาเรนไฮต์

ค่าที่ส่งคืน

ส่งคืนค่า double ซึ่งแสดงถึงอุณหภูมิของมอเตอร์ DC ในหน่วยที่ระบุ

หมายเหตุ

  • ช่วงอุณหภูมิการทำงานของมอเตอร์โดยประมาณคือ 20°C (68°F) ถึง 70°C (158°F)

getMotorType#

ส่งคืนประเภทมอเตอร์/ตัวควบคุมที่ตรวจพบ

ฟังก์ชันที่ใช้งานได้

int32_t getMotorType();

พารามิเตอร์

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

ค่าที่ส่งคืน

ส่งคืนค่า int32_t เพื่อระบุประเภทมอเตอร์/ตัวควบคุมที่ตรวจพบ:

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

installed#

ตรวจสอบว่า Motor Controller 55 เชื่อมต่อกับ EXP Brain แล้วหรือไม่

Available Functions
bool installed();

พารามิเตอร์

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

ค่าที่ส่งคืน

ส่งคืนค่าบูลีน bool เพื่อระบุว่าตัวควบคุมมอเตอร์ 55 เชื่อมต่ออยู่หรือไม่

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