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
Не ошибается только то, кто ничего не делает.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.