kalimov 发表于 2018-3-9 15:09:18

无意中挖到一份以前自己写的代码,拿出来给大家猜

无意中挖到一份以前自己写的代码,拿出来给大家猜。秀硬件功能求代码的帖子网上多了,现在倒过来玩,看看大家口味如何。
这是一份Arduino IDE环境下写的程序,配有硬件实现其功能。代码后有注解,作为大家推理的线索。注解需要中文知识进行分析。

int Human_Sensor1 = 52; //凡闺房事,人所为也。int Human_Sensor2 = 53;int Ultra_Sonic; //廿四耳目藏身下int Ultra_Sonic_Trigger = 22;float US_Distance; //静待塌上春意闹。float US_Previous_Distance;float US_Former_Distance;int Sound_Sensor = 49; //巫山云雨比翼时,承欢男女东窗刻。int X_Vibration = 50; //卿卿我我,摇摇晃晃歪歪。int Y_Vibration = 51;int Execute = 48; //棒打鸳鸯int Alert = 12; //当头棒喝 long Period = 60000;//是贞是奸,尘埃落定终有时。int Time_Stopper = 0; //凭谁记,司辰者。int XY_Stopper = 0; //或牡丹花下,或龙虎相济。int Sound_Stopper = 0; //亦莺声浪语。float Z_Initial = 20; //塌上起伏多寡,盖以此计。 int Executed = 0; //一失足成千古恨,再回首已是百年身。 unsigned long Sampling_Period; //春宵一刻值千金,春宵三十分之一刻值三十三金。unsigned long XY_Start;unsigned long XY_Timer;unsigned long XY_Ratio;unsigned long Sound_Start;unsigned long Sound_Timer; String Message = ""; //运筹帷幄千里之外 int i;long Manual_Delay = 0; //听回音,毋忘计时。 void setup() {Serial.begin(9600);for (i = 0; i < 24; i = i + 1) {    Ultra_Sonic = i + 23;}for (i = 0; i < 24; i = i + 1) {    pinMode(Ultra_Sonic, INPUT);}pinMode(Sound_Sensor, INPUT);pinMode(X_Vibration, INPUT);pinMode(Y_Vibration, INPUT);pinMode(Human_Sensor1, INPUT);pinMode(Human_Sensor2, INPUT);pinMode(Ultra_Sonic_Trigger, OUTPUT);pinMode(Execute, OUTPUT);} void loop() {if (digitalRead(Human_Sensor1) || digitalRead(Human_Sensor2) != 0) { //举头三寸无神明,乃机关也。人影莆动,视为号也。    if (Time_Stopper == 0) { //观察期届,一元复始。      Sampling_Period = millis();      Time_Stopper = 1;    }    if (millis() - Sampling_Period <= Period) { //断一期内之贞奸      Communication(); //通风报信      if (digitalRead(X_Vibration) || digitalRead(Y_Vibration)) { //牵一发动全身      if (XY_Stopper == 0) { //甫动,计时。          XY_Start = millis();                    XY_Stopper = 1;      }      }      else { //入静,结算之。      XY_Timer = XY_Timer + (millis() - XY_Start);      XY_Stopper = 0;      }      if (millis() - Sampling_Period >= 0.5 * Period) { //情到浓时满室春,声震屋瓦却陷囵。      if (digitalRead(Sound_Sensor)) { //大呼,计时。          if (Sound_Stopper == 0) {            Sound_Start = millis();            Sound_Stopper = 1;          }      }      else { //入静,结算之。          Sound_Timer = Sound_Timer + (millis() - Sound_Start);          Sound_Stopper = 0;      }      if (Sound_Timer >= 0.2 * Period) { //向使当初声未始,一生贞猥复谁知。          Executed = 1; //一失声成千古恨,再回首已是百年身。          Execution();      }      }    }    else {      if (XY_Timer >= 0.5 * Period) { //无风起浪,非奸即盗。      Executed = 1; //一失足成千古恨,再回首已是百年身。      Execution();      }      Communication(); //通风报信      XY_Timer = 0; //一期一判      Time_Stopper = 0;      Sound_Timer = 0;      Sound_Stopper = 0;    }    Ultra_Sonic_Sensor(); //龙翻龟腾兔吮毫,百般动静皆为过。}} void Ultra_Sonic_Sensor() {pinMode(Ultra_Sonic_Trigger, LOW);Manual_Delay = 0; //休言光阴待人事,怠慢尔等监视工。Manual_Delay = 0;pinMode(Ultra_Sonic_Trigger, HIGH);Manual_Delay = 0;Manual_Delay = 0;Manual_Delay = 0;Manual_Delay = 0;Manual_Delay = 0;Manual_Delay = 0;Manual_Delay = 0;Manual_Delay = 0;Manual_Delay = 0;Manual_Delay = 0;pinMode(Ultra_Sonic_Trigger, LOW);for (i = 0; i < 24; i = i + 1){     US_Distance = Z_Initial - pulseIn(Ultra_Sonic, HIGH) /58.00; //二十四桥明月夜,玉人何处教吹箫。}} void Communication() {for (i = 0; i < 24; i = i + 1) {    Message = Message + String(US_Distance) + String('|');}XY_Ratio = XY_Timer / Period;Message = Message + String(XY_Ratio);Serial.println(Message); Message = "";} void Execution() {if (millis() %1000 < 500) { //亮灭    pinMode(Execute, HIGH);}else {    pinMode(Execute, LOW);}}
P.S. 蘑菇云会员众欢迎猜测,猜中后本人亲手制作个吨位级的奖品。以上。

DGG 发表于 2018-3-9 15:34:52

kalimov 发表于 2018-3-9 15:09
无意中挖到一份以前自己写的代码,拿出来给大家猜。秀硬件功能求代码的帖子网上多了,现在倒过来玩,看看大 ...

这个是用来捉奸的么

yoyojacky 发表于 2018-3-9 15:38:12

有超声波传感器,有人体红外热释传感器, 你是要捉奸隔壁老王啊.

kalimov 发表于 2018-3-9 15:42:05

不止捉老王,提示还能把老王变成老土或者老士……

Zer0 发表于 2018-3-12 10:42:47

除了能知道老王来了,还能知道老王“功夫”之高低,然后再“飞鸽传书”,又以绝学狮子吼击之......实在佩服佩服!

1973742214 发表于 2018-3-13 17:55:20

打呀打呀打飞机{:5_117:}
页: [1]
查看完整版本: 无意中挖到一份以前自己写的代码,拿出来给大家猜