「Arduinoの基礎 - SC1602」の版間の差分

ナビゲーションに移動 検索に移動
編集の要約なし
編集の要約なし
編集の要約なし
66行目: 66行目:
また、ArduinoとLCDを接続して、スケッチをダウンロードすると次のようになる。<br>
また、ArduinoとLCDを接続して、スケッチをダウンロードすると次のようになる。<br>
[[ファイル:Arduino SC1602 05.jpg|フレームなし|中央]]
[[ファイル:Arduino SC1602 05.jpg|フレームなし|中央]]
<br><br>
== SC1602 I2Cアダプタを利用する ==
上記では、 SC1602を直接制御して文字を表示したが、電源や制御信号、データ信号の送信等のために約10本の配線が必要であるが、<br>
GPIOピンが少ないマイコンを使用する時は扱い辛い。<br>
そこで、SC1602 I2Cアダプタを使用すると、電源とI2C(SDA/SCL)で接続が可能となり単純化できる。(I2Cはプルアップが必要)<br>
<br>
ここでは、SC1602 I2Cアダプタの使用方法を記載する。<br>
まず、I2Cアダプタは次のようなものである。上がSC1602、下がSC1602 I2Cアダプタである。<br>
(同様のモジュールが各社から販売されているが、各社の仕様は違う可能性があるのでデータシートをよく読むこと)<br>
[[ファイル:Arduino SC1602 06.jpg|フレームなし|中央]]
<br>
SC1602 I2Cアダプタのピンアサインは次の通りである。<br>
[[ファイル:Arduino SC1602 07.png|フレームなし|中央]]
左側のGnd/Vccは、基本的にジャンパでショートされているが、バックライトを無効化する場合はオープンにする。<br>
オープンにすると必ずバックライトがオンになるのではなく、プログラムから制御が可能である。<br>
<br>
中央のポテンショメータは画面のコントラスト調整用である。<br>
<br>
ジャンパA0 - A2はアドレス選択用で、全てオープンにすると0x27となる。<br>
ジャンパの設定により、A2 - A0で表される3ビット値を0x27から引いたアドレスにシフトする。<br>
例えば、A2をショート(1)、A1をオープン(0)、A0をショート(1)にした場合、0b101 = 0x5なので、0x27 - 0x5 = 0x22となる。<br>
<br>
右側の4本のピンは、上からGnd、Vcc、SDA、SCLである。<br>
<br>
I2CインターフェイスSDA、SCLは、Arduino UnoではそれぞれA4、A5である。<br>
<center>
{| class="wikitable"
!colspan="6"|Arduino Uno R3
|-
| SDA || A4
|-
| SCL || A5
|}
</center>
<br>
また、I2Cはプルアップが必要である。<br>
次の項目では、LiquidCrystal_I2Cライブラリが内部でWireライブラリを使用しているが、<br>
これは、SDA / SCLピンについて、Arduinoの内部プルアップをアクティベートするものである。<br>
<br><br>
==== LiquidCrystal_I2C ライブラリ ====
I2Cアダプタを使用するサンプルコードでは、LiquidCrystal_I2Cライブラリを使用する。<br>
LiquidCrystal_I2Cライブラリは[https://github.com/marcoschwartz/LiquidCrystal_I2C ここ]からダウンロードできる。<br>
Arduiono IDEの[スケッチ] -[ライブラリをインクルード] - [.zip形式のライブラリをインスト-ル]にてLiquidCrystal_I2Cライブラリを取り込む。<br>
<br>
取り込んだライブラリは、C:\Users\[ユーザ名]\Documents\Arduino\librariesに保存される。<br>
もし、同一の名前のライブラリが同じシステム内に存在してコンパイルが失敗する場合は、不要なライブラリを削除する。<br>
<br>
以下にサンプルコードを記述する。<br>
<source lang="c++">
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
    lcd.init();
    lcd.backlight();
    lcd.setCursor(0, 0);
    lcd.print("Hello, world!");
}
void loop()
{
}
</source>
<br>
[[ファイル:Arduino SC1602 08.jpg|フレームなし|中央]]
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Arduino]]
[[カテゴリ:Arduino]]

案内メニュー