gpt4 book ai didi

arduino - 评估一个值是增加还是减少(arduino)

转载 作者:行者123 更新时间:2023-12-04 20:09:36 29 4
gpt4 key购买 nike

我正在尝试学习如何评估一个值是增加还是减少。在这种情况下,我使用从 0 - 14 映射的电位计。基本上我需要它来查看当前值,如果当前值增加,则打印一件事,如果该值减小,则打印其他内容。

到目前为止,这是我所拥有的,我知道这是不对的,但它是一个开始。

想法?

谢谢你。

void setup() { 
Serial.begin(9600);
}


void loop() {

int val = analogRead(A0); // read the input on analog pin 0:
val = map(val, 0, 1023, 0, 14); // map the vlaues to new values
Serial.println(val); // print those values
delay(1); // delay by a second.

// sudo code

if (val++) {

Serial.println("up");

} else if (val--){

Serial.print("down");

}else{

// do nothing
}
}// end loop

最佳答案

变量声明

int val = analogRead(A0);  // read the input on analog pin 0:

我不建议你在 loop() 中声明变量当您可以在外面声明它们时的函数:

// declaration here!
int val = 0;

void setup() {
Serial.begin(9600);
}

void loop() {

// just set the value
val = analogRead(A0); // read the input on analog pin 0:
val = map(val, 0, 1023, 0, 14); // map the vlaues to new values

...

增加/减少检查

在 C++ 中,您甚至可以在条件语句中进行赋值。 if (val++)if (val--)不会做你期望的。 if语句检查是否 val不为假或 0,然后 ++将其增加 1。 val-- 相同但减少-1。

您可以做的是将先前的值保留在另一个变量中(假设 prev ),以便稍后像这样进行比较:

// declaration here!
int val = 0;
int prev;

...

void loop() {

// keep the previous value
prev = val;

// just set the value
val = analogRead(A0); // read the input on analog pin 0:

...

// compare the previous value
if (val > prev) {
Serial.println("up");
} else if (val < prev) {
Serial.println("down");
}

// and no need to leave empty an `else` block

}

关于arduino - 评估一个值是增加还是减少(arduino),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19989903/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com