我最近一直在与Arduino合作 - 试图开发一个程序。程序应该找到键盘按钮连接到哪些引脚,以便更容易使用诸如“键盘”之类的库。我不需要使用万用表。
我目前正在使用Megarduino和LCD键盘屏蔽。
这是我扫描连接到Arduino的键盘引脚的代码,但我无法使其正常工作。
之前有一个pin对象数组有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);
}
此代码有问题吗?