私は最近 Arduino を使って仕事をしています - プログラムを開発しようとしています。プログラムは、「キーパッド」などのライブラリを使いやすくするために、キーパッド ボタンがどのピンに接続されているかを検出する必要があります。マルチメーターを使う必要はありません。
私は現在、Megarduino と 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);
}
このコードに何か問題がありますか?