今回使う「7セグメント ディスプレイ」は、一般に「7seg LED」とも呼ばれる。
- TINKERCADのサイトにアクセスしてログインする。
- 「新規作成」→「回路」をクリックする。
- 入れる部品の種類を「コンポーネント すべて」に切り替え、「Arduino Uno R3」「7セグメント ディスプレイ」「7セグメント デコーダ」「押しボタン」「抵抗 (200Ω×7個, 10kΩ×1個)」を選んで入れ、図のように配線する。 (抵抗は片方の端子がIC, 押しボタンの端子にくっつくように配置する)
- コードを「ブロック」から「文字」に切り替え、デフォルトで入っているコードを削除して以下のコードをコピー&ペーストする。
- 「シミュレーションを開始」でプログラムを実行し、押しボタンをクリックして以下のように動作することを確認する。
- この回路の名前を「課題2-1」に変更する。
- トップページに戻り、「課題2-1」を公開する。
(「7セグメント ディスプレイ」を入れるときは「陽極」を「陰極」に切り替える)


(配線部分をズームした図)

int n=0; // 数値(10進数) int pre; // 直前の押しボタンの状態 int binaryPin[] = {2, 3, 4, 5}; // 出力用のピン int buttonPin = 13; // 押しボタン用のピン void setup(){ for (int i=0; i<4; i++){ pinMode(binaryPin[i], OUTPUT); } pinMode(buttonPin, INPUT); } void loop(){ // nを2進数に変換し、各桁の値を出力用のピンに書き出す for (int i=0; i<4; i++){ digitalWrite(binaryPin[i], bitRead(n, i)); } // 直前にボタンが押されておらず、今は押されていたらnを1増やす if (digitalRead(buttonPin)==HIGH && pre==LOW){ n++; // nが9を超えたら0に戻す if (n>9){ n=0; } } // 現在のボタンの状態をpreに記憶 pre = digitalRead(buttonPin); }
押しボタンにこのように配線すると、左上のピンの電圧はボタンを押しているときは5V, 離しているときは0Vになる。
bitRead関数では10進数を2進数に変換したときの特定の桁の値を取り出せる。
例えば bitRead(5, 0) では、(5)10 = (0101)2 の (下から) 0ビット目、つまり1が得られる。
例えば bitRead(5, 0) では、(5)10 = (0101)2 の (下から) 0ビット目、つまり1が得られる。
7セグメント デコーダの4つ (1, 2, 6, 7番) のピンに5V, 0V (2進数の1, 0)
を入れることで、その数字の形に7セグメントディスプレイの線を光らせるための組み合わせで9~15番のピンに電圧が出力される
(参考)。
7セグメントディスプレイは、デジタル数字を構成する7本の線 (a~g) と右下の点 (dp) に対応するピンに5Vか0Vの電圧をいれて点灯・消灯させることで数字を表示する。
タイプを陰極にした場合は5Vを入れたときに点灯する。
たとえば b, c に5V, その他に0Vを入れれば数字の「1」になる。
タイプを陰極にした場合は5Vを入れたときに点灯する。
たとえば b, c に5V, その他に0Vを入れれば数字の「1」になる。



