ардуино пианино (сенсор)
http://www.instructables.com/id/How-to-Make-a-Cheap-Arduino-MIDI-Controller/
http://cxem.net/arduino/arduino29.php
http://www.instructables.com/id/Arcade-Button-MIDI-Controller/?ALLSTEPS
---------------------------------------------------
#include
#define SND_PIN 12 // пин, к которому подключён спикер
CapacitiveSensor key1 = CapacitiveSensor(5, 4); // клавиша 1 между 5-м и 4-м пинами
CapacitiveSensor key2 = CapacitiveSensor(5, 3); // клавиша 2 между 5-м и 3-м пинами
CapacitiveSensor key3 = CapacitiveSensor(5, 2); // клавиша 3 между 5-м и 2-м пинами
CapacitiveSensor key4 = CapacitiveSensor(10, 6); // клавиша 4 между 10-м и 6-м пинами
CapacitiveSensor key5 = CapacitiveSensor(10, 7); // клавиша 5 между 10-м и 7-м пинами
CapacitiveSensor key6 = CapacitiveSensor(10, 8); // клавиша 6 между 10-м и 8-м пинами
CapacitiveSensor key7 = CapacitiveSensor(10, 9); // клавиша 7 между 10-м и 9-м пинами
int range = 200; // пороговое значение, определяющее нажатие, подбирается экспериментально
byte button; // побитовое обозначение нажатых клавиш
int freq; // частота звука для воспроизведения на спикер
void setup()
{
// выключает автокалибровку на 1-й клавише.
// Пока фиг знает зачем, советуют в примерах либы
key1.set_CS_AutocaL_Millis(0xFFFFFFFF);
}
void loop()
{
long total1 = key1.capacitiveSensor(30);
long total2 = key2.capacitiveSensor(30);
long total3 = key3.capacitiveSensor(30);
long total4 = key4.capacitiveSensor(30);
long total5 = key5.capacitiveSensor(30);
long total6 = key6.capacitiveSensor(30);
long total7 = key7.capacitiveSensor(30);
freq = 0;
if (total1 > range)
freq = 261.63;
if (total2 > range)
freq = 293.66;
if (total3 > range)
freq = 329.63;
if (total4 > range)
freq = 349.23;
if (total5 > range)
freq = 392;
if (total6 > range)
freq = 440;
if (total7 > range)
freq = 493.88;
freq? tone(SND_PIN, freq) : noTone(SND_PIN); // воспроизводим или останавливаем звук
}
Ваш e-mail
Отправить