我正在编写一个Arduino,我希望我的if语句仅在电压增加时响应,而不是在电压增加时响应。
这就是我现在所拥有的:
void setup() {
Serial.begin(9800);
pinMode(13, OUTPUT);
}
void loop() {
int sensorValue5 = analogRead(A5);
float voltage5 = sensorValue5 * (5.0 / 1023.0);
Serial.println(voltage5);
if (voltage5 > 0.56 && voltage5 < 0.66) {
digitalWrite(13, HIGH);
Serial.println("TURNING BULB ON!");
delay(200);
digitalWrite(13, LOW);
Serial.println("TURNING BULB OFF!");
}
}
此代码的问题在于if语句在电压从低于0.56伏特增加时执行,但是当电压从高于0.66伏特降低时也会执行。我希望if语句仅在电压上升时才执行,而不是回落。
请帮助我这非常重要。谢谢。
答案 0 :(得分:0)
当电压上升时,电流读数将大于先前的读数。如果电压单调增加或减少,您可以通过创建一个变量来存储先前的电压读数来处理这个问题:
previous_voltage_reading
如果您想让条件代码在第一次运行时不执行,您想要选择一个适当大的数字来初始化var appendWithCommandLineArguments = function(cmd, arguments) {
var to_append = _.chain(command_line_args)
.pick(arguments)
.reduce(function(string, val, prop){
return string+"--"+prop+"="+val+" ";
}, " ")
.value();
return cmd + to_append
}
gulp.task('taskmailer', shell.task([
appendWithCommandLineArguments('node automate/build/mail/taskMailer.js', ["email", "template"])
]))
,