Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить

Беспроводная клавиатура из ноутбучной

Ср авг 26, 2020 11:55:38

Хочу сделать беспроводную клавиатуру из ноутбучной. Сделал плату для отладки, мега32+NRF24L01. Столкнулся с такой проблемой: не все клавиши сканируются.
Сканирую матрицу вот так:
Спойлер
Код:
const int led = 2, matrix[] = { 1, 0, 24, 25, 26, 27, 28, 29, 30, 31, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8 };

bool readKey(){
  bool f = false;
  for(int i = 0; i < 26; i++){
    pinMode(matrix[i], OUTPUT);
    digitalWrite(matrix[i], LOW);
    for(int j = 0; j < 26; j++){
      if(i == j) continue;
      if(digitalRead(matrix[j]) == LOW) f = true;
    }
    pinMode(matrix[i], INPUT_PULLUP);
  }
  return f;
}

void setup() {
  pinMode(led, OUTPUT);
  for(int i = 0; i < 26; i++){
    pinMode(matrix[i], INPUT_PULLUP);
  }
}

void loop() {
  if(readKey()) digitalWrite(led, HIGH); else digitalWrite(led, LOW);
}
Большинство клавиш сканируются, но блоки f1-f12, доп блок цифр, ctrl, win, alt, space не сканируются. Но если нажать две клавиши например + и - то они отсканируются

Re: Беспроводная клавиатура из ноутбучной

Ср авг 26, 2020 12:05:19

Вы бы не прогу без комментов выкладывали, а расписали бы алгоритм сканирования. Толку было бы больше. Да и аппаратную часть бы неплохо описать от начала и до конца. Любопытно, как Вы собираетесь питать МК с радиомодулем без провода? Как и куда передавать с него данные?

Re: Беспроводная клавиатура из ноутбучной

Ср авг 26, 2020 12:20:51

Вы бы не прогу без комментов выкладывали, а расписали бы алгоритм сканирования. Толку было бы больше.

Там коду 4 строчки. Радиомодуль пока не задействовал, сначала хочу разобраться с неработающими клавишами
Изображение

Re: Беспроводная клавиатура из ноутбучной

Пн авг 31, 2020 08:37:12

Ноутбучная клавиатура представляет из себя матрицу в узлах которой замыкаются кнопки. Необходимо организовать опрос "строк", подавая на "столбцы" импульсы, определённым образом сдвинутые во времени. Входы "строк" не должны просто так "висеть в воздухе", а д.б. притянуты к корпусу (или Uпит) резисторами 10-100 кОм. По крайней мере, так сделано в подавляющем большинстве мультиконтроллеров ноутбуков. Вы можете разработать свой собственный метод опроса кнопок, только учтите необходимость системы помехозащиты, антидребезга и мультиповтора.
Ответить