Инкрементальный энкодер EC11 и миди
- Войдите на сайт для отправки комментариев
Пт, 29/06/2018 - 12:46
Народ всех приветствую!
имеется код, он прекрасно работает. Это инкрементальный энкодер, который передает миди сообшения. Когда крутишь ,передает миди сообщение с первым каналом, а когда нажимаешь на кнопку, которая находится в этом же энкодере передает другое сообщение с другим каналом. Все прекрасно работает, но интересует такая штука.Я знаю,что в этой строке
MIDI.sendControlChange(104, (1 - value) * 127, 1);
(1-value) это получится либо 127, либо 0, так устроена передача данных по миди. Но не могу понять как и из чего складывается эта сумма? то есть откуда берётся 127 либо 0 в этой строке?
#include <Encoder.h>
Encoder enc_one(2, 3);
int value;
long enc_one_previous = -999;
byte button_previous;
void setup() {
pinMode(23, INPUT_PULLUP);
}
void loop() {
value = enc_one.read();
if(value > 127) { enc_one.write(127); }
else if(value < 0) { enc_one.write(0); }
value = constrain(value, 0, 127);
if (value != enc_one_previous) { enc_one_previous = value; usbMIDI.sendControlChange(1, value, 1); }
value = digitalRead(23);
if(value != button_previous) { button_previous = value; usbMIDI.sendControlChange(2, (1 - value) * 127, 1); delay(3); }
}
Но не могу понять как и из чего складывается эта сумма? то есть откуда берётся 127 либо 0 в этой строке?
Если речь идет о 22-й строке, то value - это состояние пина 23. Оно может быть 0 или 1. Соответственно выражение "(1 - value) * 127" будет равно либо 0, либо 127. Арифметика, 3-й класс.
Но не могу понять как и из чего складывается эта сумма? то есть откуда берётся 127 либо 0 в этой строке?
Если речь идет о 22-й строке, то value - это состояние пина 23. Оно может быть 0 или 1.
Как можно узнать,что состояние этого пина может быть либо единица либо ноль?
Прикрепите светодиод к 23 пину либо выведете на монитор порта состояния 23 пина.
Благодарю за ответы!
Как можно узнать,что состояние этого пина может быть либо единица либо ноль?
DigitalRead возвращает либо 0 либо 1.
http://arduino.ru/Reference/DigitalRead
Как можно узнать,что состояние этого пина может быть либо единица либо ноль?
Никак. Это символ веры. В это либо верят, либо нет. Истинно верующие, да спасутся.