клавиатура 4*4 вывод цифр на светодиодный индикатор
- Войдите на сайт для отправки комментариев
Доброго времени суток бьюсь вот над такой проблемой
имеется клавиатура 4*4 http://arduino.ru/sites/default/files/u23855/matrix_keyboard_4x4_16_key.jpg
Дисплей TM1637 http://transistorz.ru/wp-content/uploads/2017/02/TM1637-display-800x800.jpg
и Arduino uno
Необходимо ввести с клавиатуры 2х значное число. Нажав на не цифровую кнопку, оно должно сброситься или на любую другую кнопку к примеру "С"
Вот что у меня получилось, (После штудирования 1000 и 1 темы в интернете) вводятся 4 цифры коректно, затем какуюто чушь отображает
В программировании я на уровне младенца, подскажите, как переделать этот код под мои нужды чтобы вводилось не больше 2х знаков на индикатор и была кнопка сброс.
Зараннее спасибо
#include <Wire.h> #include "TM1637.h" #define CLK 12 #define DIO 13 TM1637 disp(CLK,DIO); #include <Keypad.h> const byte ROWS = 4; const byte COLS = 4; char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {11,10, 9, 8}; byte colPins[COLS] = {7, 6, 5, 4}; Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); int data=0; boolean first=true; void setup() { disp.set(5); disp.init(D4056A); Serial.begin(9600); } void loop(){ char key = keypad.getKey(); //опрос клавиатуры if(key){ if(first){ first=false; if(isDigit(key)){ data = data*10+key-48; disp.display(key); disp.display(data); }else{ //обрабатываем нажатие не цифровых клавиш } } }else if (!first){ first=true; } }
Необходимо ввести с клавиатуры 2х значное число.
...вводятся 4 цифры коректно, затем какуюто чушь отображает
Мне кажется, что у двухзначного числа должно "корректно вводиться" не более двух цифр.
Ну и на всякеий случай: максимальное значение допустимое для int равно 32767, если нужно больше, следует использовать более длинный тип данных.
Нужно сделать чтобы максимально можно было ввести 4х значное число. И сброс этого числа с кнопки к примеру "C"
Сейчас можно ввести как минимум 7 значное число а то и больше, нужно ограничить до 4х.
В общем получилось сделать сброс отображения на экране при нажатии на буквы "A","B","C","D", происходит сброс данных на Дисплее ТМ1637
Вот как сделать чтобы максимум можно ввести с клавиатуры не более 4х цифр в идеале всего 2 Уже сломал всю голову
Просьбва знающих помочь
Вот код, что у меня получился на данный момент
Вот как сделать чтобы максимум можно ввести с клавиатуры не более 4х цифр в идеале всего 2 Уже сломал всю голову
Очевидно - считать количество введенных цифр.
Можно также перед вводом очередной проверять, что число не более 999. В общем - как душеньке угодно.
А подробнее можно?
Можно.
Задавайие конкретные вопросы.
Вроде, как и задавал
Как сделать чтобы максимум можно ввести с клавиатуры не более 4х цифр в идеале всего 2
Только на практике можно с примером
Перечитайте пост №5. Там все необходимое, чтобы сделать это самостоятельно.
А за готовым кодом - в раздел "Ищу исполнителя".
Вот, если бы знал то не просил бы помощи
Блин, ну неужели так сложно чуточку подумать?????!!!!!! Да простит меня andriano
data=(data%10)*10 + key-48
Спасибо большое, не то чтобы сложно, просто нехватает знаний. Программирование только начал изучать,