7セグメントディスプレイにアルファベットを表示してみる
前回公開したクラスは何もいじらない状態では数字+記号2つしか表現できません
しかしラジカセ(化石)などでは"no disc"のようなメッセージが表示されます
7セグメントには一応アルファベットの対応が決められているんですが、相当読みづらいです
とりあえず自作の7セグに実装してみます
public class AlphabetsSegment { public ArrayList<boolean[]> alphabet; public AlphabetsSegment() { alphabet=new ArrayList<>(); alphabet.add(new boolean[]{true, true, true, false, true, true, true}); alphabet.add(new boolean[]{false, false, true, true, true, true, true}); alphabet.add(new boolean[]{false, false, false, true, true, false, true}); alphabet.add(new boolean[]{false, true, true, true, true, false, true}); alphabet.add(new boolean[]{true, false, false, true, true, true, true}); alphabet.add(new boolean[]{true, false, false, false, true, true, true}); alphabet.add(new boolean[]{true, false, true, true, true, true, false}); alphabet.add(new boolean[]{false, false, true, false, true, true, true}); alphabet.add(new boolean[]{false, false, true, false, false, false, false}); alphabet.add(new boolean[]{false, true, true, true, true, false, false}); alphabet.add(new boolean[]{true, false, true, false, true, true, true}); alphabet.add(new boolean[]{false, false, false, true, true, true, false}); alphabet.add(new boolean[]{true, true, true, false, true, true, false}); alphabet.add(new boolean[]{false, false, true, false, true, false, true}); alphabet.add(new boolean[]{false, false, true, true, true, false, true}); alphabet.add(new boolean[]{true, true, false, false, true, true, true}); alphabet.add(new boolean[]{true, true, false, true, true, true, true}); alphabet.add(new boolean[]{false, false, false, false, true, false, true}); alphabet.add(new boolean[]{false, false, true, true, false, true, true}); alphabet.add(new boolean[]{false, false, false, true, true, true, true}); alphabet.add(new boolean[]{false, false, true, true, true, false, false}); alphabet.add(new boolean[]{false, true, true, true, true, true, false}); alphabet.add(new boolean[]{false, true, true, true, true, true, true}); alphabet.add(new boolean[]{false, true, true, false, true, true, true}); alphabet.add(new boolean[]{false, true, true, true, false, true, true}); alphabet.add(new boolean[]{true, true, false, true, true, false, false}); } }
こんなクラスを作っておいて、
Seg7Character chara=new Seg7Character(); AlphabetsSegment as=new AlphabetsSegment(); for (int i = 0; i < 26; i++) { try { chara.addCharacter(as.alphabet.get(i)); } catch (Exception ex) { Logger.getLogger(seg7Test.class.getName()).log(Level.SEVERE, null, ex); } }
とこんな感じです
自作文字は順にアルファベットの名前がつくので奇跡的にa=aとなります
そんでもって表示してみます
iとsが苦しいですね。これでもwikipedia仕様なのに
次に作るべきは16セグメントディスプレイかもしれませんね
これだとすっごくわかりやすくなります