You'll need to download install the CapacitiveSensor Library.
Open up the Arduino library manager:
Search for capacitivesensor and install it
After downloading and installing the CapacitiveSensor Library, copy and paste the code below into the Arduino IDE. Then, compile and upload it to your Metro (or Metro Express).
/*
* CIRC20 - Capacitive Sensing with the Metro and Metro M0 Express
*
* by Brent Rubell for Adafruit Industries. Support Open Source Hardware, Buy Adafruit!
*/
#include <CapacitiveSensor.h>
// piezo speaker pin
int piezoPin = 9;
// 10M resistor between pins 4 & 2, pin 2 is sensor pin, add a wire and or foil if desired
// put a 10M resistor between pins 4 & 2, pin 2 is the sensor pin, 4 is the receiver
CapacitiveSensor cs_4_2 = CapacitiveSensor(4,2);
void setup()
{
cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF);
Serial.begin(9600);
// set the piezo as an output
pinMode(piezoPin, OUTPUT);
}
void loop()
{
long start = millis();
long pinTone = cs_4_2.capacitiveSensor(30);
Serial.print("sensor value: "); // check on performance in milliseconds
Serial.print("\t"); // tab character for debug windown spacing
Serial.print(pinTone); // print sensor output 1
Serial.print("\n");
// map the tone value to frequencies between 500 and 2000
long mapTone = map(pinTone, 0, 40, 500, 2000);
// play the mapped tone
playTone(int(mapTone), 100);
delay(10);
}
void playTone(int tone, int duration) {
for (long i = 0; i < duration * 1000L; i += tone * 2) {
digitalWrite(piezoPin, HIGH);
delayMicroseconds(tone);
digitalWrite(piezoPin, LOW);
delayMicroseconds(tone);
}
}
Open up the Arduino Serial Monitor. What do you see as the largest sensor value when you press the pin? The smallest? In the lien below, replace the values for MIN_SENSOR_VALUE and MAX_SENSOR_VALUE with the two numeric values you found:
long mapTone = map(pinTone, MIN_SENSOR_VALUE, MAX_SENSOR_VALUE, 500, 2000);
When you open the Arduino Serial Monitor, do you see values of 0 or -2? The resistor you're using might be too small. We advise using a 1M Ohm resistor, not the 10K Ohm Resistor. That's one million ohms. If you don't have any 1M Ohm resistors, you can use any other similar (really large) resistor.
Page last edited March 08, 2024
Text editor powered by tinymce.