เซ็นเซอร์แสง#
การแนะนำ#
คลาสออปติคอล optical ใช้สำหรับเข้าถึงข้อมูลจาก เซ็นเซอร์ออปติคอล V5 โดยใช้แสงสะท้อนในการตรวจจับวัตถุ ระบุสี และวัดความสว่างและเฉดสี
คอนสตรัคเตอร์คลาส#
optical Optical = optical(index);
ตัวทำลายคลาส#
ทำลายวัตถุ optical และปล่อยทรัพยากรที่เกี่ยวข้อง
virtual ~optical();
พารามิเตอร์#
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
พอร์ตอัจฉริยะที่เชื่อมต่อกับเซ็นเซอร์แสง จะเขียนในรูปแบบ |
ตัวอย่าง#
// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);
ฟังก์ชันสมาชิก#
คลาสออปติคอล optical ประกอบด้วยฟังก์ชันสมาชิกต่อไปนี้:
setLight— เปิดหรือปิดไฟ LED ของเซ็นเซอร์แสงsetLightPower— ตั้งค่าระดับพลังงานแสงของเซ็นเซอร์แสงisNearObject— ส่งคืนว่าเซ็นเซอร์แสงตรวจพบวัตถุภายในระยะหรือไม่color— ส่งคืนสีที่ตรวจพบโดยเซ็นเซอร์แสงbrightness— ส่งคืนปริมาณแสงที่สะท้อนจากวัตถุhue— ส่งคืนค่าสีที่ตรวจพบโดยเซ็นเซอร์แสงobjectDetected— ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อเซ็นเซอร์แสงตรวจพบวัตถุobjectLost— ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อเซ็นเซอร์แสงสูญเสียวัตถุ
ก่อนเรียกใช้ฟังก์ชันสมาชิก optical ใดๆ จะต้องสร้างอินสแตนซ์ optical ก่อน ดังแสดงด้านล่าง:
// Create an optical object in Port 1
optical Optical1 = optical(PORT1);
setLight#
ตั้งค่าไฟ LED ของเซ็นเซอร์แสงให้เปิดหรือปิด แสงไฟจะช่วยให้เซ็นเซอร์แสงตรวจจับวัตถุและสีได้ชัดเจนยิ่งขึ้น
Available Functionsvoid setLight(ledState state);
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
Sets the LED on or off. |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Examples// Turn on LED with previous intensity.
Optical.setLight(ledState::on);
setLightPower#
ตั้งค่าความสว่างของไฟ LED ในเซ็นเซอร์แสง แสงสว่างจะช่วยให้เซ็นเซอร์แสงตรวจจับวัตถุและสีได้ชัดเจนยิ่งขึ้น
หากไฟแสดงสถานะของเซ็นเซอร์แสงดับอยู่ การปรับกำลังไฟให้สูงกว่า 0% จะทำให้ไฟแสดงสถานะติดขึ้น
หากไฟแสดงสถานะของเซ็นเซอร์แสงติดอยู่ การตั้งค่ากำลังไฟเป็น 0% จะทำให้ไฟแสดงสถานะดับลง
เปอร์เซ็นต์ที่สูงขึ้นจะทำให้แสงสว่างมากขึ้น เปอร์เซ็นต์ที่ต่ำลงจะทำให้แสงสว่างน้อยลง
Available Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
สามารถปรับระดับความสว่างได้ตั้งแต่ 0 – 100 |
|
|
The unit that represents the light intensity: |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Examples// Set the light power to 50 percent.
Optical.setLightPower(50, percent);
isNearObject#
ส่งคืนค่าหากเซ็นเซอร์แสงตรวจพบวัตถุที่อยู่ใกล้เคียง
Available Functionsbool isNearObject();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesฟังก์ชันนี้จะส่งคืนค่าบูลีนที่ระบุว่าตรวจพบวัตถุที่อยู่ใกล้เคียงหรือไม่:
true– เซ็นเซอร์แสงตรวจจับวัตถุได้false– เซ็นเซอร์แสงไม่ตรวจพบวัตถุ
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
Brain.Screen.print("near object");
}
color#
ส่งคืนสีที่ตรวจจับได้โดยเซ็นเซอร์แสง
Available Functionsvex::color color();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesสีที่ตรวจพบโดยเซ็นเซอร์แสงเป็นอินสแตนซ์ของ คลาสสี
สีที่เป็นไปได้ ได้แก่:
blackwhitered- ค่าเฉดสีระหว่าง 340° - 20°green- ค่าเฉดสีระหว่าง 80° - 140°blue- ค่าเฉดสีระหว่าง 200° - 240°yellow- ค่าเฉดสีระหว่าง 40° - 60°orange- ค่าเฉดสีระหว่าง 20° - 40°purple- ค่าเฉดสีระหว่าง 240° - 280°cyan- ค่าเฉดสีระหว่าง 140° - 200°
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
color detectColor = Optical.color();
// Print the color detected by the Optical Sensor
// to the Brain's screen
Brain.Screen.print(detectColor);
brightness#
ส่งคืนปริมาณแสงที่สะท้อนจากวัตถุ
เปอร์เซ็นต์ที่สูงขึ้นหมายความว่ามีแสงสะท้อนกลับไปยังเซ็นเซอร์แสงมากขึ้น เปอร์เซ็นต์ที่ต่ำลงหมายความว่ามีแสงสะท้อนกลับน้อยลง
Available Functionsdouble brightness(bool bRaw = false);
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ค่าบูลีนสำหรับอ่านข้อมูลความสว่างดิบแทนที่จะเป็นเปอร์เซ็นต์ ค่าเริ่มต้นคือ |
ค่าตัวเลขทศนิยม (double) ที่แสดงถึงความสว่างที่ตรวจจับได้โดยเซ็นเซอร์แสง โดยมีค่าอยู่ในช่วง 0 - 100% หรือค่าตัวเลขทศนิยมที่แสดงถึงข้อมูลดิบที่ตรวจจับได้โดยเซ็นเซอร์
Examples// Set a variable, brightness, to the value of the brightness
// detected by the Optical Sensor
double brightness = Optical.brightness();
// Print the brightness detected by the Optical Sensor to the
// Brain's screen
Brain.Screen.print(brightness);
hue#
ส่งคืนค่าเฉดสีของสีที่ตรวจพบ
เฉดสี คือวิธีการอธิบายสีโดยใช้ตัวเลขรอบวงล้อสี

double hue();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesค่าตัวเลขทศนิยมที่แสดงค่าเฉดสีที่ตรวจจับได้โดยเซ็นเซอร์แสง ในช่วง 0 — 359.99
Examples// Set a variable, hue, to the value of the hue detected
// by the Optical Sensor.
double hue = Optical.hue();
objectDetected#
ลงทะเบียนฟังก์ชันเรียกกลับ (callback function) สำหรับกรณีที่ตรวจพบวัตถุ
Available Functionsvoid objectDetected(void (* callback)(void));
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
A previously defined function that executes when the Optical Sensor detects a new object. |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Examplesกำหนดฟังก์ชันเรียกกลับ (นอก
int main())// Display a message when the Optical Sensor detects an object. void detected() { Brain.Screen.print("object detected"); }ลงทะเบียนฟังก์ชันเรียกกลับภายใน
int main()int main() { // Run detected when the Optical Sensor detects an object. Optical.objectDetected(detected); }
objectLost#
ลงทะเบียนฟังก์ชันเรียกกลับสำหรับกรณีที่วัตถุสูญหาย
Available Functionsvoid objectLost(void (* callback)(void));
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
A previously defined function that executes when the Optical Sensor loses a detected object. |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Examplesกำหนดฟังก์ชันเรียกกลับ (นอก
int main())// Display a message when the Optical Sensor loses an object. void lost() { Brain.Screen.print("object lost"); }ลงทะเบียนฟังก์ชันเรียกกลับภายใน
int main()int main() { // Run lost when the Optical Sensor loses an object. Optical.objectLost(lost); }