Съдържание:

Прост и евтин аналогово -цифров конвертор: 5 стъпки
Прост и евтин аналогово -цифров конвертор: 5 стъпки

Видео: Прост и евтин аналогово -цифров конвертор: 5 стъпки

Видео: Прост и евтин аналогово -цифров конвертор: 5 стъпки
Видео: 🔥 Лучший в классе? Японская надёжность непоколебима? Чем на самом деле может огорчить Honda Civic 8? 2024, Ноември
Anonim
Прост и евтин аналогово -цифров конвертор
Прост и евтин аналогово -цифров конвертор
Прост и евтин аналогово -цифров конвертор
Прост и евтин аналогово -цифров конвертор
Прост и евтин аналогово -цифров конвертор
Прост и евтин аналогово -цифров конвертор
Прост и евтин аналогово -цифров конвертор
Прост и евтин аналогово -цифров конвертор

От времето, когато ADC бяха скъпи и редки, идва хардуерно-софтуерно решение за събиране на данни за персонални компютри. Въз основа на стария джойстиков порт от IBM-съвместимата техника за задействане на моностабилен мултивибратор резистивен преобразувател (термистор, фотоклетка, тензодатчик и т.н.) и след това броенето на колко цикъла преминава, преди изходът на мултивибратора да е висок, е доста лесен за изпълнение на повечето компютърни платформи и на повечето езици. Показват се примерни файлове на VisualBasic и Qbasic.

Стъпка 1: Портът на джойстика

Портът на джойстика
Портът на джойстика

В продължение на години много домашни компютри, съвместими с IBM, идваха с джойстик порт, който имаше сигнални щифтове по ос X, ос Y, бутони A & B. Малкият конектор DB-15 може да бъде достъпен на адреси 200h & 201h. Самият джойстик беше само два потенциометра и два бутона. Вътре в дънната платка на компютъра бяха разположени два рестартируеми моностабилни мултивибратора (накратко RMM) с фиксирани кондензатори и входове/изходи. Временната константа на RC се задава от потенциометрите и кондензаторите. За да започнете преобразуването на сигнала, трябва да направите WRITE към адрес на порта 200h и след това да започнете да броите, докато не получите малко ВИСОК, като направите READ към адрес на порта 200h. Това може да се приложи на всеки език (основен, паскал, в).

Стъпка 2: Порт за джойстик във VB

Джойстик порт във VB
Джойстик порт във VB

Това е примерен код, който използвах, за да тествам джойстика си за боклук: Private Sub Timer1_Timer () Dim V, H As Integer Out & H201, & HFF For H = 1 To 3000 If (Inp (& H201) And & H1) / & H1 = 0 Тогава Exit For Следващ H хоризонтален. Текст = H Out & H201, & HFF За V = 1 до 3000 If (Inp (& H201) And & H2) / & H2 = 0 След това излезте за следващ V вертикален. Текст = V If (Inp (& H201) And & H10) / & H10 = 0 Тогава Shape1. FillColor = & HFF If (Inp (& H201) And & H20) / & H10 = 0 Тогава Shape2. FillColor = & HFF If (Inp (& H201) And & H10) / & H10 = 1 Тогава Shape1. FillColor = & HC0C0C0 If (Inp (& H201) И & H20) / & H20 = 1 Тогава Shape2. FillColor = & HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub Програмата работи само ако към вашия компютър е свързан истински джойстик. Хоризонталните и вертикалните текстови полета ще показват стойност, свързана с движенията на X и Y на вашата пръчка. Също така квадрат ще се движи в рамките на по -голяма кутия, за да представлява вашите движения. Натискането на бутоните A и B ще прочете сивите кръгове. Примерният компилиран EXE файл, изходният код и библиотеката INPOUT32. DLL са във. RAR файла.

Стъпка 3: Приложете го с помощта на паралелния порт под DOS

Приложете го с помощта на паралелния порт под DOS
Приложете го с помощта на паралелния порт под DOS

74 LS 123 е това, което използвах, за да получа същата система като порта за джойстика. Има два RMM. В PDF файла можете да видите листа с данни и проста схема за прикачване към вашия паралелен порт. Аз съм фен на Qbasic (тъй като е широкодостъпен), така че кодът е написан в него. Процедурата е същата като във VB извадката: LPTdata = & H378 LPTstatus = LPTdata + 1: LPTcontrol = LPTdata + 2YMAXX = 500SCREEN 2LINE (9, 1)-(630, 170),, B, & H3333VIEW (10, 2)- (629, 169) WINDOW (0, YMAXX)-(620, 0) MAXX = 620DIM D (MAXX) WHILE INKEY $ = "" OUT LPTcontrol, & H1 OUT LPTcontrol, & H0 FOR Y = 1 TO YMAXX IF (INP (LPTstatus) И & H10) / & H10 = 1 ТОГАВА ИЗХОД ЗА СЛЕДВАЩИЯ Y ЛОКАТ 23, 1 ПЕЧАТ, ИЗПОЛЗВАЩИ "####"; Y LINE (0, 0) - (MAXX, YMAXX), 0, BF FOR I = 1 TO MAXX LINE (I, D (I - 1)) - (I, D (I)) D (I - 1) = D (I) СЛЕДВАЩ ИД (MAXX) = YWEND Един изходен щифт се използва за задействане на MMR и един входен щифт за четене на изхода от него.

Стъпка 4: Прикрепване на Ciruit към LPT

Прикрепване на Ciruit към LPT
Прикрепване на Ciruit към LPT
Прикрепване на Ciruit към LPT
Прикрепване на Ciruit към LPT
Прикрепване на Ciruit към LPT
Прикрепване на Ciruit към LPT

Системата е реализирана като наполовина хардуер и наполовина софтуер. След това преобразуването на променливо съпротивление във времево закъснение се използва за преброяване на импулсите и това броене е нашата желана стойност. Файлът qbasic ще начертае, за да екранира сигнала и след това да го превърти надясно.

Стъпка 5: Използвайте го

Това е обща интегрална схема, но могат да се използват и други моностабили. Много хора, които живеят на места, където ADC са трудни за намиране, биха искали да използват тази схема като училищен проект за измерване на температурата или други неща, стига да можете да накарате MMR да промени забавянето си, когато сензорът ви го направи.

Препоръчано: