«Клавиатура» (аналоговые порты)
Вот такое устройство подключено:
Идея описана тут:
https://akostina76.ucoz.ru/blog/2019-05-30-5872
Как ни странно, работает. Но только на А-портах (A0, A1 и т.д). Наверное, такие порты аналоговые, а цифровые -… цифровые в смысле 0 и 1 (больше можно, но надо постараться).
То, что считывается такой аналоговый сигнал, означает, что у меня уже есть осциллограф. С пятью входящими каналами (два порта нужны на часы) и с записью информации в файл. Если такое продаётся, то стоит каких-нибудь диких денег.
С клавиатурой не без проблем, конечно. Скорее всего, подобные проблемы и вызвали переход к числовой информации. Аналоговое чтение с порта возвращает цифру от 0 до 1000 в зависимости от поданного на порт напряжения (от 0 до 5 вольт).
Клавиатура у меня очень специфическая. Странно ждать от такого устройства стабильности. Скорее, для него естественно, что одна и та же буква считывается разными цифрами;
Вот такое он считал (цифры сверху):
таким чтением:
if (kbd1<980)
{
delay(20);
kbd2 = analogRead(PIN_KBD1);
delay(20);
kbd3 = analogRead(PIN_KBD1);
delay(20);
kbd4 = analogRead(PIN_KBD1);
… т.е если зафиксировано нажатие, то он ещё три раза пытается читать информацию через 20 миллисекунд. Получилось 485, 501, 504, 503. Теоретически не страшно, но я решила не цеплять 50 кнопок к одному устройству, а сделать два по 25 (чтобы диапазоны были шире).
Скорее всего, это будет первая ситуация, которая потребует проверки корректности полученной информации. Здесь, скорее всего, подойдёт ограничение на допустимый разброс или Z-оценку:
https://drive.google.com/open?id=1FIqWcRqvW7mFT5-4aI8mnfVpje6aXW1h
Т.е если при чтении, например 10 раз вылезло 500, 499,501 … 1000, то 1000 – это явная ошибка чтения и либо её надо удалить из набора, либо повторить все чтение.
Полезли мелкие бяки видимо, всё-таки, кустарного компилятора. Без претензий. Работает и прекрасно что работает. Но уже раньше он что-то странное творил при встрече с двухмерными массивами. А сейчас отказался компилировать если кроме I2C монитора есть строки с выводом отладочной информации на экран компьютера (Serial):
http://akostina76.ucoz.ru/blog/2019-01-12-5616
Если бы я предусмотрительно ни купила дисплей, писать было бы не о чем (не посмотреть, что происходит).
Прямо сейчас потребуется и вторая обязательная для компьютера компонента – SD-карта (жесткий диск для постоянного хранений информации). Не руками же мне переписывать разбросы значений при нажатии кнопки. Пусть сразу в файл записывает, а я его потом а Excel-е открою.
Но вначале надо нормальную клавиатуры распечатать и всё к ней прицепить, а то очень неудобно, кроме всего прочего.
p/s
Такие аналоговые порты означают, что ловить прямой радиосигнал тоже, скорее всего, можно. А возможность программирования означает, что чистить его можно математическими методами (рады Фурье, вроде, для этого используют):
http://www.cqham.ru/qrss.htm
|