【问题标题】:Arduino Keypad simple code doesn't workArduino键盘简单代码不起作用
【发布时间】:2023-03-05 19:34:01
【问题描述】:
/* @file CustomKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates changing the keypad size and key values.
|| #
*/

我不明白这个经过认证的简单代码不起作用。我收到消息: 键盘:41:错误:“led_pin”未在此范围内声明 否则 digitalWrite(led_pin,LOW);

#include <Keypad.h>

int led_pin=13;
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 

void setup(){
  pinMode(led_pin,OUTPUT);
  Serial.begin(9600);
}

void loop(){
  char customKey = customKeypad.getKey();

  if (customKey){
    digitalWrite(led_pin,HIGH);
    Serial.println(customKey);
    delay(100);
  }
   else digitalWrite(led_pin,LOW);
}

如果我将另一个 ledd_pin 声明放入循环中,我会收到以下消息: 在函数“无效循环()”中: 键盘:35:错误:“customKeypad”未在此范围内声明 char customKey = customKeypad.getKey();

这首歌很奇怪,因为一切都必须在那个非常简单的程序上运行。

【问题讨论】:

  • 你在使用这个库吗? https://github.com/Chris--A/Keypad ?

标签: arduino arduino-uno


【解决方案1】:

我认为你应该检查循环中' if 语句的结构。

void loop(){
  char customKey = customKeypad.getKey();

  if (customKey){
    digitalWrite(led_pin,HIGH);
    Serial.println(customKey);
    delay(100);
  } else {
    digitalWrite(led_pin,LOW);
  }
}

【讨论】:

  • 我认为结构不是问题,如果是这样,您需要强调他们的代码中缺少的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 2023-03-22
相关资源
最近更新 更多