Arduino Uno,用于中继的 4x4 键盘
Arduino Uno, 4x4 Keypad to relay
#include <Keypad.h>
const byte numRows = 4;
const byte numCols = 4;
int relePin = 10;
char keymap[numRows][numCols] =
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[numRows] = {9, 8, 7, 6};
byte colPins[numCols] = {5, 4, 3, 2};
Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
void setup() {
Serial.begin(9600);
pinMode(relePin, OUTPUT);
}
void loop() {
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY);
{
Serial.print(keypressed);
}
}
{
char key = keypad.getKey();
if (int(key) == 1) {
digitalWrite(relePin, LOW);
delay(1000);
digitalWrite(relePin, HIGH);
delay(1000);
}
}
keypad_til_rele:37: 错误:'{' token
之前需要不合格的 id
{
^
退出状态 1
'{' 标记
之前的预期不合格 ID
哪里出错了? :/
没看到在哪里???
我是 ardiuno 的新手
您有两个额外的大括号 }
和 {
过早地关闭了您的主循环。您也没有在任何地方声明 keypad
。我在下面评论了它们:
#include <Keypad.h>
const byte numRows = 4;
const byte numCols = 4;
int relePin = 10;
char keymap[numRows][numCols] =
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[numRows] = {9, 8, 7, 6};
byte colPins[numCols] = {5, 4, 3, 2};
Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
void setup() {
Serial.begin(9600);
pinMode(relePin, OUTPUT);
}
void loop() {
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY);
{
Serial.print(keypressed);
}
//} These two line are your problem
//{
//char key = keypad.getKey(); // keypad was not declared anywhere, I assume it was meant to be this:
char key = myKeypad.getKey();
if (int(key) == 1) {
digitalWrite(relePin, LOW);
delay(1000);
digitalWrite(relePin, HIGH);
delay(1000);
}
}
#include <Keypad.h>
const byte numRows = 4;
const byte numCols = 4;
int relePin = 10;
char keymap[numRows][numCols] =
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[numRows] = {9, 8, 7, 6};
byte colPins[numCols] = {5, 4, 3, 2};
Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
void setup() {
Serial.begin(9600);
pinMode(relePin, OUTPUT);
}
void loop() {
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY);
{
Serial.print(keypressed);
}
}
{
char key = keypad.getKey();
if (int(key) == 1) {
digitalWrite(relePin, LOW);
delay(1000);
digitalWrite(relePin, HIGH);
delay(1000);
}
}
keypad_til_rele:37: 错误:'{' token
之前需要不合格的 id{
^
退出状态 1 '{' 标记
之前的预期不合格 ID哪里出错了? :/ 没看到在哪里??? 我是 ardiuno 的新手
您有两个额外的大括号 }
和 {
过早地关闭了您的主循环。您也没有在任何地方声明 keypad
。我在下面评论了它们:
#include <Keypad.h>
const byte numRows = 4;
const byte numCols = 4;
int relePin = 10;
char keymap[numRows][numCols] =
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[numRows] = {9, 8, 7, 6};
byte colPins[numCols] = {5, 4, 3, 2};
Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
void setup() {
Serial.begin(9600);
pinMode(relePin, OUTPUT);
}
void loop() {
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY);
{
Serial.print(keypressed);
}
//} These two line are your problem
//{
//char key = keypad.getKey(); // keypad was not declared anywhere, I assume it was meant to be this:
char key = myKeypad.getKey();
if (int(key) == 1) {
digitalWrite(relePin, LOW);
delay(1000);
digitalWrite(relePin, HIGH);
delay(1000);
}
}