From 190f724010ad7778c09d0d8a02ad48a883b9f6bd Mon Sep 17 00:00:00 2001 From: "lxbpxylps@126.com" Date: Fri, 5 Mar 2021 22:04:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=81=B0=E5=BA=A6=E4=BC=A0?= =?UTF-8?q?=E6=84=9F=E5=99=A8=EF=BC=8C=E6=9B=B4=E6=96=B0=E4=BC=A0=E6=84=9F?= =?UTF-8?q?=E5=99=A8=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TaiChi/sensorTaiChi.cpp | 43 +++++++++++++++++++++++++---------------- TaiChi/sensorTaiChi.h | 15 +++++++++++--- 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/TaiChi/sensorTaiChi.cpp b/TaiChi/sensorTaiChi.cpp index e74f3e1..a14cf37 100644 --- a/TaiChi/sensorTaiChi.cpp +++ b/TaiChi/sensorTaiChi.cpp @@ -26,6 +26,9 @@ Sensor::Sensor() pinMode(GRAY_6_VCC, OUTPUT); digitalWrite(GRAY_6_VCC, HIGH); + pinMode(GRAY_7_VCC, OUTPUT); + digitalWrite(GRAY_7_VCC, HIGH); + pinMode(BUTTON_1_VCC, OUTPUT); digitalWrite(BUTTON_1_VCC, HIGH); @@ -44,7 +47,8 @@ void Sensor::FlashGraySensor(uint8_t gray_sensor_num) case GRAY_3: digitalWrite(GRAY_3_VCC, LOW); break; case GRAY_4: digitalWrite(GRAY_4_VCC, LOW); break; case GRAY_5: digitalWrite(GRAY_5_VCC, LOW); break; - case GRAY_6: digitalWrite(GRAY_6_VCC, LOW); + case GRAY_6: digitalWrite(GRAY_6_VCC, LOW); break; + case GRAY_7: digitalWrite(GRAY_7_VCC, LOW); } #ifdef SENSOR_DEBUG @@ -56,7 +60,8 @@ void Sensor::FlashGraySensor(uint8_t gray_sensor_num) case GRAY_3: Serial.println("#SENSOR: FLASH GRAY_3 NOW!"); break; case GRAY_4: Serial.println("#SENSOR: FLASH GRAY_4 NOW!"); break; case GRAY_5: Serial.println("#SENSOR: FLASH GRAY_5 NOW!"); break; - case GRAY_6: Serial.println("#SENSOR: FLASH GRAY_6 NOW!"); + case GRAY_6: Serial.println("#SENSOR: FLASH GRAY_6 NOW!"); break; + case GRAY_7: Serial.println("#SENSOR: FLASH GRAY_7 NOW!"); } #endif @@ -66,20 +71,21 @@ void Sensor::FlashGraySensor(uint8_t gray_sensor_num) } -//灰度传感器判断下方是否为白色 bool Sensor::IsWhite(uint8_t gray_sensor_num) { uint8_t gray_out_pin; int gray_val; + int gray_gate; switch (gray_sensor_num) { - case GRAY_1: gray_out_pin = GRAY_1_OUT; break; - case GRAY_2: gray_out_pin = GRAY_2_OUT; break; - case GRAY_3: gray_out_pin = GRAY_3_OUT; break; - case GRAY_4: gray_out_pin = GRAY_4_OUT; break; - case GRAY_5: gray_out_pin = GRAY_5_OUT; break; - case GRAY_6: gray_out_pin = GRAY_6_OUT; + case GRAY_1: gray_out_pin = GRAY_1_OUT; gray_gate = GRAY_1_GATE; break; + case GRAY_2: gray_out_pin = GRAY_2_OUT; gray_gate = GRAY_2_GATE; break; + case GRAY_3: gray_out_pin = GRAY_3_OUT; gray_gate = GRAY_3_GATE; break; + case GRAY_4: gray_out_pin = GRAY_4_OUT; gray_gate = GRAY_4_GATE; break; + case GRAY_5: gray_out_pin = GRAY_5_OUT; gray_gate = GRAY_5_GATE; break; + case GRAY_6: gray_out_pin = GRAY_6_OUT; gray_gate = GRAY_6_GATE; break; + case GRAY_7: gray_out_pin = GRAY_7_OUT; gray_gate = GRAY_7_GATE; } gray_val = analogRead(gray_out_pin); @@ -88,18 +94,21 @@ bool Sensor::IsWhite(uint8_t gray_sensor_num) //调试输出灰度值 switch (gray_sensor_num) { - case GRAY_1: Serial.print("#SENSOR: GRAY_1: "); break; - case GRAY_2: Serial.print("#SENSOR: GRAY_2: "); break; - case GRAY_3: Serial.print("#SENSOR: GRAY_3: "); break; - case GRAY_4: Serial.print("#SENSOR: GRAY_4: "); break; - case GRAY_5: Serial.print("#SENSOR: GRAY_5: "); break; - case GRAY_6: Serial.print("#SENSOR: GRAY_6: "); + case GRAY_1: Serial.print("#SENSOR: GRAY_1 and gate_val: "); break; + case GRAY_2: Serial.print("#SENSOR: GRAY_2 and gate_val: "); break; + case GRAY_3: Serial.print("#SENSOR: GRAY_3 and gate_val: "); break; + case GRAY_4: Serial.print("#SENSOR: GRAY_4 and gate_val: "); break; + case GRAY_5: Serial.print("#SENSOR: GRAY_5 and gate_val: "); break; + case GRAY_6: Serial.print("#SENSOR: GRAY_6 and gate_val: "); break; + case GRAY_7: Serial.print("#SENSOR: GRAY_7 and gate_val: "); } - Serial.println(gray_val); + Serial.print(gray_val); + Serial.print(" "); + Serial.println(gray_gate); #endif - if (gray_val > GRAY_GATE_VAL) + if (gray_val > gray_gate) return true; else return false; } diff --git a/TaiChi/sensorTaiChi.h b/TaiChi/sensorTaiChi.h index 19a9f16..a331080 100644 --- a/TaiChi/sensorTaiChi.h +++ b/TaiChi/sensorTaiChi.h @@ -13,6 +13,7 @@ #define GRAY_4_OUT A3 #define GRAY_5_OUT A4 #define GRAY_6_OUT A5 +#define GRAY_7_OUT A6 //灰度传感器 VCC 接口定义 #define GRAY_1_VCC 48 @@ -21,9 +22,16 @@ #define GRAY_4_VCC 51 #define GRAY_5_VCC 52 #define GRAY_6_VCC 53 +#define GRAY_7_VCC 47 //灰度传感器临界值 -#define GRAY_GATE_VAL 700 +#define GRAY_1_GATE 740 +#define GRAY_2_GATE 740 +#define GRAY_3_GATE 740 +#define GRAY_4_GATE 740 +#define GRAY_5_GATE 740 +#define GRAY_6_GATE 740 +#define GRAY_7_GATE 790 //灰度传感器闪烁时间 #define GRAY_FLASH_TIME 200 @@ -35,14 +43,15 @@ #define GRAY_4 3 #define GRAY_5 4 #define GRAY_6 5 +#define GRAY_7 6 //碰撞传感器 OUT 接口定义 #define BUTTON_1_OUT 2 #define BUTTON_2_OUT 3 //碰撞传感器 VCC 接口定义 -#define BUTTON_1_VCC 46 -#define BUTTON_2_VCC 47 +#define BUTTON_1_VCC 45 +#define BUTTON_2_VCC 46 //碰撞传感器标识定义 #define BUTTON_1 0