我正在尝试用我的Arduino制作水果钢琴,现在我只是在纸上使用油漆。当我按下按钮时,我会得到多行输出。我该如何解决这个问题。 这是一个正在发生的事情的视频(对不起质量):https://www.youtube.com/watch?v=zr2mQMRO6IY
代码:
#include <CapacitiveSensor.h>
/* DIY Piano
- DIY Piano with Arduino. This is a very simple project.
- ONLY needed some very cheap materials,
e.g. pencil, A4 paper, paper clip, speaker, male-to-male jumper, breadboard and Arduino Uno board.
- Of course the Arduino Uno board is not cheap, but it is reusable for other projects too. So it is worth to own one.
- This project using the concept of capasitive sensor, so no switch/button is required for it.
- Here is the link of capacitive sensor. For better understanding, please visit the page.
http://playground.arduino.cc//Main/CapacitiveSensor?from=Main.CapSense
- To watch the Demo of This Project:
http://www.youtube.com/watch?v=X4QNT5hOHLs&list=TLlm-tAV1gEzDF4VV39VdjCSLNlfe0tTpU
Created by:
Oh Hai Seng || Junny Oh 07 November 2013
*/
// Import the CapacitiveSensor Library.
#include <CapacitiveSensor.h>
// Name the pin as led.
//#define speaker 11
// Set the Send Pin & Receive Pin
CapacitiveSensor cs_2_4 = CapacitiveSensor(2,4); // 10M resistor between pins 4 & 6, pin 6 is sensor pin, add a wire and or foil
void setup()
{
cs_2_4.set_CS_AutocaL_Millis(0xFFFFFFFF); // turn off autocalibrate on channel 1 - just as an example
// Arduino start communicate with computer.
Serial.begin(9600);
}
void loop()
{
// Set a timer.
long start = millis();
// Set the sensitivity of the sensors.
long total2 = cs_2_4.capacitiveSensor(60);
// When hand is touched the sensor, the speaker will produce a tone.
// I set a threshold for it, so that the sensor won't be too sensitive.
if (total2 > 590){ i++; Serial.println( i + " Touched!\n");}
delay(0); // arbitrary delay to limit data to serial port
}
答案 0 :(得分:0)
Arduino使用循环,每次进入循环时都会执行整个代码,这就是为什么你在屏幕上得到多个输出。
您需要做的是标记按下按钮的时间,如
buttonOnePressed = true;
直到你进入按下按钮的状态但变量buttonOnePressed为真,你就什么也不做,这将避免多个输出。 但是当库检测到手指被移除时,请确保将变量设置为零,否则您将无法再次重新按下它。