From c073145d73e4e08c308f7e3c71c00e32450ae4d2 Mon Sep 17 00:00:00 2001 From: "lxbpxylps@126.com" Date: Wed, 24 Feb 2021 18:10:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9C=A8=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E5=89=8D=E6=A3=80=E6=B5=8B=E7=81=B0=E5=BA=A6?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=98=AF=E5=90=A6=E6=AD=A3=E5=B8=B8=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TaiChi/TaiChi.ino | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/TaiChi/TaiChi.ino b/TaiChi/TaiChi.ino index 1bd5dbe..60eaaaf 100644 --- a/TaiChi/TaiChi.ino +++ b/TaiChi/TaiChi.ino @@ -101,6 +101,9 @@ bool is_carry = false; //****************************************自定函数**************************************** +//在开始运行前检测灰度参数是否正常,若不正常,异常传感器闪烁,程序不继续进行 +void CheckGrayGate(void); + #define NO_JUMP 0 #define JUMP_DEAD_ROAD 1 //更新标记 @@ -178,6 +181,9 @@ void setup() move.Stop(); servo.StopAndReset(); + //在开始运行前检测灰度参数是否正常 + CheckGrayGate(); + //计算最大数组下标 max_flag = sizeof(route) / sizeof(route[0]) - 1; @@ -350,6 +356,35 @@ void loop() } +//在开始运行前检测灰度参数是否正常,若不正常,异常传感器闪烁,程序不继续进行 +void CheckGrayGate(void) +{ + //若参数正常,1 2 5 6 号传感器检测到黑色,3 4 号传感器检测到白色 + bool is_gate_right = false; + + while (!is_gate_right) + { + if (sensor.IsWhite(GRAY_1)) + sensor.FlashGraySensor(GRAY_1); + else if (sensor.IsWhite(GRAY_2)) + sensor.FlashGraySensor(GRAY_2); + else if (!sensor.IsWhite(GRAY_3)) + sensor.FlashGraySensor(GRAY_3); + else if (!sensor.IsWhite(GRAY_4)) + sensor.FlashGraySensor(GRAY_4); + else if (sensor.IsWhite(GRAY_5)) + sensor.FlashGraySensor(GRAY_5); + else if (sensor.IsWhite(GRAY_6)) + sensor.FlashGraySensor(GRAY_6); + else is_gate_right = true; + } + + #ifdef TAICHI_DEBUG + Serial.println("#TAICHI: Gray Gate OK!"); + #endif +} + + //更新标记 void UpdateFlag(uint8_t jump_choice) {