Stap 4: Arduino Code
http://Playground.Arduino.CC//Main/CapacitiveSensor?from=main.CapSense
#include #include "pitches.h" #define COMMON_PIN 3 #define BUZZER_PIN A0 #define NUM_OF_SAMPLES 1 #define CAP_THRESHOLD 100 #define NUM_OF_KEYS 8 #define CS(Y) CapacitiveSensor(2, Y) int notes[]={NOTE_C4,NOTE_D4,NOTE_E4,NOTE_F4,NOTE_G4,NOTE_A4,NOTE_B4,NOTE_C5}; CapacitiveSensor keys[] = {CS(4), CS(5), CS(6), CS(7), CS(8), CS(9), CS(10), CS(11)}; void setup() { for(int i=0; i<8; ++i) { keys[i].set_CS_AutocaL_Millis(0xFFFFFFFF); } pinMode(BUZZER_PIN, OUTPUT); } void loop( { for (int i = 0; i < 8; ++i) { if(keys[i].capacitiveSensor(NUM_OF_SAMPLES) > CAP_THRESHOLD) { tone(BUZZER_PIN, notes[i]); delay(100); noTone(BUZZER_PIN); } } }
Wat de code doet is eerst bestaan uit 2 Bibliotheken, capacitivesensors.h en pitch.h, pitch.h voor het gebruik van de opdracht van de tint met aantekeningen zoals A2, B6, F2 etc in plaats van frequenties zelf wordt gebruikt. Dan het definieert de pinnen en de condensator drempel, dit is in principe het bedrag van de "sensing" de condensator doet, als je het verminderen dan de sensor gemakkelijker detecteert als steeg het doet het tegenovergestelde.
Vervolgens definieert u de notities voor elke toets die ingedrukt en vervolgens definieert u de pinnen die de sleutels of aluminium tape stukken zijn aangesloten op.
Void Setup u zoemer pincode instellen als output en kalibratie wordt ingesteld op 0.
In de leegte lus u zeggen dat als de tape uw vinger, dan de if detecteert-instructie wordt uitgevoerd, dus de zoemer wordt gespeeld met de respectieve notitie. Als dat niet dan gebeurt omdat er geen andere functie is, gaat het gewoon door ongeldig lus opnieuw.
De opdracht tone() zet de Toon worden gespeeld op de zoemer, u kunt ook de opdracht van de tint te spelen van afzonderlijke gewoon noten als Toon (pin, frequentie, duur) maar we gebruiken notities hier met de pitch.h dus we niet hoeven te moeite mee.