私は Arduino Mega を持っており、SDA&SCL ピンを A4&A5 から A14&A15 に変更したいと考えています。
そこからI2C LCDを制御できるように、ライブラリを持っていますが、ピンがどこに設定されているかわかりません。ただし、どこかに設定する必要があると思います...
私はC ++とライブラリに慣れていないので、私の目はそれをスキップしているかもしれません
I 2 C ピンは AVR のハードウェアで設定されます。そもそも MCU に他のバスがあると仮定すると、完全に異なる I 2 C バスを使用する以外にそれらを変更する方法はありません。
ハードウェアで利用可能なもの以外のピンを使用する場合は、通常の GPIO で I 2 C をビットバングするライブラリを見つけて、ハードウェア I 2 Cの代わりにそのライブラリを使用するように LCD ライブラリを変更する必要があります。
この質問はかなり古いですが、このLiquidCrystal Software I2Cライブラリを提案したいと思います.オンラインで他の多くの実用的なリソースが見つからず、このライブラリはソフトウェアでI2Cプロトコルを実装しているため、Arduinoの任意の入出力ピンを使用できます.
LiquidCrystal_I2C オブジェクトを作成するときに、SDA ピンと SCL ピンを 4 番目と 5 番目の引数として指定するだけで、標準の LiquidCrystal_I2C ライブラリと同じ機能を持ちます。
たとえば、ピン 3 と 4 をそれぞれ SDA と SCL として使用する場合、ハロー ワードは次のようになります。
// https://github.com/francesco-scar/LiquidCrystal_Software_I2C
// Based on https://github.com/johnrickman/LiquidCrystal_I2C project
#include <LiquidCrystal_Software_I2C.h> // Include library
LiquidCrystal_I2C lcd(0x3f, 16, 2, 3, 4); // Set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
lcd.init(); // LCD initialization
lcd.backlight(); // Turn on backlight
lcd.print("Hello, world!"); // Print Hello, world!
}
void loop() {
}