в serial постоянно пишет сообщение из void setup(){
- Войдите на сайт для отправки комментариев
Пт, 05/01/2018 - 10:27
делаю кодовый замок, при отладке вылезает постоянно в порт сообщение из void setup()
#include <Keypad.h>
//-----------------------------------------------------------------
char enter [5] = {'Z','Z','Z','Z','Z'}; // массив ввода
int i = 0; // переменная ячейки массива
//---------------------------клава------------------
const byte ROWS = 4; // клавиатура имеет четыре ряда
const byte COLS = 4; // клавиатура имеет четыре столбика
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}; // подключение к выводам строк клавиатуры
byte colPins[COLS] = {5, 4, 3, 2}; // подключение к выводам столбцов клавиатуры
Keypad keypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
//---------------------------------------------------------
void setup(){
Serial.begin(9600);
Serial.println("start program");
}
void loop(){
char key = keypad.getKey();
if ((key != NO_KEY)&&(key !=' ')){
Serial.print("key ");
Serial.println(key);
enter [i] = key;
Serial.print("enter ");
Serial.println(enter);
i ++;
if (i == 5) i=0;
Serial.print("i= ");
Serial.println(i);
}
if (enter [4] != 'Z'){
Serial.print("code= ");
Serial.println(enter);
// сравнение с запрограмированным кодом
// действие при совпадении кода
enter [0] = 'Z';
enter [1] = 'Z';
enter [2] = 'Z';
enter [3] = 'Z';
enter [4] = 'Z';
Serial.println("code reset");
}
}
получаю в параллельном порту следующее:
start program
key 1
enter 1ZZZZstart program
i= 1
key 2
enter 12ZZZstart program
i= 2
key 3
enter 123ZZstart program
i= 3
key 4
enter 1234Zstart program
i= 4
key 5
enter 12345start program
i= 0
code= 12345start program
code reset
key 6
enter 6ZZZZstart program
i= 1
не могу понять, откуда лезет после каждого enter и code надпись start program?
пробовал добавлять значения времени с начала програмы, контроллер не перезагружается.
Массив символов enter нормально объявите и будет счастье http://arduino.ru/Reference/String
спасибо, поменял на
char enter[] = "ZZZZZ"; // массив ввода
все заработало, ура!
все заработало, ура!
А в ошибке то разобрались? В чём дело было поняли? С числом элементов правильно объявить можете? Если нет, - то не ура.
думаю смогу, не сталкивался раньше с массивами, только версию прошивки отопительной печки объявлял :)