增加灰度传感器灰度值偏离比例计算
This commit is contained in:
parent
811122382c
commit
f3f374716a
@ -114,6 +114,57 @@ bool Sensor::IsWhite(uint8_t gray_sensor_num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//灰度传感器灰度值偏离比例,即 (gray_gate - gray_val) / gray_gate
|
||||||
|
float Sensor::GrayDeviationRate(uint8_t gray_sensor_num)
|
||||||
|
{
|
||||||
|
uint8_t gray_out_pin;
|
||||||
|
int gray_val;
|
||||||
|
int gray_gate;
|
||||||
|
float deviarion_rate;
|
||||||
|
|
||||||
|
switch (gray_sensor_num)
|
||||||
|
{
|
||||||
|
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);
|
||||||
|
|
||||||
|
#ifdef SENSOR_DEBUG
|
||||||
|
//调试输出灰度值
|
||||||
|
switch (gray_sensor_num)
|
||||||
|
{
|
||||||
|
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.print(gray_val);
|
||||||
|
Serial.print(" ");
|
||||||
|
Serial.print(gray_gate);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//deviarion_rate = (float)(gray_gate - gray_val) / gray_gate;
|
||||||
|
deviarion_rate = (float)gray_val / gray_gate;
|
||||||
|
|
||||||
|
#ifdef SENSOR_DEBUG
|
||||||
|
Serial.print(" deviarion_rate: ");
|
||||||
|
Serial.println(deviarion_rate);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return deviarion_rate;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//碰撞传感器(开关)判断是否闭合
|
//碰撞传感器(开关)判断是否闭合
|
||||||
bool Sensor::IsPushed(uint8_t button_num)
|
bool Sensor::IsPushed(uint8_t button_num)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -25,13 +25,13 @@
|
|||||||
#define GRAY_7_VCC 47
|
#define GRAY_7_VCC 47
|
||||||
|
|
||||||
//灰度传感器临界值
|
//灰度传感器临界值
|
||||||
#define GRAY_1_GATE 740
|
#define GRAY_1_GATE 900
|
||||||
#define GRAY_2_GATE 740
|
#define GRAY_2_GATE 900
|
||||||
#define GRAY_3_GATE 740
|
#define GRAY_3_GATE 850
|
||||||
#define GRAY_4_GATE 740
|
#define GRAY_4_GATE 850
|
||||||
#define GRAY_5_GATE 740
|
#define GRAY_5_GATE 900
|
||||||
#define GRAY_6_GATE 740
|
#define GRAY_6_GATE 880
|
||||||
#define GRAY_7_GATE 790
|
#define GRAY_7_GATE 802
|
||||||
|
|
||||||
//灰度传感器闪烁时间
|
//灰度传感器闪烁时间
|
||||||
#define GRAY_FLASH_TIME 200
|
#define GRAY_FLASH_TIME 200
|
||||||
@ -69,6 +69,9 @@ public:
|
|||||||
//灰度传感器判断下方是否为白色
|
//灰度传感器判断下方是否为白色
|
||||||
bool IsWhite(uint8_t gray_sensor_num);
|
bool IsWhite(uint8_t gray_sensor_num);
|
||||||
|
|
||||||
|
//灰度传感器灰度值偏离比例,即 (gray_gate - gray_val) / gray_gate
|
||||||
|
float GrayDeviationRate(uint8_t gray_sensor_num);
|
||||||
|
|
||||||
//碰撞传感器(开关)判断是否闭合
|
//碰撞传感器(开关)判断是否闭合
|
||||||
bool IsPushed(uint8_t button_num);
|
bool IsPushed(uint8_t button_num);
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user