Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > COM порт и различные и напряхения


Автор: Alek0 30.5.2007, 13:15
Не подскажите как из Delphi изменить напряжение подаваемое на COM порт. Очень надо!!!!   smile 
В соседних темах маленько не о том :(
Надо что бы в определенный момент времени подавалось определенное напряженего.

Автор: _hunter 30.5.2007, 13:41
делай небольшой ЦАП и вешай его на порт...

Автор: drkot 30.5.2007, 15:56
Цитата(Alek0 @  30.5.2007,  13:15 Найти цитируемый пост)
изменить напряжение подаваемое на COM порт

 smile читай стандарт. и если найдеш указание на изменяемое напряжение с меня пиво.

Автор: Alek0 30.5.2007, 17:10
Ага, чур пиво по мылу высылай  smile 

По теме: хотим сделать такую феню, спидометр для компа  smile 
Подключать можно через COM или USB, показывать будет загруженность проца, как в висте.

Естественно чем больше напряжение, а это будет от 3 до 13 (ибо больше нельзя), тем большую скорость(загруженность) показывает спидометр.

Собственно, верю что все возможно, в том числе и изменение напряжения на портах, поэтому жду может есть самородки, которые делали такие вот вещи. smile 

Автор: dumb 30.5.2007, 17:40
Alek0, какие самородки?! компьютер - не аналоговый прибор! _hunter указал тебе направление.

Автор: Alabay 30.5.2007, 17:43
Ай... нимогу.. представляю себе аналоговый компьтер... =)))
Нужно паять. По моему MAX232 юзать надо.

Автор: dumb 30.5.2007, 18:13
воткни свой спидометр в линейный выход, проигрывай в вечном цикле звук постоянной частоты, и меняй громкость... smile

Автор: ivan219 30.5.2007, 20:06
Тут только церез ЦАП, идея неплохая но с паяльником посидеть придётся smile хотя смотря какой спидометр можно и напрямую импульсы посылать но всё равно MAX232 нужна для развязки.

Автор: Alek0 31.5.2007, 09:13
Жаль, но будем работать smile  Всем спасибо.

Автор: maxim1000 31.5.2007, 11:59
мысль появилась:
выход COM-порта - ступенчатая функция, принимающая два значения
если сгладить эту функцию, мы получим некоторое усреднённое значение
это значение можно коонтролировать через соотношение нулей и единиц в потоке данных

можно покопать в сторону http://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%80%D0%BE%D1%82%D0%BD%D0%BE-%D0%B8%D0%BC%D0%BF%D1%83%D0%BB%D1%8C%D1%81%D0%BD%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F...

Автор: drkot 31.5.2007, 13:09
Цитата(Alabay @  30.5.2007,  17:43 Найти цитируемый пост)
По моему MAX232 юзать надо.

И что даст ее юзание?

Цитата(maxim1000 @  31.5.2007,  11:59 Найти цитируемый пост)
выход COM-порта - ступенчатая функция, принимающая два значения

мысль хорошая, но есть но. интерфейс устроен так, что даже при записи последовательности из одних нулей в порт на шине шине соотношение нулей и единиц будет практически 50 на 50. используется кодирование на уровне железа.

ШИМ - разве что параллельным портом можно организовать. Тока загрузка проца будет 100% при этом.

ИМХО самый нормальный способ решения это использование микроконтроллера.

Автор: maxim1000 31.5.2007, 14:28
Цитата(drkot @  31.5.2007,  13:09 Найти цитируемый пост)
соотношение нулей и единиц будет практически 50 на 50

и что тут такого?
значит будет диапазон 0.5 - 1 от максимального напряжения, что в общем-то не так уж и страшно, если я не ошибаюсь...

Автор: drkot 31.5.2007, 17:25
maxim1000, наверно я не правильно выразился.
шим - это ШИРОТНО импульсная модуляция. предполагает различную сплошность (продолжительность) импульсов и ям. Последовательный протокол предполагает равномерность импульсов, что уже затрудняет регулировку. В последовательных интерфейсах применяется помехоустойчивое кодирование + контрольные суммы и пр. Таким образом записывая в порт (com) любую предопределенную битовую последовательность на линиях Rx Tx получите совсем другую бутовую последовательность  smile. В идеале 50% единиц и 50% нулей (с небольшой дисперсией). Это и обеспечивает надежность передачи данных.

Автор: maxim1000 31.5.2007, 23:21
всё гораздо проще:
изначально на линии 1
когда мы посылаем байт, он сначала падает на 1 квант времени в 0 - стартовый бит
потом в 8 квантах времени передаются 8 битов как есть (ну или инвертированные, уже не помню)
потом - возвращается в 1 на 1 квант времени - стоповый бит
есть ещё дополнительные фишки (чётность, дополнительные стоповые биты), но их можно отключить
таким образом получаем:
минимальная часть 1 - 10%
максимальная - 90%
если m - количество бит в передаваемом числе, то содержание 1-ц в выходе будет (m+1)/10
это нам даёт 9 отсчётов, если все байты одинаковые
если надо точнее, то можно делать повторяющиеся последовательности байтов...

Автор: pepper 14.10.2007, 10:05
COM и LPT 

Автор: ivan219 17.10.2007, 11:27
Можно на LPT порте сделать примитивный ЦАП из 15 резисторов диапазон от 0 до 5В (+- погрешности).

Код

1 >-R-|
     R/2
2 >-R-|
     R/2
3 >-R-|
     R/2
4 >-R-|
     R/2
5 >-R-|
     R/2
6 >-R-|
     R/2
7 >-R-|
     R/2
8 >-R-|---> Выход

Автор: Virtuals 17.10.2007, 17:18
можно! smile 
а в чем вопрос

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)