curious4dev

中国旅行、Arduinoなどを使った電子工作、その他色々。

*

aitendoで買った375円のバックライト付きI2C LCDで文字を表示してみた。

 

お疲れ様です。高橋です。

ちょっと前にaitendoで買ったバックライト付きのLCDとArduinoを使い、文字を表示させる事が出来ました。

IMG_5089

バックライトのLEDは青タイプの物を買いましたが、とても眩しい。。

しかし、これで、味気ない音楽演奏中、音楽に合わせた文字表示が出来るってもんです。

半田付け

aitendoで売っているI2C LCDモジュールは、別途、3pinが2つと9pinが1個会ったほうが良いです。私はL字タイプの9pin1つと、まっすぐな3pinを2つ作り、それをLCDの裏から半田付けしました。

IMG_5086

作り・・・と書いたのは、40個ぐらい連結されていて、簡単に指で自分の好みのサイズにパキパキ折れるヤツを持ってるからです。

右手で半田ごて、左手で半田を持ち、今までは部品類をテーブルの上に置いたまま半田付けしていたのですが、廣瀬無線で買った半田ごて台がとても便利です。今回は別に無くてもそれほど難易度高くないですが、線と線をくっつける時の威力は絶大だと思います。

配線

Arduino と LCDの間の配線は、簡単過ぎるので文字だけでの説明となります。

  1. Arduinoの3.3VをLCDのVDDとRESTとBL+に。(間にブレッドボードを挟むと超楽です。)
  2. ArduinoのA4をDATAに。
  3. ArduinoのA5をCLKに。

9pinの内、実際に使うのはCLKとDATAとVDDとGNDとBL+の4つです。

3pinはSHLとVDDをショートさせ、DIRCとVDDをショートさせるだけです。カラージャンパーというものを買いました。

スケッチ

最初の行に”hoge”と表示させ、改行し、0x40 (@マーク)から1つずつ順番にASCIIキャラクタを1秒毎に表示させています。1行16文字しか表示出来ないので、16文字で終わってしまいますが。

#include <Wire.h>

int sdaPin = 18; // analog pin 4
int sclPin = 19; // analog pin 5
int i2cadr = 0x3e;
byte contrast = 7;

void lcd_cmd(byte x)
{
 Wire.beginTransmission(i2cadr);
 Wire.write(0x00);
 Wire.write(x);
 Wire.endTransmission();
}

void lcd_data(byte x)
{
 Wire.beginTransmission(i2cadr);
 Wire.write(0x40);
 Wire.write(x);
 Wire.endTransmission();
}

void lcd_puts(const char *s)
{
 while(*s) lcd_data(*s++);
}

void lcd_init()
{
 Wire.begin();
 lcd_cmd(0x38); // function set
 lcd_cmd(0x39); // function set
 lcd_cmd(0x14); // interval osc
 lcd_cmd(0x70 | (contrast & 15)); // contrast low
 lcd_cmd(0x5c | (contrast >> 4 & 3)); // contrast high / icon / power
 lcd_cmd(0x6c); // follower control
 delay(300);
 lcd_cmd(0x38); // function set
 lcd_cmd(0x0c); // display on
 lcd_cmd(0x01); // clear display
 delay(2);
}

void lcd_move(byte pos){
 lcd_cmd(0x80 | pos);
}

void setup()
{
 lcd_init();
}

void loop()
{
 lcd_puts("hoge");
 lcd_move(0x40);
 for(int i = 0; i < 100; i++) {
 lcd_data(0x40 + i);
 delay(1000);
 }
}

 

完成系

IMG_5088

本当に眩しい。。

 

参考サイト: ArduinoでI2C液晶

 

おまけ

今日、会社の電子工作好きから、「びんぼうでいいの」をもらってしまいました!Arduino UNOは秋月で正規品を買うと2,940円もします。

IMG_5085

Arduinoの互換機なのですが、各種ソケット類やジャック、AVRマイコン、マイコン用水晶が無い物です。自分でマイコンと水晶とソケット、ジャックを買って半田付けすれば、立派なArduino互換機の誕生です。

aitendoではマイコン以外の部品セットが250円で売っているので、ここにAVRマイコン(ATMega328P-PU 250円)と水晶(16MHz 30円)の280円、合計530円分の部品を買えば良いのです。

また秋葉原行く目的が生まれてしまいました。

 

 

以上、よろしくお願い致します。

 - 電子工作

  関連記事

耳コピを簡単にするミキサー構想

お疲れ様です。高橋です。 私が普段耳コピをする時は、iPhoneで音楽を鳴らしな …

音階LED表示器の実体配線図を書いてみた。

お疲れ様です。高橋です。 前に「音階に合わせてLEDを光らせてみた。」で実験した …

USBやDCジャックからの5Vを3.3Vにする物を作った

お疲れ様です。高橋です。 前にesp8266の動作試験を行った時、とても面倒だと …

音階LED完成、YMZのノイズの原因判明

お疲れ様です。高橋です。 音階LEDの実装が完了しました。 青色LEDが眩しすぎ …

FM音源YM2203をArduinoで鳴らしたい #2

お疲れ様です。高橋です。 先に結論 FM楽曲及びPSG楽曲の演奏に成功しました。 …

iPhoneでルンバを操作してみたい

お疲れ様です。高橋です。 突然ですがiPhoneでルンバを操作したいと思います。 …

【完成】 電子オルゴール

お疲れ様です。高橋です。 電子オルゴールの制作が佳境に入り、とうとうカルトナージ …

ArduinoIDE1.6.4+ATTiny13Aで赤外線リモコン(難航)

お疲れ様です。高橋です。 先日から引き続いて、ATTiny13Aで赤外線リモコン …

YMZシールド 再作成

お疲れ様です。高橋です。 YMZのノイズが超気になる YMZ294用の音楽を聞く …

上司の離着席状態をクラウドに飛ばし、スマホで見れるようにした。

お疲れ様です。高橋です。 前回ブレッドボード上に構築した上司離着席検知システムで …