mihmig

Подключение к USB-клавиатуре

5 сообщений в этой теме

mihmig    0

От трагически погибшей клавиатуры осталась вполне рабочая плата (см. вложение):

При замыкании перемычкой контакта из левой группы с контактом из правой группы в компьютер попадают символы. Если же замыкать контакт на "землю" в компьютер логично уходят несколько символов (как будто нажали несколько клавиш).

Понимаю, что бред, но можно ли как-то контактами ардуино имитировать замыкание контактов между собой а не на землю?


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

 

photo_2018-03-10_10-17-12.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
KomSoft    247

Клавиатура представляет собой матрицу (строки - колонки), правда они в реальной клавиатуре "изогнутые). Типа динамической индикации - динамический опрос. Берете   пленку от клавиатуры, отслеживаете рисунок дорожек и составляете таблицу соответствия комбинаций замкнутых контактов символам. Не забудьте по шифты, альты, контролы и подобные спецсимволы. Замыкать нужно аналоговым ключом типа полевого транзистора. Но придется ставить 104 ключа (клавиатуры ведь 104-клавишные).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 возможно ошибаюсь, но если одни контакты это датчики а другие  "источники  импульсов" , то их можно замерять контроллером-ардуино  и замыкать на ноль датчики синхронно с источниками.

  примерный  код..........



if(хотим нажать клавишу J){
 if(портX==0){ //  читаем порт X при нужном напряжении
   портY=0;    //  зануляем порт Y
      }
  sleep(....);  // пауза в зависимости от частоты контроллера клавиатуры
   портY=1;     // размыкаем порт Y
}

 

Изменено пользователем Кайфын

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Pont 007    1 516

А зачем это нужно ? Это прикол какой-то ? Или что ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
KomSoft    247
3 hours ago, Кайфын said:

можно замерять контроллером-ардуино  и замыкать на ноль датчики синхронно с источниками.

Логично. 

Хотя вся затея непонятно зачем. Проще ардуиной выдавать код символа в соответствующем протоколе сразу в порт USB

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Гость izakom
      Автор: Гость izakom
      Добрый день,
      Никак не могу, подключить АЦП к микроконтроллеру. Будет здраво, если кто-нибудь сможет подсказать где моя ошибка или хотя бы где ее искать.
      Я подключаю ADS1240 к arduino UNO. Описание АЦП слишком тяжелое, поэтому прикрепляю ссылку
      http://www.ti.com/lit/ds/sbas173f/sbas173f.pdf
      Также во вложении прикрепил 2 схемы подключения, которые побывал.
      Контроллер общается с АЦП по SPI, где D10 -SS, D11 - MOSI, D12 - MISO, D13 - SCLK.

      Сейчас моя задача, измерять напряжение на потенциометре с достаточной точностью. 
      К сожалению внутренний АЦП arduino 10 разрядный, поэтому пытаюсь подключить внешний.

      Также прикрепляю программу, при помощи которой пытаюсь снимать показания. Но к сожалению на контроллер приходит только "0".
      Схема_2.pdf
      Схема_1.pdf
      Тестова программа.txt
      Схема_2.pdf
      Схема_1.pdf
      Тестова программа.txt
    • Гость Роман
      Автор: Гость Роман
      Собираю диммер с использованием микроконтроллера ардуино по следующей схеме:

      Оптрон использую МОС3020. Диммер не заработал. Начал проверять мультиметром:
      1. На J1 входе напряжение 220В
      2. На t1 и t2 ножках симистора напряжение 220В
      3. С PC814 с ножек 3 - 4 напряжение есть (1.2В - 1.8В), это уходит в ардуино
      4. С ардуино на МОС3020 на ножки 1 - 2 тоже напряжение подается (1.2В - 1.8В). А вот уже с 4 - 6 ножки оптрона МОС3020 напряжение снять не могу

      Схема должна быть рабочей, потому что другие люди по ней вроде как собирают устройство. Пайку проверил, вроде все нормально припаял.
      Собственно у меня ряд вопросов:
      1. Можно ли как-то проверить оптрон без выпайки? Или нужно выпаивать и проверять?
      2. Правильно ли я локализировал проблему или мой ход мыслей вообще неправильный?
      3. Как вообще правильно проверять такие схемы, если что-то не работает?
    • Автор: St.Vicarius
      Сил моих нет!
      Идея: нажимаю кнопку - сервопривод поворачивается и зажигаются 4 светодиода.
      Реализация: Arduino mini pro прошито скетчем и оно работает так как задумано, т.е. когда нажимаю кнопочку, то крутится сервопривод, но диоды не зажигаются, хотя скетч рабочий. Проблема скорее всего в светодиодной конструкции.
      Подозрения: Сама светодиодная конструкция собрана так 
      <img src="http://cxem.net/calc_img/ledcalc/3229b2097055972050d15a8ab2b30433.png?1522782146"><br><a href="http://cxem.net/calc/ledcalc.php">Расчёт резистора светодиода</a> И ко всему этому я подключил транзистор кт815г. На базу транзистора идет сигнал от Ардуино. Я думал, что этот сигнал заставит транзистор "открыться" и пропустить ток от кроны к которой эти диоды подключены. Но нет, светодиоды не горят почему то.
      Сама схема из светодиодов без транзистора рабочая.
      Вопрос: Что же я неправильно сделал? Первый раз имею дело с транзистором. 
    • Автор: Олег Таганов
      Всем добрый день. Дело такое - есть старый ноут - Lenovo 3000 N200
      Полетела мать. Хочу с неё вытащить всё ценное и эксплуатировать в работе с системным блоком.
      А именно:
      Кардридер

      Как его подпаять к usb шнуру и реально ли это?

      Так же есть плата под usb+микро+аудио
      Посоветуйте чёнить. Аудио+микро мне как то и не нужны , но вот обзавестись доп usb хабом я бы не отказался.
       


    • Автор: Alex_fish
      Здравствуйте.
      Захотел я посмотреть как на Arduino Uno (mega328P С кварцем на 16МГц) можно сделать простой генератор меандра, библиотечными digitalWrite() и delay() она начала привирать частоту гдето от 1-2кГц, решил написать на обычном Си.
      Взял таймер TIM1 с тактировкой от 16МГц с прерыванием по совпадению, и в прерывании обнулял счетчик и просто переключал ножку.
      interrupt [TIM1_COMPA] void timer1_compa_isr(void) { static unsigned char flag=0;//флаг лог. уровня пина TCNT1H=0x00;//обнуляем счетчик таймера TCNT1L=0x00; // Place your code here if (flag==0){ PORTB = 0x01;//лог 1 flag=1; } else { PORTB = 0x00;//лог 0 flag=0; } } Ожидал что работа с таймером и прерываниями отъест тактов 30-50, на отработку прерывания, заход и выход из него, один if и т.п. И будет у меня максимум килогерц 300 а дальше пойдет врать частоту.  Но был удивлен тем что такая система начала привирать частоту уже на 10кГц, где давала 9.7кГц, а на 20кГц уже показывала 19кГц. (проверял точность осцилом).
      Вот и вопрос неужели таймер с прерыванием настолько медленные ? или я что-то делаю не так ?
      Полный код на Си если нужно прикреплен.
       
      boroda.c