Страница 1 из 1

Дискретный вход или кнопка через USB

Добавлено: Чт апр 30, 2015 07:59:18
Studentik
Добрый день! Подскажите, мне нужно купить/спаять такой девайс, который с одной стороны вставляется в usb порт, с другой стороны из него торчат два проводочка, и чтобы я мог замыкая эти проводочки(или подавая на них напряжение), изменять значение переменной в моей программе (delphi) с 0 на 1. Насколько я понимаю, это не трудно, в интернете нашел много по теме, но такие простые задачки там никто не рассматривал. Вопрос, как сделать такую штуку максимально просто!? Можно ли это сделать без применения микроконтроллеров? Заранее спасибо!

Re: Дискретный вход или кнопка через USB

Добавлено: Чт апр 30, 2015 11:09:42
m.ix
как минимум нужен АЦП и МК
замыкая проводочки, спалите свой USB порт как минимум, как максимум мост.

Re: Дискретный вход или кнопка через USB

Добавлено: Чт апр 30, 2015 12:06:42
Upgrader
Да ладно, всё просто.
Купить можно дата кабель для старых телефонов типа сименса. Спаять самому - на микросхеме FT232 (см.гугл). Смысл один - они превращают USB в виртуальный COM порт и UART (в гугл). Как с этим работать - от элементарного замыкания входа и выхода и отслеживания эхо (да, так можно!), до подачи на компьютер сигнала с МК (так можно хоть 100 кнопок сделать).

Короче, вот вам максимально простой вариант. Берете дата кабель телефона, находите по распиновке там RX и TX выводы, и тупо замыкайте их. А в своей программе на Delphi учитесь посылать и принимать команды по COM порту - это довольно просто делается, примеры должны быть. Отправляете что-то, если оно возвращается - значит замкнуто, не возвращается - разомкнуто.

Теоретически, если подумать... можно поизвращаться над USB портом... подключив в него резистор. Комп будет думать что подключено неизвестное неопознанное оборудование. Отследить это подключение каким-то образом... Но это по моему извращение, хотя может оказаться довольно простой вариант.

Re: Дискретный вход или кнопка через USB

Добавлено: Чт апр 30, 2015 13:06:17
Мурик
Studentik писал(а):Подскажите, мне нужно купить/спаять такой девайс, который с одной стороны вставляется в usb порт, с другой стороны из него торчат два проводочка
Спаять можно по этой схеме. http://purebasic.mybb.ru/viewtopic.php?id=211
Там есть кнопка SB1. Вместо нее подключается эти "два проводочка".

Re: Дискретный вход или кнопка через USB

Добавлено: Чт апр 30, 2015 14:03:34
Studentik
Спасибо за ответы, буду изучать микроконтроллеры :)

Re: Дискретный вход или кнопка через USB

Добавлено: Чт апр 30, 2015 20:40:08
kalobyte
возьми плату от усб клавиатуры :idea:

Re: Дискретный вход или кнопка через USB

Добавлено: Пт май 01, 2015 05:57:45
misyachniy
Если кнопка одна, то можео обойтись переходником USB-COM.
Кнопка цепляется между RX-TX выводами.
В Делфи посылаете байт в порт.
Если посланый байт вернулся обратно - кнопка нажата.

Re: Дискретный вход или кнопка через USB

Добавлено: Пн май 04, 2015 15:12:52
Eprst_Lalaikin
У COM-порта кроме входа данных (TXD) есть еще целых 4 как раз "дискретных" входа: CTS, DSR, DCD, RI, а также 2 "дискретных" выхода RTS, DTR. Не все они могут быть реализованы в USB->COM переходнике, но CTS и RTS по идее должны. Например, в мануале от программатора Pony Prog, который использует COM-порт именно как двоичный ввод-вывод говорится, что "через адаптеры USB->COM может не работать или работать медленно". Лично мне пока не приходилось пользоваться переходничками для этого, только обычным COM-портом.
Я уже давненько не программил вантуз на эту тему, но в Win API это вроде выходит как то так:
GetCommModemStatus(HANDLE hPort, LPWORD lpstate) считывает в *lpstate байт состояния тех линий.
Можно обрабатывать изменение уровней сигналов как события с помощью:
SetCommMask
WaitCommEvent
В последний раз когда была подобная задачка я не заморачивался на Win API, а использовал библиотеку PySerial, т. к. все остальное у меня было на питоне.
Также есть ведь еще переходнички USB->LPT, а это где то 11 TTL линий ввода. Не могу сказать сходу как программить LPT, знаю только что для питона есть PyParallel от тех же авторов.

Re: Дискретный вход или кнопка через USB

Добавлено: Вт май 05, 2015 12:16:09
YS
Можно использовать FT232R в bitbang-режиме. Там в документации все хорошо описано и даже пример есть.