2-3. コードセット(様々な動作)
2-3. コードセット(様々な動作)

前回は、キャラクタコードを使って文字表示を行いました。
今回は文字の消去や位置移動など、簡単な動作をさせます。
これらはコード1つで非常に簡単に行えます。
沢山ありますので、休憩しながら1つ1つ見ていきましょう!
課題
コードを使って、6つの動作を確認する!
機能一覧
今回は、以下6つの動作を確認してみましょう。
動作名 | コード | 機能 |
---|---|---|
(1) バックスペース | 08h | カーソル位置を、左に1文字分 移動します。 |
(2) ホリゾンタルタブ | 09h | カーソル位置を、右に1文字分 移動します。 |
(3) ラインフィード | 0Ah | カーソル位置を、下に1行分 移動します。 |
(4) ホームポジション | 0Bh | カーソル位置を、ホームポジション(最上行左端)に移動します。 |
(5) キャリッジリターン | 0Dh | カーソル位置を、同一行の左端に移動します。 |
(6) 表示画面クリア | 0Ch | 表示画面をクリアします。 |
※動作名のリンクをクリックすると、各項目の先頭へ移動します。(同ページ内)
では、上から順に進めていきます。
(1) バックスペース
コード | スケッチ命令文 | 機能 |
---|---|---|
08h | Serial.write(0x08); | カーソル位置を、左に1 文字分移動します。 |
「Hello!」の表示後に、1文字分カーソル位置を戻します。
そして再度「Hello!」を表示します。‥‥これを繰り返します。
スケッチ
void loop()
{
Serial.print("Hello!"); //「Hello!」と表示
delay(1000); //1秒間、表示を止める
Serial.write(0x08); //1文字分、戻る
}
赤文字部分の命令1つで済みます。簡単ですね!
尚、「while(1){}」などを設けてないので、メインループ内の命令は繰り返されます。
表示画面
「HelloHello‥‥」と表示されます。1文字戻ってますね。
バックスペースが無い場合は当然「Hello!Hello!‥‥」
と表示が続きます。
命令を増やすと、その分 カーソル位置は戻ります。
どんどん試してみましょう。
(2) ホリゾンタルタブ
コード | スケッチ命令文 | 機能 |
---|---|---|
09h | Serial.write(0x09); | カーソル位置を、右に1文字分 移動します。 |
「Hello!」表示後、1文字カーソル位置を進ませ、再度「Hello!」表示‥‥を繰り返します。
スケッチ
void loop()
{
Serial.print("Hello!"); //「Hello!」と表示
delay(1000); //1秒間、表示を止める
Serial.write(0x09); //1文字分、進む
}
表示画面
1文字分(7ドット)の間隔を空け、次の表示を行います。
(3) ラインフィード
コード | スケッチ命令文 | 機能 |
---|---|---|
0Ah | Serial.write(0x0A); | カーソル位置を、下に1行分 移動します。 |
「Hello!」表示後に改行し、再度「Hello!」表示‥‥です!
スケッチ
void loop()
{
Serial.print("Hello!"); //「Hello!」と表示
delay(1000); //1秒間、表示を止める
Serial.write(0x0A); //1行、移動
}
表示画面
改行とは言っても、カーソルはそのまま下に(8ドット分)
移動するだけで、左端には移動しません。
(4) ホームポジション
コード | スケッチ命令文 | 機能 |
---|---|---|
0Bh | Serial.write(0x0B); | カーソル位置を、ホームポジション(最上行左端)に移動します。 |
「Hello!」表示後、カーソルが電源起動時の位置に戻り、再度「Hello!」を表示します。
スケッチ
void loop()
{
Serial.print("Hello!"); //「Hello!」と表示
delay(1000); //1秒間、表示を止める
Serial.write(0x0A); //左上端に移動
}
表示画面
1回表示後に止まっているように見えますが
しっかりループ動作しています。
(5) キャリッジターン
コード | スケッチ命令文 | 機能 |
---|---|---|
0Dh | Serial.write(0x0D); | カーソル位置を、同一行の左端に移動します。 |
スケッチ
void loop()
{
Serial.print("Hello!"); //「Hello!」と表示
delay(1000); //1秒間、表示を止める
Serial.write(0x0A); //ラインフィード(1行、移動)
Serial.write(0x0D); //1行、移動
}
先程の内容と重複するので、(3)のラインフィード命令を1つ入れました。
改行後、キャリッジターンでカーソルを行の左端に移動させています。
表示画面
「Hello!」表示→ラインフィードで改行→キャリッジターンで
カーソルを左端へ→「Hello!」表示‥‥を繰り返しています。
(6) 表示画面クリア
コード | スケッチ命令文 | 機能 |
---|---|---|
0Ch | Serial.write(0x0C); | 表示画面をクリアします。 |
「Hello!」表示後、画面の表示内容を全て消去し、再度「Hello」表示‥‥の繰り返しです。
スケッチ
void loop()
{
Serial.print("Hello!"); //「Hello!」と表示
delay(1000); &n bsp;nbsp; //1秒間、表示を止める
Serial.write(0x0C); //画面クリア
delay(1000); //1秒間、表示を止める
}
表示画面
消えてますね!点滅してるように見えます。
消えた後、カーソルは左上端の位置に戻ります。

以上です!
今回は6種類の動作コードを学びました。
これらを組み合わせると、表現の幅が広がります。
文字と動作で、色んな表示を試してみてくださいね。
次回は「倍角文字の表示」です!
今回のコマンドは全て、カレントウィンドウ内で動作します。カレントウィンドウは、ざっくり直訳すると
「現在の表示領域」であり、複数あるウィンドウの中で操作対象となっている1つのウィンドウの事を指します。
複数のウィンドウ、という言葉が出ましたが‥‥
VFDには、1つのディスプレイに複数のウィンドウを持たせる「ユーザーウィンドウ機能」があります。
ウィンドウの大きさ、範囲や用途(メッセージ用、アイコン用、アニメーション用‥‥など)を自分の任意のものに
設定し、1回の表示で複数の表示・制御を実現させる事が可能です。詳しくは製品仕様書をご覧ください!