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); } }