我最近一直在与 Arduino 合作——试图开发一个程序。该程序应该找到键盘按钮连接到哪些引脚,以便更容易使用诸如“键盘”之类的库。我不需要使用万用表。
我目前正在使用 Megaarduino 和 LCD 键盘防护罩。
这是我用于扫描连接到 Arduino 的键盘引脚的代码,但我无法使其工作。
以前有一个引脚对象数组,它有 9 个引脚,具有以下属性:arduinoPin
、scannedPin
、basePin
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);
}
这段代码有问题吗?