2

私は Arduino Mega を持っており、SDA&SCL ピンを A4&A5 から A14&A15 に変更したいと考えています。

そこからI2C LCDを制御できるように、ライブラリを持っていますが、ピンがどこに設定されているかわかりません。ただし、どこかに設定する必要があると思います...

私はC ++とライブラリに慣れていないので、私の目はそれをスキップしているかもしれません

4

3 に答える 3

1

I 2 C ピンは AVR のハードウェアで設定されます。そもそも MCU に他のバスがあると仮定すると、完全に異なる I 2 C バスを使用する以外にそれらを変更する方法はありません。

ハードウェアで利用可能なもの以外のピンを使用する場合は、通常の GPIO で I 2 C をビットバングするライブラリを見つけて、ハードウェア I 2 Cの代わりにそのライブラリを使用するように LCD ライブラリを変更する必要があります。

于 2014-05-22T03:01:20.187 に答える
1

この質問はかなり古いですが、この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() {
}
于 2021-04-06T08:38:24.040 に答える