Gainerのain0にボリュームをつないで、その値を10段階に丸めて、aout0~7に接続した7セグメントLEDに値を表示するのをProcessingでプログラミングしました。
GainerはMODE4に設定した。
これもYouTubeにアップロードしました。
Processingのソースコード
import processing.gainer.*;
Gainer gainer;
PFont myFont;
void setup() {
size(300, 300);
gainer = new Gainer(this, "COM4", 4);
gainer.analogOutput(0, 255);
gainer.analogOutput(1, 255);
gainer.analogOutput(2, 255);
gainer.analogOutput(3, 255);
gainer.analogOutput(4, 255);
gainer.analogOutput(5, 255);
gainer.analogOutput(6, 255);
gainer.analogOutput(7, 255);
gainer.beginAnalogInput();
}
void draw() {
background(0);
int val;
val = gainer.analogInput[0];
val /= 25;
if (val == 0) {
gainer.analogOutput(0, 0);
gainer.analogOutput(1, 0);
gainer.analogOutput(2, 0);
gainer.analogOutput(3, 255);
gainer.analogOutput(4, 255);
gainer.analogOutput(5, 0);
gainer.analogOutput(6, 0);
gainer.analogOutput(7, 0);
} else if (val == 1) {
gainer.analogOutput(0, 255);
gainer.analogOutput(1, 255);
gainer.analogOutput(2, 0);
gainer.analogOutput(3, 255);
gainer.analogOutput(4, 255);
gainer.analogOutput(5, 255);
gainer.analogOutput(6, 255);
gainer.analogOutput(7, 0);
} else if (val == 2) {
gainer.analogOutput(0, 0);
gainer.analogOutput(1, 0);
gainer.analogOutput(2, 255);
gainer.analogOutput(3, 255);
gainer.analogOutput(4, 0);
gainer.analogOutput(5, 255);
gainer.analogOutput(6, 0);
gainer.analogOutput(7, 0);
} else if (val == 3) {
gainer.analogOutput(0, 255);
gainer.analogOutput(1, 0);
gainer.analogOutput(2, 0);
gainer.analogOutput(3, 255);
gainer.analogOutput(4, 0);
gainer.analogOutput(5, 255);
gainer.analogOutput(6, 0);
gainer.analogOutput(7, 0);
} else if (val == 4) {
gainer.analogOutput(0, 255);
gainer.analogOutput(1, 255);
gainer.analogOutput(2, 0);
gainer.analogOutput(3, 255);
gainer.analogOutput(4, 0);
gainer.analogOutput(5, 0);
gainer.analogOutput(6, 255);
gainer.analogOutput(7, 0);
} else if (val == 5) {
gainer.analogOutput(0, 255);
gainer.analogOutput(1, 0);
gainer.analogOutput(2, 0);
gainer.analogOutput(3, 255);
gainer.analogOutput(4, 0);
gainer.analogOutput(5, 0);
gainer.analogOutput(6, 0);
gainer.analogOutput(7, 255);
} else if (val == 6) {
gainer.analogOutput(0, 0);
gainer.analogOutput(1, 0);
gainer.analogOutput(2, 0);
gainer.analogOutput(3, 255);
gainer.analogOutput(4, 0);
gainer.analogOutput(5, 0);
gainer.analogOutput(6, 0);
gainer.analogOutput(7, 255);
} else if (val == 7) {
gainer.analogOutput(0, 255);
gainer.analogOutput(1, 255);
gainer.analogOutput(2, 0);
gainer.analogOutput(3, 255);
gainer.analogOutput(4, 255);
gainer.analogOutput(5, 255);
gainer.analogOutput(6, 0);
gainer.analogOutput(7, 0);
} else if (val == 8 ) {
gainer.analogOutput(0, 0);
gainer.analogOutput(1, 0);
gainer.analogOutput(2, 0);
gainer.analogOutput(3, 255);
gainer.analogOutput(4, 0);
gainer.analogOutput(5, 0);
gainer.analogOutput(6, 0);
gainer.analogOutput(7, 0);
} else if (val == 9) {
gainer.analogOutput(0, 255);
gainer.analogOutput(1, 0);
gainer.analogOutput(2, 0);
gainer.analogOutput(3, 255);
gainer.analogOutput(4, 0);
gainer.analogOutput(5, 0);
gainer.analogOutput(6, 0);
gainer.analogOutput(7, 0);
} else { // 10
gainer.analogOutput(0, 255);
gainer.analogOutput(1, 255);
gainer.analogOutput(2, 255);
gainer.analogOutput(3, 0);
gainer.analogOutput(4, 255);
gainer.analogOutput(5, 255);
gainer.analogOutput(6, 255);
gainer.analogOutput(7, 255);
}
}