ボリュームと7セグメントLED

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);
 }
}
カテゴリー: Gainer タグ: , , , , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください