RADYO ELEKTRONİK VE ELEKTRİK MÜHENDİSLİĞİ ANSİKLOPEDİSİ COM bağlantı noktasıyla ADC işlemi, basit bir veri toplama sistemi. Radyo elektroniği ve elektrik mühendisliği ansiklopedisi Radyo elektroniği ve elektrik mühendisliği ansiklopedisi / Bilgisayarlar Bu makale esas olarak yeni başlayanlara yöneliktir. Bir veri toplama sistemi oluşturma, analog sinyalleri bir bilgisayara girme, bunları işleme vb. konusunda kendilerini denemeye karar verenler için. Bu, bu makalede tartışılacak ve her şeyi kendimiz yapmaya çalışacağız. Genel olarak internette ve literatürde bu konuyla ilgili oldukça fazla bilgi var... Özellikle Visual Basic dilini kullanıyorsanız. Bu nedenle bu boşluğu en azından kısmen doldurmaya çalışacağım. Öyleyse başlayalım… Amacınız ne olursa olsun, öncelikle gerçek analogdan dijitale dönüştürücüyü (ADC) satın almanız gerekir. Ayrıca bilgisayarınıza Visual Basic 6.0 geliştirme ortamını yükleyin. Ayrıca bu geliştirme ortamında kolayca gezinebilmeniz gerekir... çünkü... Makale, okuyucunun Visual Basic'te en azından temel programlama bilgisine sahip olmasını sağlamak için tasarlanmıştır. Ayrıca literatürü okumanızı da tavsiye ederim [1], [3]. ADC olarak TLC549IP'yi satın almanızı öneririm. Bu, basit bir iletişim protokolüne sahip 8 bitlik bir seri ADC'dir. Bu makalede tartışılacaktır. Elbette devrede ve kodda uygun değişikliklerle diğer ADC'leri de kullanabilirsiniz. Bununla ilgili daha fazla bilgiyi [1]'de okuyabilirsiniz. ADC'yi bulduktan sonra veri toplama sistemimizin donanımını yani Şekil 1'de gösterilen devreyi birleştirmeniz gerekir. XNUMX. Şema küçük değişikliklerle [1]'den ödünç alınmıştır. Diyotlar VD1, VD2, VD6 - KD521, stabilizasyon voltajı 3...5 V için herhangi bir zener diyot. 78L05 yerine KREN5A'yı kullanabilirsiniz. %1 toleranslı R2, R1 dirençleri veya en yakın direnç değerine sahip birkaç direnç arasından seçim. Ölçümlerin doğruluğu bunlara bağlı olacaktır. Direnç R3 tercihen çok turludur. Ayar: Panele güç vererek DA1 stabilizatörün Out pinindeki voltajı ölçüyoruz. Ortaya çıkan voltaj değerini virgülden sonra 3 basamakla yazıyoruz, daha sonra ihtiyacımız olacak. DD1 mikro devresinin pin 1'inde, R3 direncini kullanarak voltajı, Çıkış pininde ölçülen dengeleyicinin tam yarısına eşitledik. Şimdi asıl yazılım kısmına geçelim. Genel olarak konuşursak, ilk başta RS-232, I2C, Micro Ware vb. iletişim arayüzlerini kullanın. Uygunsuz olduğunu düşünüyorum çünkü Program kodundaki ufak bir komplikasyonla donanım ciddi anlamda daha karmaşık hale gelebilir. Bu nedenle “veri sayfasından” ADC'ye alınan en basit değişim protokolünü kullanacağız. Yani, basit uygulaması. Elbette böyle bir protokolle yüksek hıza ulaşamazsınız; bu durumda sınırlamalar Visual Basic'in kendisi tarafından uygulanır, ancak ilk sonuçların minimum zaman ve çabayla elde edilmesinin yanı sıra nispeten yavaş ölçüm yapılması için oldukça uygundur. değişen süreçler. TLC549IP ADC'nin iletişim protokolü Şekil 2'de gösterilmektedir. XNUMX. Tek durum sırasında gerçek dönüşüm, A/D dönüştürücünün CS (yonga seçimi) pininde gerçekleşir. Veri çıkışı, her darbe için bir bit olmak üzere bir saat darbesinin ortaya çıkmasıyla düşük CS seviyesinde başlar. 8 bitlik bir kod üretmek için 8 saat darbesi gereklidir. Bundan sonra CS tek bir duruma aktarılabilir ve aşağıdaki dönüşüm gerçekleştirilebilir. ADC'nin çalışmasıyla ilgili daha fazla ayrıntıyı [1]'de bulabilirsiniz. Bütün bunlardan, gerekli darbe dizilerini doğru zamanlarda üretecek ve bundan sonra yalnızca verileri alabileceğimiz bir sürücü programı yazmanın gerekli olduğu sonucuna varabiliriz. Visual Basic geliştirme ortamını başlatın ve standart bir EXE projesi oluşturun. MSComm Denetimini ekleyin. Bunu bileşen paneline aşağıdaki şekilde ekleyebilirsiniz: Proje-->Bileşenler-->listeden seçMicrosoft İletişim Kontrol 6.0. 2 etiket ve 2 Zamanlayıcıyla birlikte forma yerleştirin. Adları varsayılan olarak bırakın. Artık basit bir voltmetre için kod yazmaya başlayabilirsiniz. değişkenleri ayarlayalım: Dim b1, b2, b3, b4, b5, b6, b7, b8, sum, Ud Tekli Olarak Aşağıdaki kodu form yükleme prosedürüne yerleştirin: Özel Sub Form_Load () MSComm1.DTREnable = Gerçek 'başlangıç değeri - yüksek CS düzeyi Timer1.Interval = 100' zamanlayıcı aralığı 1ms Timer2.Interval = 1' zamanlayıcı aralığı 100ms MSComm1.Settings = "1200,N,8,1" ' veri aktarım ayarları MSComm1.CommPort = 1 ' COM bağlantı noktası numarası MSComm1.PortOpen = True ' açık com bağlantı noktası End Sub prosedürde Timer1 kodu koydu: Özel Alt Zamanlayıcı1_Timer() MSComm1.DTREnable = False 'Düşük CS oluştur Label2.Caption = "" 'ilk gecikme için çöp MSComm1.RTSEnable = Gerçek '1. saat darbe saati yüksek MSComm1.CDHolding = Doğruysa Sonra b1 = 1 Aksi takdirde b1 = 0 'CD girişinde (ADC çıkışı) bir veya sıfır değeri yoklayın MSComm1.RTSEnable = False '1. saat darbe saati düşük MSComm1.RTSEnable = Doğru MSComm1.CDHolding = Doğruysa O halde b2 = 1 Değilse b2 = 0 MSComm1.RTSEnable = Yanlış MSComm1.RTSEnable = Doğru MSComm1.CDHolding = Doğruysa O halde b3 = 1 Değilse b3 = 0 MSComm1.RTSEnable = Yanlış MSComm1.RTSEnable = Doğru MSComm1.CDHolding = Doğruysa O halde b4 = 1 Değilse b4 = 0 MSComm1.RTSEnable = Yanlış MSComm1.RTSEnable = Doğru MSComm1.CDHolding = Doğruysa O halde b5 = 1 Değilse b5 = 0 MSComm1.RTSEnable = Yanlış MSComm1.RTSEnable = Doğru MSComm1.CDHolding = Doğruysa O halde b6 = 1 Değilse b6 = 0 MSComm1.RTSEnable = Yanlış MSComm1.RTSEnable = Doğru MSComm1.CDHolding = Doğruysa O halde b7 = 1 Değilse b7 = 0 MSComm1.RTSEnable = Yanlış MSComm1.RTSEnable = Doğru MSComm1.CDHolding = Doğruysa O halde b8 = 1 Değilse b8 = 0 MSComm1.DTREnable = True 'Yüksek CS oluştur MSComm1.RTSEnable = False '8. saat darbe saati düşük 'genişletme formülünü kullanarak bitleri ondalık formata dönüştürün toplam = (b1 * 2^7) + (b2 * 2^6) + (b3 * 2^5) + (b4 * 2^4) + (b5 * 2^3) + (b6 * 2^2) + (b7 * 2^1) + (b8 * 2^0) Ud = Format(sum * 5.083 / 255, "##0.000") 'orantılı değeri hesapla Label1.Caption = CStr(Ud) & "Volt" 'sonuç değerini görüntüler End Sub Timer1'deki kod gerçek sürücüdür. Periyodik olarak tekrarlanarak saat darbeleri üretir ve veri bitlerini alır. Ud, ADC girişindeki voltajdır; 10, 12 bit ADC kullanıyorsanız, 225 sayısı sırasıyla 1024, 4096 ile değiştirilecektir. 10, 12 bit ADC'ler için eksik bitleri koda eklemeniz gerekir. , "veri sayfaları" tarafından yönlendirilir. 5.083 değeri stabilizatörün Out çıkışında aldığım voltaj değeridir. Değerinizi buraya girin. Panele güç sağlamak için ayrı bir kaynak kullanabilir veya doğrudan COM bağlantı noktasından çalıştırabilirsiniz. Bunu yapmak için Timer2 prosedürüne aşağıdaki kodu yerleştiriyoruz: Özel Alt Zamanlayıcı2_Timer() MSComm1.Output = Chr(0) & Chr(0) 'ADC kartına güç sağlamak için TX pininde (3) darbeler oluşturur End Sub COM bağlantı noktasının aşırı yüklenemeyeceği unutulmamalıdır... güvenebileceğiniz maksimum değer 20 mA'dır. Çalışma modunda devre 5 mA'dan fazla olmayan bir akım tüketir. Şimdi kartı COM portuna bağlayın ve projeyi çalıştırın. DA1 dengeleyicinin IN pinindeki voltajı ölçün, 6.5 V'tan düşük olmamalıdır. Aksi takdirde ayrı bir güç kaynağı kullanın. ADC girişindeki voltajı değiştirerek programın çalıştığından ve voltajı ekranda gösterdiğinden emin olun. 8 bitlik bir ADC kullanıldığında voltaj okuma doğruluğu 20 mV'dir, 10 bitlik ADC - 5 mV, 12-1.2 mV ile Visual Basic'te çalışmak ve bir com bağlantı noktasıyla oluşturulan uygulama hakkında biraz Muhtemelen zaten anladığınız gibi, bir com port ile çalışmak için bir bileşene ihtiyacınız varMicrosoft İletişim Control yani MSCOMM32.ocx dosyası, Visual Basic yüklendikten sonra C:\Windows\system32 dizininde bulunur. Demek istediğim şu; programınızı kurulum dosyası oluşturmadan Visual Basic olmayan başka bir bilgisayara kopyalarsanız çalışmayacaktır. Ayrıca bu dosyayı bilgisayarınızdakiyle aynı dizine kopyalamanız gerekir; system32'de. Veya bir yükleyici oluşturun. Şimdi bazı komutlar için: Veri değişim oranını ayarlama komutu: MSComm1.Settings = "1200,N,8,1" Com port numarasını gösteren komut MSComm1.CommPort = 1 Com portunu açma ve kapatma komutları MSComm1.PortOpen = Doğru MSComm1.PortOpen = Yanlış Com konnektörünün karşılık gelen pinine +12V çıkış veren komutlar: MSComm1.RTSEnable = True RTS (7) - pin adı ve pin numarası MSComm1.DTREnable = Gerçek DTR(4) -12V çıkış veren komutlar MSComm1.RTSEnable = Yanlış MSComm1.DTREnable = Yanlış Tek veya sıfır durumunun varlığı için CD (1), CTS (8), DSR (6) pinlerini yoklayabilirsiniz. MSComm1.CDholding = True ise (eğer öyleyse…) MSComm1.CDholding = False ise (sıfır ise…) Bir karakterin veya dizenin ASCII kodunun Tx (3) çıkışına iletilmesi: MSComm1.Output = "A" Sayılar MSComm1.Output = Chr(10) numarası 0…255 arasında değişebilir Bir zamanlayıcıya böyle bir komut yazıp sayıyı veya sembolü değiştirerek PWM modülasyonu oluşturabilirsiniz. Komutlar hakkında daha fazla ayrıntıyı kontrol açıklamasını indirerek bulabilirsiniz. Microsoft İletişim Control. Artık bu koda sahip olarak veri toplamak için bir dizi program yazabilirsiniz. Örneğin: voltmetre, ampermetre, sıcaklık ölçer, basit osiloskop, verileri bir dosyaya kaydedin. Ölçümler 1 ms'de bir veya saatte ve günde bir gerçekleştirilerek uzun vadeli süreçler izlenebilir. Alternatif voltajlarla (0'dan geçen) çalışmak ve ölçüm sınırlarını genişletmek için devresi [1]'den alınabilen bir giriş amplifikatörü gereklidir. Şebeke voltajıyla veya ağdan galvanik olarak yalıtılmamış cihazlarla çalışmak için devrenin bilgisayardan opto yalıtılması gerekir. Örnek programların kaynak kodlarını indirin (8 kB) Edebiyat
Yazar: =ShooRooP=, evei [köpek] mail.ru; Yayın: cxem.net Diğer makalelere bakın bölüm Bilgisayarlar. Oku ve yaz yararlı bu makaleye yapılan yorumlar. En son bilim ve teknoloji haberleri, yeni elektronikler: Bahçelerdeki çiçekleri inceltmek için makine
02.05.2024 Gelişmiş Kızılötesi Mikroskop
02.05.2024 Böcekler için hava tuzağı
01.05.2024
Diğer ilginç haberler: ▪ Sürücü yolda uyuya kalmayacak ▪ Hidrojen motoru için yeni uygulama ▪ soulution 511 stereo güç amplifikatörü ▪ Galaxy Note tek elle kontrol edilir Bilim ve teknolojinin haber akışı, yeni elektronik
Ücretsiz Teknik Kitaplığın ilginç malzemeleri: ▪ sitenin bölümü Hikayeleriniz. Makale seçimi ▪ Makale Atmosferik basınç. Bilimsel keşfin tarihi ve özü ▪ Bukalemun avını nasıl yakalar? ayrıntılı cevap ▪ makale Örgütteki işgücü koruma durumu üzerinde kontrol organizasyonu ▪ makale ADC KR572PV5'in uygulanması. Radyo elektroniği ve elektrik mühendisliği ansiklopedisi ▪ makale Ağızlık ve sigara. Odak sırrı
Bu makaleye yorumunuzu bırakın: Bu sayfanın tüm dilleri Ana sayfa | Kütüphane | Makaleler | Site haritası | Site incelemeleri www.diagram.com.ua |