Инкрементальный энкодер 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
Как можно узнать,что состояние этого пина может быть либо единица либо ноль?
Никак. Это символ веры. В это либо верят, либо нет. Истинно верующие, да спасутся.