在使用Arduino开关进行处理时,如何使图像保持在屏幕上?
我正在连接处理和Arduino按钮。它已成功连接到标准Firmata。我想发生的是,当按下按钮时,图像将在处理过程中显示,但也会停留在屏幕上,就像LED一样,然后当再次按下按钮时,图像将从屏幕上消失。我现在只是用形状来测试它。我已经用LED测试过了,效果很好。知道我做错了什么吗?这是我的代码:在使用Arduino开关进行处理时,如何使图像保持在屏幕上?,arduino,switch-statement,processing,firmata,Arduino,Switch Statement,Processing,Firmata,我正在连接处理和Arduino按钮。它已成功连接到标准Firmata。我想发生的是,当按下按钮时,图像将在处理过程中显示,但也会停留在屏幕上,就像LED一样,然后当再次按下按钮时,图像将从屏幕上消失。我现在只是用形状来测试它。我已经用LED测试过了,效果很好。知道我做错了什么吗?这是我的代码: void draw() { buttonState = arduino.digitalRead(buttonPin); if (buttonState == arduino.HIGH &
void draw()
{
buttonState = arduino.digitalRead(buttonPin);
if (buttonState == arduino.HIGH && buttonPressed == 0)
{
buttonPressed = 1;
rect(10, 10, 10, 10);
text("hello", 10, 10);
}
if (buttonState == arduino.LOW && buttonPressed == 1)
{
buttonPressed = 0;
rect(50, 50, 10, 10);
}
}
我不知道你是怎么按上按钮的。我想当你按它的时候它会变高 当前,当按下按钮时,您的第一个
if
语句将被触发,但只有在上次检查时未按下时(即,它实际上是上升沿触发的)
释放按钮时,您的第二条if
语句将被触发,但只有在您上次检查时没有释放时(即,它实际上是下降沿触发的)
如果希望按钮每次按下时都能切换某些内容,则可能需要将大部分逻辑放入第一个If
语句中(除了按钮按下的内容)。您需要存储某种值,该值表示图像当前是否可见。如果按下按钮时它可见,则将其隐藏(反之亦然)
例如:
boolean imageVisible = false;
void draw()
{
buttonState = arduino.digitalRead(buttonPin);
if (buttonState == arduino.HIGH && buttonPressed == 0)
{
buttonPressed = 1;
if (imageVisible) {
// Hide image here...
} else {
// Show image here...
}
imageVisible = !imageVisible;
}
if (buttonState == arduino.LOW)
{
buttonPressed = 0;
}
}
注意:我从第二个if
语句中删除了按钮按下的检查。只有当你真的需要对下降边缘事件做出反应时,才有必要这样做。对于简单的切换,这并不重要。谢谢。这真的很有帮助!