// Ножки микроконтроллера, которые мы используем для питания модуля: #define VCC 5 #define GND 4 void setup() { // Устанавливаем скорость обмена Serial.begin(31250); // Организуем питание модуля через ножки микроконтроллера: pinMode(VCC, OUTPUT); pinMode(GND, OUTPUT); digitalWrite(VCC, HIGH); digitalWrite(GND, LOW); } void loop() { // Играем ноты от F#-0 (0x1E) до F#-5 (0x5A): for (int note = 0x1E; note < 0x5A; note ++) { //Отправляем нажатие ноты на канале 1 (0x90), номер ноты (note), средняя сила нажатия (0x45): noteOn(0x90, note, 0x45); delay(100); // Стандарт допускает отключение ноты (аналог отпускания клавиши синтезатора) // при помощи отправки сообщения noteOn (0x90), // с номером той же ноты (note), и силой нажатия, равной нулю (0x00): noteOn(0x90, note, 0x00); // Пауза между нажатиями клавишь delay(100); } } // Отправка MIDI-ноты. // Здесь отсутствует проверка валидности данных. // MIDI-команда должна быть больше 127, а номер ноты и сила нажатия - меньше, либо равна 127 void noteOn(int cmd, int pitch, int velocity) { Serial.write(cmd); Serial.write(pitch); Serial.write(velocity); }