COM порт

Контрол чрез COM порта на програмата за компютърна периферия на VB.

Често в конференции на любителските радиостанции могат да чуят на въпроса: "Аз (искам да правя) някакво външно устройство и имате желание да го свържете към компютър чрез сериен порт, така че те някак успяват, но не знам как." COM порт е предпочитано за тези експерименти, тъй като тя е по-висока от LPT абсорбционния капацитет и следователно по-малко вероятно да изгори пристанището.

Ако сте инсталирали Visual Basic и някакви умения за програмиране на нея, най-прост, по мое мнение, е за употреба Track управление компонент (контрола) MSComm Control, която се причинява от Проект-> Components-> и отмятане на MSComm Control. След това трябва да се сложи този контрол върху формата и пишат програмен код за него.

Трудността се състои в това, че на рецепцията-предаването чрез COM порт изисква стриктно спазване на RS-232 протокол, а не за всички радиолюбители под властта на дизайна на контролера, който ще поддържа този протокол. В същото време, този контрол MSComm позволява четене и управление на отделните терминали COM порт и по този начин влияят директно на някои външни устройства без да се създаде временна RS-232 сериен протокол.

Като пример за такова външно устройство може да бъде намалена популярен програмист PonyProg (макар че това не е писано в VB, но принципът е един и същ). Ако внимателно да разгледаме картата си, можем да видим, че в някои случаи (например при програмирането 24hh чипове), основната информация сигнализира COM порт на Rx (2) и Tx (3) не се използват изобщо. Цялата комуникация минава през спомагателен води CTS (8), DSR (6), DTR (4), RTS (7) (въпреки че на някои места се използва трета заключение Tx, това също ще говорим).

За да прочетете състоянието на изхода, достатъчно за компютър входен порт да подаде униполарните положителни сигнали и да освободи конвертори ниво TTL-RS232. Всъщност, това не отговаря на стандарта RS-232, но повечето от пристанищата с такива големи нива на работа.

Така че, три игли от COM порт - CD, CTS, DSR могат да бъдат разпитани. Команда, която позволява да се разгледа състоянието на такава CTS продукция (8) изглежда така:

Ако MSComm1.CTSHolding = False След това (1)

Ако MSComm1.CTSHolding = True Тогава (2).

Така, че този отбор интервюирахме 0 или 1 се намира на пин CTS.

може да бъде получен DTR и RTS (+ 12V) или (-12V), и по този начин се запали LED превключвателя за включване или друг задвижващ механизъм - два изхода COM порт. Например, за да може изходните RTS, тази команда:

MSComm1.RTSEnable = False (3) извежда 7 + 12Volt крак.

MSComm1.RTSEnable = True (4) извежда 7 крак -12Volt.

Въз основа на тези команди (1) - (4) могат да бъдат подредени като обикновен обмен на данни с компютър, и доста сложни протоколи като I2C, SPI и др MisroWire Като пример, можете да видите DS1621 бр термометър. и как да използвате тези команди, Алберто Ricci организиран I2C протокол за комуникация с термометър DS1621 чип.

Фиг.1. Движеща сила за да се провери

Ако практиката не се мързеливи, за да се съберат на 10 минути с графиката на фигура 1 (може да бъде пряко свързан шарнирно закрепване на DB9 конектора), и стартирайте програмата Com_device. можете да видите как да реагира на бутоните за затваряне с програми и включва изключен светодиоди (LED бутон) с помощта на точно тези екипи, които споменах по-горе (в '' Enter ", докато не се обърне внимание).

Ако вашето устройство изисква импулс на сигнала, както и че е лесно да се получи. Очевидно е, че това ще трябва да се запознаят с времедиаграма RS-232 протокол (Фигура 2).

Фиг.2. Временни RS-232 диаграма

Както се вижда, има първи стартов бит, а след това битовете данни и след това да спре малко (имайте предвид, че това 0- + 12V, -12V е 1). Да предположим, че ние изпращаме стартов бит, последвано веднага от определен брой нули, например, в бита 0-1-2-3. Ние се получи такъв пулс

Фигура 3. пулса оформяне

Чрез промяна на броя на импулсите след началото, ние можем да промените продължителността на импулса (макар и с дължината на стъпалото на битова). За да направите това, пристанището трябва да изпрати един от следните номера: FF, FE, FC, F8, F0, E0, C0, 80, 00. И когато ширина FF пулс е минимален при 00- макс. Фигура 3 показва импулсен код - F0.

За компютъра издаден на COM порта на сигнала е необходимо само да подадете командата

MSComm1.Output = "символ, или низ" (5)

Тази команда се издава в пристанището на код ASCII характер. И как можем да изпратим до пристанището, например, броят на F0 (240 в десетична)? Това е най-простия начин:

MSComm1.Output = Chr (240) (6)

Това означава, че за първи път се конвертира броя 240 до известна характер (не знам как, можете да погледнете на масата за ASCII код) и този символ се изпраща към изходния порт.

По този начин ние можем да от компютъра, за да генератор 8-ниво PWM сигнал и контрол, например, скоростта на въртене на двигателя на DC вентилатор и т.н. След този сигнал е необходимо да се засили ток и без външно захранване, едва ли би искал да вземе за макс. ток, който може да издаде на COM порта нещо за 25mA. Това може да отнеме властта от доставката за захранване на компютъра. Може да имате повече и средно на PWM сигнал RC-верига или интегриране на усилвателя, това зависи от вашето устройство.

Сега е време да натиснете бутона "Enter", за да програма Com_device. Вие ще видите номера на поле за въвеждане. Ако въведете един от десетична chislel 255, 254, 252, 248, 240, 224, 192, 128, 0, тогава вие ще получите гладка пулс 3 (Tx) изход DB9. Ако не разполагате с един осцилоскоп, свържете волтмер между 5 (GND) и 3 (Tx) констатациите и да видим как се променя напрежението. I е такава връзка:

Както може да се види, картината е доста линейна.

Вижте как се променя сигнал при смяна на имоти Интервал таймер 2 таймер и се опитват да подредят MSComm1.Settings = "1200, N, 8,1" Скоростта на предаване на климата (бода rate- параметър в този ред = 1200).

Ако нивата на 8 ви липсват, можете да изпратите 2 последователни байта:

MSComm1.Output = Chr (240) Chr (255) (7)

Той ще има 16 ниво генератор. Използвайки това вече е възможно да се организира 4-битов DAC на, и ако това се допълва от външен за сравнение, чийто изход е анкетирани от командата (1), (2) едно от заключенията CD, CTS, DSR; и е възможно да се получи 4-битов ADC, например, последователното приближение.

Com_device.rar (5,2 Kb) - архив с изходния код на програмата, за да VB.

Схемата по-долу показва как да се контролира скоростта на вентилатора чрез PWM сигнал, генериран от Tx сигнал COM порт. Fan може да се използва от доставката за захранване на компютъра.

COM порт

Фигура 4. Веригата контрол на скоростта на вентилатора

Имайте предвид, че щифтове 2 и 9 на съединителя 3 DB комбинирани в него.

FunControl прилагането на програмата (Фигура 5) и кликнете върху бутона за избор. Можете да промените скоростта на вентилатора е дискретен.

COM порт

Фигура 5. Window фен програма за контрол на скоростта FunControl.

FunControl програма .exe файл е в Exe.rar архив.

Всичко е добре, но в повечето случаи г ва заключение като COM порт - DTR и RTS - това е достатъчно катастрофални. Извън тази ситуация е добре познат и много прост. Той е много често се използва в разработчиците на микро-устройства с дефицит от констатациите (както, например, дори и в моя проект :) Цифров термометър). Същността му се състои в използването на регистри на смени. Диаграмата (фиг. 6) IC1- широко 74NS595 регистър за смяна. Tranzistory- добре, като KT3102, R1..R3-10kOm, R20. R22-1kOm, R12. R19 -100 Ом.

Сигналите от COM порт на компютъра чрез DB9 конектор се доставят на конюгиране верига (Q1. Q3 транзистори). Вместо това, можете да използвате всеки MAH232.

RTC служи като входни серийни данни (сериен входни данни), Tx - като смяна на сигнала (смяна регистър часовник вход), DTR - като сигнал за запис (фиксатор) (съхранение регистър часовник вход) - в скоби определи по фиш. Съветвам ви да изтеглите.

COM порт

Фиг. 6. Увеличаване на броя на изходните линии, като се използва смяна регистър 74HC595

COM порт

Фиг. 7 програма .Okno

Чрез натискане на бутона 0. 7 изберете комбинация и натиснете "Enter" бутон. Трябва да светне съответният индикатор. "Изчистване" бутона изгасва всички светодиоди. Светодиоди могат да се използват вместо релета или други механизми (разбира се, по отношение на тяхната носимоспособност).

Броят на изходните линии може да се увеличи капацитета на регистри за смяна, при което щифтът 9 трябва да бъде свързан към входа на следващия 14 (както в схемата по-долу).

Разбира се губи COM порт ЗПМ на по обменния курс, но често високи скорости и не се изискват. Но, за да не оставам с впечатлението, че това е твърде много, "спирачките" пристанище, погледнете как да се показва индикатор 4-цифрен LED- системната дата работно време. И с динамичен indikatsiey- и без микроконтролери! В този регенерация честота е около 70 Hz и трептенето не се вижда на всички.

COM порт

Фиг. Схема 8, датата време до 4 цифри LED индикатор

IC1, IC3 - смяна регистрира 74 HC 595, indikatory- от стария AT -korpusov компютри.

На IC1 номера регистър изходни кодове, включени в IC 3- позиция на символ.

COM порт

Фиг. 9 програма .Okno VB_clock и breadboard

Когато кликнете knopkok "Време" и "Дата" се показва съответно системното време и дата.

VBclock.rar - Търсейки файл VBclock програма.

Следният пример илюстрира способността за извеждане на символи на LED матрица 7x7 програма RunString на. Входните вериги са идентични с предишната схема.

COM порт

С натискането на "символ", можете да видите един знак, бутона "Line" показва бягане линия на произволна дължина, можете да въведете в вход прозорец линия. Всички писма, които сте въвели текст, ще бъде превърнат в главни букви. В RunString прозорец (Фигура 11) е област от показатели 7x7 мнемонични които дублират изход към LED масив.

COM порт
COM порт

RunString програма Търсейки файл, съхраняван в архива Exe.rar

В следната програма показва LED матрица филм (схема остава същата, Фигура 10), които програмирани анимирани снимки с размери 7x7 пиксела.

Кликвайки върху кръговете, нарисувай-то ще бъде застрелян. Запазете го, като кликнете върху една от бутона ">" или "|>" (фигура 12). Понякога е по-удобно да се направи снимка "от нулата", а понякога и следващата картина - само една малка промяна в предишния. Бутонът ">" запазва предишния кадър, и продължава да почистите следното (всички светодиоди са изключени), бутон "|>" съхранява и предишния кадър, но следващият ще бъде повторение на предходната рамка, която можете да промените по желание. бутона "<» возвращает предыдущий кадр.

COM порт

В края на краищата от кадрите са създадени, щракнете върху "Старт" - всички ваши снимки ще бъдат постоянно възпроизвеждащи се в прозореца на програмата, а от LED областта. И филмът ще преминете към рамката показва в прозорец "кадър номер». В "Tkadra, съм", изберете време за показване на един кадър, в милисекунди. Максималният брой изображения е ограничен до 1000 програма.

Филмова програма .exe файл е в Exe.rar архив.