1

我最近一直在与 Arduino 合作——试图开发一个程序。该程序应该找到键盘按钮连接到哪些引脚,以便更容易使用诸如“键盘”之类的库。我不需要使用万用表。

我目前正在使用 Megaarduino 和 LCD 键盘防护罩。

这是我用于扫描连接到 Arduino 的键盘引脚的代码,但我无法使其工作。

以前有一个引脚对象数组,它有 9 个引脚,具有以下属性:arduinoPinscannedPinbasePin

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