Ввод числа в переменную.
- Войдите на сайт для отправки комментариев
Сб, 22/12/2018 - 21:11
Всем добрый вечер.
Не кидайте палками, мучаюсь, не могу разобраться.
Есть светодиод, матричная клавиатура и кнопка.
При нажатии кнопки светодиод мигает через delay. значение в delay берется из переменной "r"
Как до нажатия кнопки ввести другое значение в переменную "r"?
#include <Keypad.h> const int s = 12; int led = 2; int r = 500; const byte ROWS = 4; const byte COLS = 4; char button; char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {A0,A1,A2,A3}; // подключение к строкам клавиатуры byte colPins[COLS] = {4,5,6,7}; // подключение к столбцам клавиатуры Keypad customKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS); // Этот код выполняется только один раз: при включении платы void setup() { pinMode(s, INPUT); pinMode(led, OUTPUT); button = customKeypad.getKey(); // Определение нажатой кнопки Serial.print(button); Serial.begin(9600); } // Этот код выполняется постоянно void loop() { if (digitalRead(s) == HIGH) { test: digitalWrite(led, HIGH); delay(r); digitalWrite(led, LOW); delay(r); goto test; } }
Откуда ввести - из космоса?
Код Вы писали, или стащили где-то? Хоть букву в нём понимаете? Если да, то что означает значок "=" в строках 2, 3, 4, 5 и 6?
Значит, что переменным s, led, r, ROWS, COLS присваиваются значения 12 (пин к которому подключена кнопка), 2 (пин с диодом), 500, 4 и 4, (количество строк и столбцов).
Код из примеров, только для того, что бы разобраться как в переменную ввести данные с клавиатуры до начала функции loop.
Не прошу готового результата, хотя бы где об этом прочитать.
Не претендую на звание "лучший код года", с ардуино пару недель всего, для завершения моего проекта только эта проблема и осталась.
с матричной клавиатуры. или хотя бы с монитора порта.
Ключевое слово - parseInt()
Вы бы определились, вам до нажатия или после?
Так нажатие кнопки в функции loop происходит.
Я определился сразу.
Почитаю, спасибо.
Нажатие кнопки производится на клавиатуре человеком (ну или кем-то/чем-то еще) и от функции loop это событие никак не зависит.
И скорее всего начинать надо так
До начала мигания светодиода. Так лучше?
Спасибо. Я понимаю, что мигать нужно без delay.
В итоге мне будет нужно с клавиатуры задавать количество шагов, которые должен сделать шаговый двигатель.
Мигание светодиода выбрал просто, чтоб меньше строк перед глазами было.
Ну да. Я просто показываю направление, как должен выглядить скетч. Ну по крайней мере один из вариантов.
Значит, что переменным s, led, r, ROWS, COLS присваиваются значения
Такзначит Вы знаете как присвоить перемнной значение. А в чём тогда Ваш вопрос, я что-то не понял?
Вопрос в том, как ей присвоить значение введя его с клавиатуры после подачи питания на плату.
вот так получилось.
Но можно ли тоже самое проделать в void setup() ?
Вот такой метод нормальный?
sintaz, Вы адекватный человек, или для вас программирование идет по приколу?
Ну относительно взрослый адекватный, с работой, с семьёй. А программирование скорее как вы сказали "по приколу". Появилась личная необходимость кое что собрать исключительно для себя, лиж бы работало.
В любом случае, мне тут помогли, вопрос в принципе решен.