передача кодов на 433мгц с матричной клавиатуры 4х4

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
eniken
Родился
Сообщения: 5
Зарегистрирован: Ср дек 01, 2010 20:47:31

передача кодов на 433мгц с матричной клавиатуры 4х4

Сообщение eniken »

привет всем, подскажите как реализовать передачу кодов на 433мгц с клавиатуры матричной 4х4, причем необходимо передать не только цифру от 1-9. а и 10 и более, работаю с ардуино, можно и не на нем

Код: Выделить всё

#include <Keypad.h> // Подключаем библиотеку 
const byte ROWS = 4; // 4 строки
const byte COLS = 4; // 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 );
void setup(){
  Serial.begin(9600);
}
void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.println(key); // Передаем название нажатой клавиши в сериал порт
    tone(3, (int)key*10, 300); // Издаем звуковой сигнал длиной 300 миллисекунд 
  }
}
Реклама
Аватара пользователя
ptr128
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Чт окт 06, 2016 21:12:07
Откуда: Южное Бутово

Re: передача кодов на 433мгц с матричной клавиатуры 4х4

Сообщение ptr128 »

eniken писал(а):привет всем, подскажите как реализовать передачу кодов на 433мгц с клавиатуры матричной 4х4, причем необходимо передать не только цифру от 1-9. а и 10 и более, работаю с ардуино, можно и не на нем
Для начала, определиться, как Вы собираетесь различать числа 1, 11 и 111.
Варианты:
1. Если время между нажатиями двух кнопок превышает заданное, то считаем число введенным
2. Используем одну из не цифровых кнопок, как сигнал завершения ввода числа.

В обоих случаях накапливаем введенные цифры в буфере. В первом случае, елси по прошедствии заданного времени не была нажата цифровая кнопка, отсылаем накопившийся буфер через vw_send(). Во втором случае отсылаем буфер при нажатии заданной не цифровой кнопки.

В обоих случаях нужно принять решение, как мы должны реагировать на остальные 6 или 5 кнопок и должны ли реагировать воообще.

Если на Arduino использовать библиотеку VirtualWire, то она позволит передать до 27 байт. При этом, хотя бы один-два байта лучше зарезервировать, как свой код префикса сообщения.
Числа можно передавать в трех форматах:
1. В двоичном виде. Наиболее компактно, но сложнее преобразовывать, особенно числа, содержащие свыше 12 десятичных знаков.
2. В символьном виде.
3. В двоично-десятичном виде. Когда на одну десятичную цифру расходуется четыре бита. При этом для положительных чисел эти четыре бита могут принимать значения только от 0 до 9
Не ошибается только то, кто ничего не делает.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Реклама
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: передача кодов на 433мгц с матричной клавиатуры 4х4

Сообщение dosikus »

Охренеть, 16 кнопок как раз влезают в нибл. Но в аурдунье не принято искать простых решений... :)))
И даже хрен с ней экономией, передать ASCII код кнопки , не судьба?
Ответить

Вернуться в «Разные вопросы по МК»