в 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"; // массив ввода
все заработало, ура!
все заработало, ура!
А в ошибке то разобрались? В чём дело было поняли? С числом элементов правильно объявить можете? Если нет, - то не ура.
думаю смогу, не сталкивался раньше с массивами, только версию прошивки отопительной печки объявлял :)