📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

文字列「presire220a-22」を「presire2-22」に置換
 
(同じ利用者による、間の7版が非表示)
1行目: 1行目:
== 概要 ==
ArduinoにLCD(SC1602)を接続して、文字を表示する。<br>
<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|-
! colspan="3"; style="background-color:#44CC99;" | 参考書
|- style="text-align: center;"
| style="width: 33%"| <center><html><a href="https://www.amazon.co.jp/dp/B083DT6181?th=1&psc=1&linkCode=ll1&tag=presire2-22&linkId=4c7c111599ad42a41a8b978a99f0663f&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/61P+FnH6pQL._AC_SL1000_.jpg" ></a></html><br>[https://www.amazon.co.jp/dp/B083DT6181?th=1&psc=1&linkCode=ll1&tag=presire2-22&linkId=4c7c111599ad42a41a8b978a99f0663f&language=ja_JP&ref_=as_li_ss_tl KKHMF 1602 LCDモジュール バックライト付き 2個]</center>
| style="width: 33%"| <center><html><a href="https://www.amazon.co.jp/EasyWordMall-1602-%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF-%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9-%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB/dp/B010Q000V2?dib=eyJ2IjoiMSJ9.G0BbjTkXGSM4_aX7BFMMQ90LA6JK7_T1Ece8nH7pkaHrSDkR8e65sq0pzi9kcHuf2jq0UErLiS1nudS75mzyhAAEjPTPwLJoLt31eJxTrJCd6VT99t9Xp866zltM2DkhQ82zAgXbRqGTz171liS7JpJJvLI_uoyY4Z4qQ-FJ6RiEmHsCvFJT0ItQxTMm7-OFc8aDkQ_gWBCAr98t2ZG427YCmEc8X_3FWNE367rFnfGfjMEMT2aj3PShNU9t6wMQG_wEmolaVvxPYqsoRWv3swExiL97TF7LroobmUnH19I.7Jkjvcv0KulPiV5iFANIuQq9Ry6T37lWIBNSopYUEWk&dib_tag=se&keywords=1602%2BLCD%2BI2C&qid=1715695704&sr=8-4&th=1&linkCode=ll1&tag=presire2-22&linkId=5b78bcb84de022d27f95c4aa8526aacd&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/41wdzc119eL._AC_.jpg" /></a></html><br>[https://www.amazon.co.jp/EasyWordMall-1602-%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF-%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9-%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB/dp/B010Q000V2?dib=eyJ2IjoiMSJ9.G0BbjTkXGSM4_aX7BFMMQ90LA6JK7_T1Ece8nH7pkaHrSDkR8e65sq0pzi9kcHuf2jq0UErLiS1nudS75mzyhAAEjPTPwLJoLt31eJxTrJCd6VT99t9Xp866zltM2DkhQ82zAgXbRqGTz171liS7JpJJvLI_uoyY4Z4qQ-FJ6RiEmHsCvFJT0ItQxTMm7-OFc8aDkQ_gWBCAr98t2ZG427YCmEc8X_3FWNE367rFnfGfjMEMT2aj3PShNU9t6wMQG_wEmolaVvxPYqsoRWv3swExiL97TF7LroobmUnH19I.7Jkjvcv0KulPiV5iFANIuQq9Ry6T37lWIBNSopYUEWk&dib_tag=se&keywords=1602%2BLCD%2BI2C&qid=1715695704&sr=8-4&th=1&linkCode=ll1&tag=presire2-22&linkId=5b78bcb84de022d27f95c4aa8526aacd&language=ja_JP&ref_=as_li_ss_tl KKHMF 1602 LCD ブラック IIC/I2Cモジュール]</center>
| style="width: 34%"| <center><html><a href="https://www.amazon.co.jp/WayinTop-%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-16%C3%972%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF-%E3%83%90%E3%83%83%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%88%E4%BB%98%E3%81%8D-%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%82%A4%E3%82%B9/dp/B07WTMXRTQ?dib=eyJ2IjoiMSJ9.G0BbjTkXGSM4_aX7BFMMQ90LA6JK7_T1Ece8nH7pkaHrSDkR8e65sq0pzi9kcHuf2jq0UErLiS1nudS75mzyhAAEjPTPwLJoLt31eJxTrJCd6VT99t9Xp866zltM2DkhQ82zAgXbRqGTz171liS7JpJJvLI_uoyY4Z4qQ-FJ6RiEmHsCvFJT0ItQxTMm7-OFc8aDkQ_gWBCAr98t2ZG427YCmEc8X_3FWNE367rFnfGfjMEMT2aj3PShNU9t6wMQG_wEmolaVvxPYqsoRWv3swExiL97TF7LroobmUnH19I.7Jkjvcv0KulPiV5iFANIuQq9Ry6T37lWIBNSopYUEWk&dib_tag=se&keywords=1602+LCD+I2C&qid=1715695704&sr=8-7&linkCode=ll1&tag=presire2-22&linkId=eddf740dad0d30ae93bdba12d550ad59&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/61KVH3HkqQL._AC_SL1001_.jpg" /></a></html><br>[https://www.amazon.co.jp/WayinTop-%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-16%C3%972%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF-%E3%83%90%E3%83%83%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%88%E4%BB%98%E3%81%8D-%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%82%A4%E3%82%B9/dp/B07WTMXRTQ?dib=eyJ2IjoiMSJ9.G0BbjTkXGSM4_aX7BFMMQ90LA6JK7_T1Ece8nH7pkaHrSDkR8e65sq0pzi9kcHuf2jq0UErLiS1nudS75mzyhAAEjPTPwLJoLt31eJxTrJCd6VT99t9Xp866zltM2DkhQ82zAgXbRqGTz171liS7JpJJvLI_uoyY4Z4qQ-FJ6RiEmHsCvFJT0ItQxTMm7-OFc8aDkQ_gWBCAr98t2ZG427YCmEc8X_3FWNE367rFnfGfjMEMT2aj3PShNU9t6wMQG_wEmolaVvxPYqsoRWv3swExiL97TF7LroobmUnH19I.7Jkjvcv0KulPiV5iFANIuQq9Ry6T37lWIBNSopYUEWk&dib_tag=se&keywords=1602+LCD+I2C&qid=1715695704&sr=8-7&linkCode=ll1&tag=presire2-22&linkId=eddf740dad0d30ae93bdba12d550ad59&language=ja_JP&ref_=as_li_ss_tl WayinTop 1602 LCD バックライト付き + IIC/I2Cモジュール]</center>
|}
</center>
<br><br>
== LCDに文字を表示する ==
== LCDに文字を表示する ==
==== 概要 ====
==== SC1602とは ====
ここでは、ArduinoにLCD(SC1602)を接続して、文字を表示する方法を記載する。<br>
SC1602の定格とピン配置は下図の通りである。<br>
SC1602の定格とピン配置は下図の通りである。<br>
ピン番号が1から順番に、VSS, VDD, ...と表示している。<br>
ピン番号が1から順番に、VSS, VDD, ...と表示している。<br>
[[ファイル:Arduino SC1602 01.png|フレームなし|中央]]
[[ファイル:Arduino SC1602 01.png|フレームなし|中央]]
[[ファイル:Arduino SC1602 02.png|フレームなし|中央]]
[[ファイル:Arduino SC1602 02.png|フレームなし|中央]]
<br><br>
<br>
 
==== ArduinoとLCDを接続する ====
==== ArduinoとLCDを接続する ====
SC1602への接続方法を以下に記載する。<br>
SC1602への接続方法を以下に記載する。<br>
<br>
まず、電源は1番ピン~3番ピン、V<small>SS</small>とV<small>0</small>はGnd、V<small>DD</small>は+5.0[V]、バックライトの電源は15番ピン~16番ピン、<br>
まず、電源は1番ピン~3番ピン、V<small>SS</small>とV<small>0</small>はGnd、V<small>DD</small>は+5.0[V]、バックライトの電源は15番ピン~16番ピン、<br>
LED+(A)は+5.0[V]、 LED-(K)はGndにそれぞれ接続する。<br>
LED+(A)は+5.0[V]、 LED-(K)はGndにそれぞれ接続する。<br>
126行目: 140行目:
以下にサンプルコードを記述する。<br>
以下にサンプルコードを記述する。<br>
  <syntaxhighlight lang="c++">
  <syntaxhighlight lang="c++">
#include <Wire.h>  // I2Cライブラリ
  #include <LiquidCrystal_I2C.h>
  #include <LiquidCrystal_I2C.h>
   
   
  LiquidCrystal_I2C lcd(0x27, 16, 2);  // LCD : 16x2, IC : PCF8574T
// LCD : 16x2, IC : PCF8574T
  // LiquidCrystal_I2C lcd(0x3F, 16, 2);  // LCD : 16x2, IC : PCF8574AT
  LiquidCrystal_I2C lcd(0x27, 16, 2);
  // LiquidCrystal_I2C lcd(0x27, 20, 4);  // LCD : 20x4, IC : PCF8574T
  // LiquidCrystal_I2C lcd(0x3F, 20, 4);  // LCD : 20x4, IC : PCF8574AT
  // LCD : 16x2, IC : PCF8574AT
  // LiquidCrystal_I2C lcd(0x3F, 16, 2);
  // LCD : 20x4, IC : PCF8574T
  // LiquidCrystal_I2C lcd(0x27, 20, 4);
  // LCD : 20x4, IC : PCF8574AT
  // LiquidCrystal_I2C lcd(0x3F, 20, 4);
void setup()
{
    lcd.init();      // LCDの初期化
    lcd.backlight();  // LCDバックライトの点灯
}
void loop()
{
    lcd.setCursor(0, 0);  // 1行目の先頭にカーソルを移動
    lcd.print("Hello,");
    lcd.setCursor(0, 1);  // 2行目の先頭にカーソルを移動
    lcd.print("world!");
   
    delay(1000);
   
    lcd.clear();  // 表示をクリア
   
    delay(1000);
}
</syntaxhighlight>
<br>
[[ファイル:Arduino SC1602 08.jpg|フレームなし|中央]]
<br><br>
 
== I2CScanner ==
I2CScannerというプログラムを使用することにより、LCDのI2Cアドレスを確認することができる。<br>
これは、ArduinoにI2C対応機器を接続して、シリアルモニタからI2Cアドレスを確認するものである。<br>
<br>
* I2CScannerのGithub
*: https://github.com/asukiaaa/I2CScanner
<br>
<syntaxhighlight lang="c++">
#include <Wire.h>
   
   
  void setup()
  void setup()
  {
  {
     lcd.init();  
#ifdef _ESP32_HAL_I2C_H_
     lcd.backlight();
     Wire.begin(26, 25);
     lcd.setCursor(0, 0);
#else
     lcd.print("Hello, world!");
     Wire.begin();
#endif
     Serial.begin(115200);
    while (!Serial); // シリアルモニタが起動するまで待機
     Serial.println("\nI2C Scanner");
  }
  }
   
   
  void loop()
  void loop()
  {
  {
    byte error    = 0x00,
        address  = 0x00;
    int  nDevices = 0;
    Serial.println("Scanning...");
    for (address = 1; address < 127; address++) {
      // I2CScannerは、Write.endTransmisstionメソッドの戻り値を利用して、デバイスがそのアドレスに認識(確認応答)したかどうかを確認する
      Wire.beginTransmission(address);
      error = Wire.endTransmission();
      if (error == 0) {
          Serial.print("I2C device found at address 0x");
          if (address < 16) {
            Serial.print("0");
          }
          Serial.print(address, HEX);
          Serial.println("  !");
          nDevices++;
      }
      else if (error == 4) {
          Serial.print("Unknown error at address 0x");
          if (address < 16) {
            Serial.print("0");
          }
          Serial.println(address, HEX);
      }
    }
   
   
    if (nDevices == 0) {
      Serial.println("No I2C devices found\n");
    }
    else {
      Serial.println("done\n");
    }
    delay(5000);  // 次のスキャンまで5秒待機
  }
  }
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
[[ファイル:Arduino SC1602 08.jpg|フレームなし|中央]]
 
<br><br>
<br><br>


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