Étape 6: Code
Il est maintenant temps de télécharger le code de votre Arduino. C’est ici :caisse claire
const int NumSnareReadings = 7 ;
int SnareReadings [NumSnareReadings] ;
int SnareIndex = 0 ;
int SnareTotal = 0 ;
int SnareAverage = 0 ;
int SnareMax = 700 ;
int SnarePin = A2 ;
Charlestons
const int NumHatReadings = 7 ;
int HatReadings [NumHatReadings] ;
int HatIndex = 0 ;
int HatTotal = 0 ;
int HatAverage = 0 ;
int HatMax = 700 ;
int HatPin = A0 ;
pédale basse
const int NumBassReadings = 7 ;
int BassReadings [NumBassReadings] ;
int BassIndex = 0 ;
int BassTotal = 0 ;
int BassAverage = 0 ;
int BassMax = 700 ;
int BassPin = A4 ;
Crash (Charlestons pédale vers le haut)
int PedalPin = A3 ;
int lumière = analogRead(A3) ;
const int NumCrashReadings = 7 ;
int CrashReadings [NumCrashReadings] ;
int CrashIndex = 0 ;
int CrashTotal = 0 ;
int CrashAverage = 0 ;
int CrashMax = 700 ;
int CrashPin = A5 ;
int seuil = 125 ;
Millis fonction de donner un délai entre les notes MIDI
long PreviousMillis1 = 0 ;
long PreviousMillis2 = 0 ;
long PreviousMillis3 = 0 ;
long PreviousMillis4 = 0 ;
Interval1 long = 100 ;
Interval2 long = 100 ;
Interval3 long = 100 ;
Interval4 long = 100 ;
void setup() {}
Serial.Begin(31250) ;
pinMode (SnarePin, entrée) ;
pinMode (entrée, HatPin) ;
pinMode (entrée, BassPin) ;
pinMode (entrée, PedalPin) ;
analogReference(EXTERNAL) ;
pour (int ThisSnareReading = 0 ; ThisSnareReading < NumSnareReadings ; ThisSnareReading++)
SnareReadings [ThisSnareReading] = 0 ;
pour (int ThisHatReading = 0 ; ThisHatReading < NumHatReadings ; ThisHatReading++)
HatReadings [ThisHatReading] = 0 ;
pour (int ThisBassReading = 0 ; ThisBassReading < NumBassReadings ; ThisBassReading++)
BassReadings [ThisBassReading] = 0 ;
}
void loop ()
{
unsigned long CurrentMillis = millis() ;
caisse claire
SnareTotal = SnareTotal - SnareReadings [SnareIndex] ;
SnareReadings[SnareIndex]=analogRead(SnarePin) ;
SnareTotal = SnareTotal + SnareReadings [SnareIndex] ;
SnareIndex = SnareIndex + 1 ;
Si (SnareIndex > = NumSnareReadings)
SnareIndex = 0 ;
SnareAverage = SnareTotal / NumSnareReadings ;
Si (SnareAverage > SnareMax & & (CurrentMillis-PreviousMillis1) > Interval1)
{
PreviousMillis1 = CurrentMillis ;
playMidiNote (1, 38, 127) ;
}
Charlestons
HatTotal = HatTotal - HatReadings [HatIndex] ;
HatReadings[HatIndex]=analogRead(HatPin) ;
HatTotal = HatTotal + HatReadings [HatIndex] ;
HatIndex = HatIndex + 1 ;
Si (HatIndex > = NumHatReadings)
{HatIndex = 0 ;
HatAverage = HatTotal / NumHatReadings ;
Si (HatAverage > HatMax & & (CurrentMillis-PreviousMillis2) > Interval2 & & analogRead(A3) < seuil)
{playMidiNote (1, 42, 127);}
}
Crash
CrashTotal = CrashTotal - CrashReadings [CrashIndex] ;
CrashReadings[CrashIndex]=analogRead(CrashPin) ;
CrashTotal = CrashTotal + CrashReadings [CrashIndex] ;
CrashIndex = CrashIndex + 1 ;
Si (CrashIndex > = NumCrashReadings)
{CrashIndex = 0 ;
CrashAverage = CrashTotal / NumCrashReadings ;
Si (CrashAverage > CrashMax & & (CurrentMillis-PreviousMillis4) > Interval4 & & analogRead(A3) > = seuil)
{playMidiNote (1, 46, 127);}
}
pédale basse
BassTotal = BassTotal - BassReadings [BassIndex] ;
BassReadings[BassIndex]=analogRead(BassPin) ;
BassTotal = BassTotal + BassReadings [BassIndex] ;
BassIndex = BassIndex + 1 ;
Si (BassIndex > = NumBassReadings)
BassIndex = 0 ;
BassAverage = BassTotal / NumBassReadings ;
Si (BassAverage > BassMax & & (CurrentMillis-PreviousMillis3 > Interval3))
{
PreviousMillis3 = CurrentMillis ;
playMidiNote(1,36, 127) ;
}
}
void playMidiNote (canal de byte, remarque octet, vélocité octets)
{
midiMessage octets = 0x90 + (canal - 1) ;
Serial.Write(midiMessage) ;
Serial.Write(note) ;
Serial.Write(Velocity) ;
}