From 81687a0a7f50037d604cd01b262b1825c1716225 Mon Sep 17 00:00:00 2001 From: "lxbpxylps@126.com" Date: Wed, 24 Feb 2021 18:08:24 +0800 Subject: [PATCH] =?UTF-8?q?sensor=20=E5=BA=93=E5=A2=9E=E5=8A=A0=E9=97=AA?= =?UTF-8?q?=E7=83=81=E7=81=B0=E5=BA=A6=E4=BC=A0=E6=84=9F=E5=99=A8=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TaiChi/sensorTaiChi.cpp | 58 +++++++++++++++++++++++++++++++++++++++++ TaiChi/sensorTaiChi.h | 24 +++++++++++++++-- 2 files changed, 80 insertions(+), 2 deletions(-) diff --git a/TaiChi/sensorTaiChi.cpp b/TaiChi/sensorTaiChi.cpp index 9350b70..e74f3e1 100644 --- a/TaiChi/sensorTaiChi.cpp +++ b/TaiChi/sensorTaiChi.cpp @@ -7,9 +7,66 @@ Sensor::Sensor() { pinMode(BUTTON_1_OUT, INPUT); pinMode(BUTTON_2_OUT, INPUT); + + pinMode(GRAY_1_VCC, OUTPUT); + digitalWrite(GRAY_1_VCC, HIGH); + + pinMode(GRAY_2_VCC, OUTPUT); + digitalWrite(GRAY_2_VCC, HIGH); + + pinMode(GRAY_3_VCC, OUTPUT); + digitalWrite(GRAY_3_VCC, HIGH); + + pinMode(GRAY_4_VCC, OUTPUT); + digitalWrite(GRAY_4_VCC, HIGH); + + pinMode(GRAY_5_VCC, OUTPUT); + digitalWrite(GRAY_5_VCC, HIGH); + + pinMode(GRAY_6_VCC, OUTPUT); + digitalWrite(GRAY_6_VCC, HIGH); + + pinMode(BUTTON_1_VCC, OUTPUT); + digitalWrite(BUTTON_1_VCC, HIGH); + + pinMode(BUTTON_2_VCC, OUTPUT); + digitalWrite(BUTTON_2_VCC, HIGH); } +//使灰度传感器闪烁 +void Sensor::FlashGraySensor(uint8_t gray_sensor_num) +{ + switch (gray_sensor_num) + { + case GRAY_1: digitalWrite(GRAY_1_VCC, LOW); break; + case GRAY_2: digitalWrite(GRAY_2_VCC, LOW); break; + 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); + } + + #ifdef SENSOR_DEBUG + //调试输出闪烁信息 + switch (gray_sensor_num) + { + case GRAY_1: Serial.println("#SENSOR: FLASH GRAY_1 NOW!"); break; + case GRAY_2: Serial.println("#SENSOR: FLASH GRAY_2 NOW!"); break; + 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!"); + } + #endif + + delay(GRAY_FLASH_TIME); + Sensor(); + delay(GRAY_FLASH_TIME); +} + + +//灰度传感器判断下方是否为白色 bool Sensor::IsWhite(uint8_t gray_sensor_num) { uint8_t gray_out_pin; @@ -48,6 +105,7 @@ bool Sensor::IsWhite(uint8_t gray_sensor_num) } +//碰撞传感器(开关)判断是否闭合 bool Sensor::IsPushed(uint8_t button_num) { uint8_t button_out_pin; diff --git a/TaiChi/sensorTaiChi.h b/TaiChi/sensorTaiChi.h index c4575c6..109a7be 100644 --- a/TaiChi/sensorTaiChi.h +++ b/TaiChi/sensorTaiChi.h @@ -6,7 +6,7 @@ #define SENSOR_DEBUG -//灰度传感器接口定义 +//灰度传感器 OUT 接口定义 #define GRAY_1_OUT A0 #define GRAY_2_OUT A1 #define GRAY_3_OUT A2 @@ -14,9 +14,20 @@ #define GRAY_5_OUT A4 #define GRAY_6_OUT A5 +//灰度传感器 VCC 接口定义 +#define GRAY_1_VCC 48 +#define GRAY_2_VCC 49 +#define GRAY_3_VCC 50 +#define GRAY_4_VCC 51 +#define GRAY_5_VCC 52 +#define GRAY_6_VCC 53 + //灰度传感器临界值 #define GRAY_GATE_VAL 800 +//灰度传感器闪烁时间 +#define GRAY_FLASH_TIME 200 + //灰度传感器标识定义 #define GRAY_1 0 #define GRAY_2 1 @@ -25,10 +36,14 @@ #define GRAY_5 4 #define GRAY_6 5 -//碰撞传感器接口定义 +//碰撞传感器 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 0 #define BUTTON_2 1 @@ -39,8 +54,13 @@ class Sensor public: Sensor(); + //使灰度传感器闪烁 + void FlashGraySensor(uint8_t gray_sensor_num); + + //灰度传感器判断下方是否为白色 bool IsWhite(uint8_t gray_sensor_num); + //碰撞传感器(开关)判断是否闭合 bool IsPushed(uint8_t button_num); };