Ввод двух-, трех-, четырехзначных числе с матричной клавиатуры на 1604
- Войдите на сайт для отправки комментариев
Пнд, 20/01/2020 - 11:31
Всем привет!
У меня уже получилось вывести на дисплей 1604 какой-либо текст, а также выводить на дисплей в указанную ячейку какое-либо число по нажатию его на матричной клавиатуре. Есть желание двигаться дальше и сейчас я ломаю голову над тем, как вывести на дисплей, например, число 12 или 2346, набранное на матричной клавиатуре.
Правильно ли я рассуждаю?:
Для вывода одного числа используется следующий код:
lcd.setCursor(0, 1); lcd.print(key);
При следующем нажатии клавиши на клавиатуре, очевидно, положение курсора должно смещаться в
lcd.setCursor(1, 1);
При нажатии третьей цифры
lcd.setCursor(2, 1);
и т.д. Как это можно сделать?
Так вывести цифирки или число?
Добавьте переменную, в которой будете хранить позицию курсора, например:
При каждом нажатии кнопки, после вывода символа на экран, увеличивайте число на 1:
Не забывайте следить, чтобы позиция курсора не вышла за пределы экрана:
Выводите на экран так:
Жек, так это цифирки получаются, ну или числа, одноразрядные. Чет подсказывает, что ТС другого хочет. Могу конечно ошибаться.))))
Жек, так это цифирки получаются, ну или числа, одноразрядные. Чет подсказывает, что ТС другого хочет.
Пожелания два:
1. Запрограммировать так, чтобы, например, при нажатии клавиш '1','2','3','4' на дисплей выводилось 1234.
2. И чтобы эти 1234 программа воспринимала как число, равное 1234.
Добавьте переменную, в которой будете хранить позицию курсора, например:
При каждом нажатии кнопки, после вывода символа на экран, увеличивайте число на 1:
Не забывайте следить, чтобы позиция курсора не вышла за пределы экрана:
Выводите на экран так:
1. Запрограммировать так, чтобы, например, при нажатии клавиш '1','2','3','4' на дисплей выводилось 1234.
2. И чтобы эти 1234 программа воспринимала как число, равное 1234.
на втором пункте колдануть придётся.
я бы использовал амулеты atoi() или atol()
Ну если не хочется заморачиваться с оптимизацией отрисовки, то всё довольно просто:
Также можно стирать последнюю набранную цифирь по нажатию любой клавиши, для этого достаточно number разделить на 10. Короче - чистая арифметика.
В итоге у меня при выбора задачи (1 из 4 вариантов) выбранная задача выполняется, но только если она простая. Т.е. Если при нажатии '2' запускается Task_2, то, да, дисплей отображает то, что сказал отображать в этой задаче при
Но, если я хочу отображать ввод числа, то такая задача отображает только то, что сказано отобразить до ввода числа. Т.е.
Отображает на дисплее "Vvedi chislo", а вводимые после этого цифры не отображаются.