1

私は最近 Arduino を使って仕事をしています - プログラムを開発しようとしています。プログラムは、「キーパッド」などのライブラリを使いやすくするために、キーパッド ボタンがどのピンに接続されているかを検出する必要があります。マルチメーターを使う必要はありません。

私は現在、Megarduino と LCD キーパッド シールドを使用しています。

これは、Arduino に接続されたキーパッド ピンをスキャンするためのコードですが、動作させることができません。

以前は、次の属性を持つ 9 つのピンを持つピン オブジェクト配列がありarduinoPinますscannedPinbasePin

for (int kpdBasePin=2; kpdBasePin<NUMPINS; kpdBasePin++)
{
    scanPins(kpdBasePin);    // scan all pins less than kpdBasePin.
}

void scanPins(int baseKpdPin)
{
    // Set base_pin output to LOW to begin scan process.
    int base = kpdPin[baseKpdPin].arduinoPin;
    pinMode(base, OUTPUT);
    digitalWrite(base, LOW);

    // Scan all pins up to, but not including, the base_pin. A LOW indicates a
    // key is being pressed.
    for (int scannedKpdPin = 1; scannedKpdPin < baseKpdPin; scannedKpdPin++)
    { 
        // Created a local variable for readability.
        int arduinoPin = kpdPin[scannedKpdPin].arduinoPin;
        int keyState = !digitalRead(arduinoPin);

        if (keyState)
        {
            storePins(scannedKpdPin, base);    //method to store both pins
        }
    }

    // End pin scanning process.
    digitalWrite(base, HIGH);
    pinMode(base, INPUT_PULLUP);
}

このコードに何か問題がありますか?

4

0 に答える 0