Spisu treści:
- Krok 1: Port joysticka
- Krok 2: Port joysticka w VB
- Krok 3: Zaimplementuj go za pomocą portu równoległego w systemie DOS
- Krok 4: Podłączanie obwodu do LPT
- Krok 5: Użyj go
Wideo: Prosty i tani konwerter analogowo-cyfrowy: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:34
Z czasów, gdy ADC były drogie i rzadkie, pojawiło się rozwiązanie sprzętowo-programowe do akwizycji danych dla komputerów PC. Oparta na starym porcie joysticka kompatybilnego z IBM, technika wyzwalania monostabilnego multiwibratora z przetwornikiem rezystancyjnym (termistor, fotokomórka, tensometr, itp.), a następnie liczenie, ile cykli przechodzi, zanim wyjście multiwibratora wzrośnie, jest dość prosty do wdrożenia na większości platform PC i w większości języków. Wyświetlane są przykładowe pliki VisualBasic i Qbasic.
Krok 1: Port joysticka
Przez lata wiele domowych komputerów PC kompatybilnych z IBM było wyposażonych w port joysticka, który miał oś X, oś Y, piny sygnałowe przycisków A i B. Małe złącze DB-15 jest dostępne pod adresem 200h i 201h. Sam joystick to tylko dwa potencjometry i dwa przyciski. Wewnątrz płyty głównej komputera znajdowały się dwa monostabilne multiwibratory z możliwością ponownego wyzwalania (w skrócie RMM) ze stałymi kondensatorami i pinami IN/OUT. Stała czasowa RC była ustalana za pomocą potencjometrów i kondensatorów. Aby rozpocząć konwersję sygnału, należy wykonać ZAPIS do portu o adresie 200h, a następnie rozpocząć odliczanie, aż uzyskasz nieco WYSOKIE, wykonując READ do portu o adresie 200h. Można to zaimplementować w dowolnym języku (podstawowy, pascal, c).
Krok 2: Port joysticka w VB
Oto przykładowy kod, którego użyłem do przetestowania mojego joysticka na złomowisku: Private Sub Timer1_Timer() Dim V, H As Integer Out &H201, &HFF For H = 1 do 3000 If (Inp(&H201) And &H1) / &H1 = 0 Następnie Exit For Następny H Horizontal. Text = H Out &H201, &HFF For V = 1 do 3000 If (Inp(&H201) and &H2) / &H2 = 0 Następnie wyjdź na następny V Vertical. Text = V If (Inp(&H201) and &H10) / &H10 = 0 Wtedy Shape1. FillColor = &HFF If (Wejście(&H201) I &H20) / &H10 = 0 Wtedy Shape2. FillColor = &HFF If (Wejście(&H201) and &H10) / &H10 = 1 Wtedy Kształt1. FillColor = &HC0C0C0 If (Wejście (&H201) I &H20) / &H20 = 1 Then Shape2. FillColor = &HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub Program działa tylko wtedy, gdy masz prawdziwy joystick podłączony do komputera. Pola tekstu poziomego i pionowego pokażą wartość związaną z ruchami twojego drążka w osi X i Y. Również kwadrat będzie się poruszał w większym polu, aby reprezentować twoje ruchy. Naciśnięcie przycisków A i B spowoduje zmianę odczytu szarych kółek. Przykładowy skompilowany plik EXE, kod źródłowy i biblioteka INPOUT32. DLL znajdują się w pliku. RAR.
Krok 3: Zaimplementuj go za pomocą portu równoległego w systemie DOS
74 LS 123 jest tym, czego użyłem, aby uzyskać ten sam system, co port joysticka. Ma dwa RMM. W pliku PDF można zobaczyć arkusz danych i prosty obwód do podłączenia do portu równoległego. Jestem fanem Qbasic (ponieważ jest on powszechnie dostępny) więc kod jest w nim napisany. Procedura jest taka sama jak w próbce VB: LPTdata = &H378 LPTstatus = LPTdata + 1: LPTcontrol = LPTdata + 2YMAXX = 500SCREEN 2LINE (9, 1)-(630, 170),, B, &H3333VIEW (10, 2)- (629, 169)OKNO (0, YMAXX)-(620, 0)MAXX = 620DIM D(MAXX)WHILE INKEY$ = "" OUT LPTsterowanie, &H1 OUT LPTsterowanie, &H0 FOR Y = 1 TO YMAXX IF (INP(stan LPT) AND &H10) / &H10 = 1 NASTĘPNIE WYJDŹ DO NASTĘPNEGO Y ZLOKALIZUJ 23, 1 WYDRUKUJ ZA POMOCĄ "####"; Y LINIA (0, 0)-(MAXX, YMAXX), 0, BF FOR I = 1 TO MAXX LINE (I, D(I - 1))-(I, D(I)) D(I - 1) = D(I) NEXT ID(MAXX) = YWEND Jeden pin wyjściowy służy do wyzwalania MMR, a jeden pin wejściowy do odczytu jego wyjścia.
Krok 4: Podłączanie obwodu do LPT
System jest zaimplementowany w połowie sprzętowo iw połowie programowo. Konwersja zmiennej rezystancji na opóźnienie czasowe jest następnie wykorzystywana do zliczania impulsów i ta liczba jest naszą pożądaną wartością. Plik qbasic wykreśli wykres, aby wyświetlić sygnał, a następnie przewinie go w prawo.
Krok 5: Użyj go
Jest to powszechny układ scalony, ale można również użyć innych monostabilnych. Wiele osób mieszkających w miejscach, w których trudno jest znaleźć ADC, może chcieć wykorzystać ten obwód jako projekt szkolny do wykreślania temperatury lub innych rzeczy, o ile możesz zmienić opóźnienie MMR, gdy zrobi to czujnik.
Zalecana:
Prosty konwerter DC-DC Boost wykorzystujący 555: 4 kroki
Prosty konwerter DC-DC Boost wykorzystujący 555: Często w obwodzie przydatne jest posiadanie wyższych napięć. Aby zapewnić szyny +ve i -ve dla wzmacniacza operacyjnego, do napędzania brzęczyków, a nawet przekaźnika bez potrzeby dodatkowego akumulatora.Jest to prosty konwerter 5V na 12V DC zbudowany przy użyciu timera 555 i
Stwórz własny, prosty i tani przenośny głośnik Bluetooth: 5 kroków (ze zdjęciami)
Stwórz własny, prosty i tani przenośny głośnik Bluetooth: W tym projekcie pokażę, jak zbudować prosty przenośny głośnik Bluetooth, który może odtwarzać swoje melodie do 30 godzin bez przerwy. Większość zużytych komponentów można znaleźć za jedyne 22 $, co sprawia, że jest to dość niskobudżetowy projekt. Miejmy
Prosty konwerter logiczny DIY dla urządzeń 3.3V: 4 kroki
Prosty konwerter logiki DIY dla urządzeń 3,3 V: W tym poście pokażę, jak możesz zrobić własny konwerter logiczny 5 V na 3,3 V do podłączenia czujników 5 V do nowych płyt Arduino i Raspberry Pi. Dlaczego potrzebujemy konwertera poziomów logicznych IC ?Większość z Was uwielbia bawić się Arduino i Raspberry Pi podczas
Mini tani konwerter AC na DC: 7 kroków
Mini tani konwerter AC na Dc: ten jest konwerterem AC na DC. Kosztował mnie tylko kilka dolarów. tylko koszt czterech diod. Jest bardzo łatwy i nie ma problemów z lutowaniem. więc chcę się tym z wami podzielić. więc zaczynajmy
Samouczek konwersji analogowo-cyfrowej: 7 kroków
Samouczek konwersji analogowo-cyfrowej: Hej, jestem asystentem dydaktycznym na wprowadzenie do klasy inżynierskiej na kierunkach inżynierii biomedycznej na Vanderbilt University w tym semestrze. Stworzyłem ten film, aby wyjaśnić im konwersję analogowo-cyfrową, ponieważ czas się skończył podczas c