Arduino Air Cap-Sense Piano (4 / 5 steg)
Steg 4: Arduino kod
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 noterar [] = {NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5};
CapacitiveSensor nycklar [] = {CS(4), CS(5), CS(6), CS(7), CS(8), CS(9), CS(10), CS(11)};
void setup()
{
för (int jag = 0; jag < 8. ++ jag)
{
Keys[i].set_CS_AutocaL_Millis(0xFFFFFFFF);
}
pinMode (BUZZER_PIN, OUTPUT);
}
Ogiltig loop)
{
för (int jag = 0; jag < 8. ++ jag)
{
IF(Keys[i].capacitiveSensor(NUM_OF_SAMPLES) > CAP_THRESHOLD)
{
tonen (BUZZER_PIN, notes[i]);
Delay(100);
noTone(BUZZER_PIN);
}
}
}
Vad koden gör först inkluderar 2 bibliotek, capacitivesensors.h och pitch.h, pitch.h används för att använda kommandot Tona med anteckningar som A2, B6, F2 etc istället för frekvenser själva. Då det definierar stiften och kondensator ingången, detta är i grunden mängden "avkänning" kondensatorn gör, om du minskar det då sensorn känner lättare om ökade det gör motsatsen.
Sedan du definierar anteckningar för varje nedtryckt och sedan du definiera stiften nycklar eller aluminium tejp bitar är anslutna till.
I void setup du ange summern pin och anger kalibrering 0.
I void slingan du säger som om bandet upptäcker fingret, då if uttalande blir avrättad, därför summern spelas med respektive anmärkning. Om det inte sker sedan eftersom det finns ingen annan funktion, går det bara genom void öglan igen.
Kommandot tone() anger tonen som skall spelas på summern, du kan också använda kommandot Tona för att spela separat vanligt anteckningar som tonar (pin, frekvens, varaktighet) men vi använder Anteckningar här med pitch.h så vi inte behöver bry sig med detta.