Espruino:Примеры/Клавиатурный таймер: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 5: | Строка 5: | ||
=Клавиатурный таймер<ref>[https://www.espruino.com/KeyPad+Timer www.espruino.com - KeyPad Timer]</ref>= | =Клавиатурный таймер<ref>[https://www.espruino.com/KeyPad+Timer www.espruino.com - KeyPad Timer]</ref>= | ||
В этой статье мы расскажем, как при помощи [https://www.espruino.com/KeyPad кнопочной панели] и Espruino создать клавиатурный таймер. Кнопочная панель есть в наборе Espruino Ultimate, но её также можно купить отдельно (см. последний раздел этой статьи). | В этой статье мы расскажем, как при помощи [https://www.espruino.com/KeyPad кнопочной панели] и Espruino создать клавиатурный таймер. Кнопочная панель есть в наборе [[Espruino Ultimate]], но её также можно купить отдельно (см. последний раздел этой статьи). | ||
== Вам понадобятся == | == Вам понадобятся == | ||
Строка 14: | Строка 14: | ||
== Подсоединение == | == Подсоединение == | ||
Просто подключите кнопочную панель к контактам B2, B3, B4, B5, B6, B7, B8 и B9 на Espruino (они находятся на боковой стороне Espruino и идут один за другим) – так, чтобы она (кнопочная панель) лежала лицевой стороной вверх. Провод рядом с «D» нужно подключить к B2, а провод рядом с «*» – к B9. Какой контакт куда подключать – неважно, но если вы будете использовать какие-то другие контакты, то вам также нужно будет внести соответствующие изменения в код ниже. | Просто подключите кнопочную панель к контактам '''B2, B3, B4, B5, B6, B7, B8 и B9''' на [[Espruino]] (они находятся на боковой стороне [[Espruino]] и идут один за другим) – так, чтобы она (кнопочная панель) лежала лицевой стороной вверх. Провод рядом с '''«D»''' нужно подключить к '''B2''', а провод рядом с '''«*»''' – к '''B9'''. Какой контакт куда подключать – неважно, но если вы будете использовать какие-то другие контакты, то вам также нужно будет внести соответствующие изменения в код ниже. | ||
== Код == | == Код == | ||
Во-первых, нам надо запрограммировать ответ на нажатие кнопки. Подключитесь к Espruino, скопируйте и вставьте код ниже в правую часть IDE и кликните на кнопку загрузки кода. | Во-первых, нам надо запрограммировать ответ на нажатие кнопки. Подключитесь к [[Espruino]], скопируйте и вставьте код ниже в правую часть [[IDE]] и кликните на кнопку загрузки кода. | ||
<syntaxhighlight lang="html5" enclose="div"> | <syntaxhighlight lang="html5" enclose="div"> | ||
Строка 28: | Строка 28: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Примечание: Мы не можем сразу вписать этот код в левую часть IDE, потому что в нём есть модуль KeyPad, который Web IDE сначала должна динамически подгрузить из интернета. Если мы вписываем код в правую часть, то подгрузка произойдёт, а если в левую, то нет. | '''Примечание:''' Мы не можем сразу вписать этот код в левую часть [[IDE]], потому что в нём есть модуль [[KeyPad]], который [[Web IDE]] сначала должна динамически подгрузить из интернета. Если мы вписываем код в правую часть, то подгрузка произойдёт, а если в левую, то нет. | ||
Теперь, когда вы нажмёте на панели на какую-нибудь кнопку, этот символ появится на экране. | Теперь, когда вы нажмёте на панели на какую-нибудь кнопку, этот символ появится на экране. | ||
Строка 34: | Строка 34: | ||
Далее нам надо сделать так, чтобы символы прибавлялись друг к другу и создавали большое число. Если на панели будет нажата нецифровая кнопка, это будет означать запуск таймера. | Далее нам надо сделать так, чтобы символы прибавлялись друг к другу и создавали большое число. Если на панели будет нажата нецифровая кнопка, это будет означать запуск таймера. | ||
Скопируйте и вставьте код ниже в правую часть IDE и кликните на кнопку загрузки кода: | Скопируйте и вставьте код ниже в правую часть [[IDE]] и кликните на кнопку загрузки кода: | ||
<syntaxhighlight lang="html5" enclose="div"> | <syntaxhighlight lang="html5" enclose="div"> | ||
Строка 58: | Строка 58: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Теперь, если нажимать на клавиатуре кнопки с цифрами, они будут появляться на экране, а если на другие кнопки (вроде «А»), это покажет число, которое будет отсчитывать таймер. | Теперь, если нажимать на клавиатуре кнопки с цифрами, они будут появляться на экране, а если на другие кнопки (вроде '''«А»'''), это покажет число, которое будет отсчитывать таймер. | ||
<syntaxhighlight lang="html5" enclose="div"> | <syntaxhighlight lang="html5" enclose="div"> | ||
Строка 113: | Строка 113: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Теперь, если ввести число (советуем задавать число поменьше или набраться терпения – ждать придётся долго!) и нажать на нецифровую кнопку, это запустит таймер. Пока будет вестись обратный отсчёт, будет мигать зелёный светодиод, а когда всё закончится, на секунду загорится красный светодиод. | Теперь, если ввести число (советуем задавать число поменьше или набраться терпения – ждать придётся долго!) и нажать на нецифровую кнопку, это запустит таймер. Пока будет вестись обратный отсчёт, будет мигать зелёный [[светодиод]], а когда всё закончится, на секунду загорится красный [[светодиод]]. | ||
=См.также= | =См.также= |
Версия от 14:30, 6 марта 2021
Клавиатурный таймер[1]
В этой статье мы расскажем, как при помощи кнопочной панели и Espruino создать клавиатурный таймер. Кнопочная панель есть в наборе Espruino Ultimate, но её также можно купить отдельно (см. последний раздел этой статьи).
Вам понадобятся
Подсоединение
Просто подключите кнопочную панель к контактам B2, B3, B4, B5, B6, B7, B8 и B9 на Espruino (они находятся на боковой стороне Espruino и идут один за другим) – так, чтобы она (кнопочная панель) лежала лицевой стороной вверх. Провод рядом с «D» нужно подключить к B2, а провод рядом с «*» – к B9. Какой контакт куда подключать – неважно, но если вы будете использовать какие-то другие контакты, то вам также нужно будет внести соответствующие изменения в код ниже.
Код
Во-первых, нам надо запрограммировать ответ на нажатие кнопки. Подключитесь к Espruino, скопируйте и вставьте код ниже в правую часть IDE и кликните на кнопку загрузки кода.
function onKey(key) {
console.log("123A456B789C*0#D"[key]);
}
require("KeyPad").connect([B2,B3,B4,B5],[B6,B7,B8,B9], onKey);
Примечание: Мы не можем сразу вписать этот код в левую часть IDE, потому что в нём есть модуль KeyPad, который Web IDE сначала должна динамически подгрузить из интернета. Если мы вписываем код в правую часть, то подгрузка произойдёт, а если в левую, то нет.
Теперь, когда вы нажмёте на панели на какую-нибудь кнопку, этот символ появится на экране.
Далее нам надо сделать так, чтобы символы прибавлялись друг к другу и создавали большое число. Если на панели будет нажата нецифровая кнопка, это будет означать запуск таймера.
Скопируйте и вставьте код ниже в правую часть IDE и кликните на кнопку загрузки кода:
function startTimer(time) {
console.log("Запуск таймера: "+time+" секунд");
}
var value = "";
function onKey(key) {
var ch = "123A456B789C*0#D"[key];
if ("0123456789".indexOf(ch)<0) {
// Если это не цифра, значит запускаем таймер:
startTimer(parseInt(value, 10/*decimal*/));
value = "";
} else {
// В противном случае сохраняем значение:
value += ch;
console.log(value); // пишем в консоль...
}
}
require("KeyPad").connect([B2,B3,B4,B5],[B6,B7,B8,B9], onKey);
Теперь, если нажимать на клавиатуре кнопки с цифрами, они будут появляться на экране, а если на другие кнопки (вроде «А»), это покажет число, которое будет отсчитывать таймер.
// Нажимаем 1
1
// Нажимаем 2
12
// Нажимаем 3
123
// Нажимаем 4
1234
// Нажимаем A
Запуск таймера: 1234 секунд
Далее создаём сам таймер. Замените старую функцию startTimer() на вот этот код:
var timerInterval;
var timerCount;
function timerFinished() {
// Включаем красный светодиод на секунду,
// чтобы показать, что мы закончили:
digitalPulse(LED1, 1, 1000);
}
function startTimer(time) {
// Сбрасываем текущий таймер (если он был):
if (timerInterval!==undefined)
clearInterval(timerInterval);
timerInterval = undefined;
// Если было введено какое-то время, запускаем таймер:
if (time>0) {
console.log("Запуск таймера: "+time+" секунд");
timerCount = time;
// Вызываем это раз в секунду...
timerInterval = setInterval(function() {
// Уменьшаем значение таймера:
timerCount--;
if (timerCount<=0) {
// Если достигли «0», останавливаем таймер
// и вызываем timerFinished():
clearInterval(timerInterval);
timerInterval = undefined;
timerFinished();
} else {
// В противном случае просто мигаем зелёным светодиодом:
digitalPulse(LED2, 1, 100);
}
}, 1000);
}
}
Теперь, если ввести число (советуем задавать число поменьше или набраться терпения – ждать придётся долго!) и нажать на нецифровую кнопку, это запустит таймер. Пока будет вестись обратный отсчёт, будет мигать зелёный светодиод, а когда всё закончится, на секунду загорится красный светодиод.
См.также
Внешние ссылки