📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
細 文字列「presire220a-22」を「presire2-22」に置換 |
|||
| (同じ利用者による、間の6版が非表示) | |||
| 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とは ==== | ||
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> | ||
==== 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> | ||
| 142行目: | 157行目: | ||
void setup() | void setup() | ||
{ | { | ||
lcd.init(); | lcd.init(); // LCDの初期化 | ||
lcd.backlight(); | lcd.backlight(); // LCDバックライトの点灯 | ||
} | |||
void loop() | |||
{ | |||
lcd.setCursor(0, 0); // 1行目の先頭にカーソルを移動 | lcd.setCursor(0, 0); // 1行目の先頭にカーソルを移動 | ||
lcd.print("Hello,"); | lcd.print("Hello,"); | ||
lcd.setCursor(0, 1); // 2行目の先頭にカーソルを移動 | lcd.setCursor(0, 1); // 2行目の先頭にカーソルを移動 | ||
lcd.print("world!"); | 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() | |||
{ | |||
#ifdef _ESP32_HAL_I2C_H_ | |||
Wire.begin(26, 25); | |||
#else | |||
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> | ||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:Arduino]] | [[カテゴリ:Arduino]] | ||