RADYO ELEKTRONİK VE ELEKTRİK MÜHENDİSLİĞİ ANSİKLOPEDİSİ Çok programlı zamanlayıcı-saat-termometre. Radyo elektroniği ve elektrik mühendisliği ansiklopedisi Radyo elektroniği ve elektrik mühendisliği ansiklopedisi / Güç regülatörleri, termometreler, ısı stabilizatörleri Makalede, dört yükü yönetebilen çok programlı bir zamanlayıcının, bir saatin, bir alarm saatinin, geniş aralıklı bir termometrenin ve hem ısıtma hem de ısıtma sağlayan bir termostatın işlevlerini yerine getirebilen bir PIC denetleyicisine dayanan evrensel bir dijital cihaz anlatılmaktadır. Kontrol edilen nesnenin soğutulması. Devresi Şekil 1'de gösterilen evrensel bir dijital cihaz. XNUMX, aşağıdaki özelliklere sahiptir:
16 düğmeli bir tuş takımı kullanarak cihazı kontrol edin. Düğmelere basma sesini açıp kapatmak, ses, ışık ve kontrol sinyallerinin kaynağını ayarlamak, MK kontrol programını değiştirerek belirli bir uygulama için cihazın bireysel olarak ayarlanması mümkündür. Dahili şarj edilebilir pilden bir yedek güç kaynağı vardır. Cihazla çalışırken ayarlanan tüm parametreler, yedek güç 40 yılı aşkın bir süredir kapatıldığında bile kaydedilir. Diyagramdan da görüleceği gibi cihazın temeli PIC denetleyici DD1'dir. Kaydırma yazmacı DD2 ve kod çözücü DD3, prensibi aşağıdaki gibi olan dinamik gösterimi düzenlemek için tasarlanmıştır. İlk olarak, DD3 kod çözücüye 1111 kodu uygulanır ve bunun sonucunda tüm çıkışlarında günlük seviyeleri ayarlanır. 1 ve HG1 göstergesinin hanelerinden hiçbiri yanmıyor. Ardından, gerekli karakterin kodu DD2 kaydına girilir, ardından göstergenin istenen bitine karşılık gelen kod DD3'e gönderilir. Gösterge verilerinin güncellenmesiyle eşzamanlı olarak, klavye taranır, 16 düğme, her biri sekiz olmak üzere iki gruba ayrılır. Bu grupların düğmelerinin genel sonuçları, MK'nin iki girişine (RB0 ve RB1) bağlanır. Bir düğmeye basıldığında, bu girişlerden birine bir günlük sinyali gönderilir. DD0 kod çözücünün karşılık gelen çıkışından 3, böylece kodunu belirler. Klavyeyi kullanarak program zamanlayıcılarından herhangi birini veya hepsini aynı anda başlatabilir/durdurabilir, termostat çalışma modunu, geçerli saati, alarm saatini vb. ayarlayabilirsiniz. Kullanıcının hangi bilgilere sahip olduğuna bağlı olarak düğmelerin çoğunun ikili bir amacı vardır. klavyeden girer: sayısal veya kontrol . Klavye düğmelerinin amacını daha ayrıntılı olarak düşünün. "0", "Saat" - sayısal bilgileri girerken veya mevcut saati değiştirebileceğiniz, alarmın açılacağı saati ayarlayabileceğiniz, yeni saat alarm modunu açabileceğiniz, saati düzenleyebileceğiniz saat moduna geçerken 0 rakamı düzeltme faktörü (aşağıya bakın). Sayısal bilgileri girerken veya uygun program zamanlayıcısını seçerken "1" - "9" - 1 - 9 sayıları. "Süre" - mevcut sıcaklık değerini ayarlayabileceğiniz, kontrol edilen sıcaklığın değerini, düzenleme tipini (ısıtma veya soğutma) ve termistör parametrelerini düzenleyebileceğiniz termostat moduna geçiş. "Del" - Kontrol edilen sıcaklığın değerini girerken "eksi" işareti, termostatı, termometreyi, çalar saati veya saati açıp kapatırken (kapatıldığında, karşılık gelen okumalar yerine --- işaretleri görüntülenir), ne zaman sıfırlanır sayısal verilerin girilmesi. "Ayarla" - herhangi bir parametrenin (yazılım zamanlayıcısı, geçerli saat, çalar saat, termometre, termostat, ayarlar) değerini değiştirme moduna geçiş/çıkış. "Seçenekler" - ayarları değiştirme moduna geçin. Burada düğmelerin sesini, karşılama modunu açabilir / kapatabilir, kontrol sinyalleri vermek için kaynakları seçebilir, vb. "Seç" - zaman gecikme değeri 0'dan farklıysa mevcut yazılım zamanlayıcısını başlat/durdur. "AH" - zaman gecikme değeri 0'dan farklı olan tüm yazılım zamanlayıcılarını başlat/durdur. Cihaz, her biri kullanıcının takdirine bağlı olarak kullanılabilen dört kontrol sinyali verme yeteneğine sahiptir. Bu sinyallerin kaynağını ayarlamak mümkündür:
Cihaz, bir veya daha fazla zamanlayıcı başlatıldığında en az bir kontrol sinyali aktif hale geldiğinde kırmızı ve aktif sinyal yoksa yeşil renkte yanıp sönen iki renkli bir HL1 LED'i kullanır. Çalışan zamanlayıcılardan herhangi birinin zaman gecikmesinin sonunda, HG1 göstergesi yanıp sönmeye başlar ve yerleşik kesicili HA1 piezo emitörü bip sesi çıkarır. Bu, kullanıcı klavyedeki herhangi bir tuşa basana veya değeri MK'nin hafızasında saklanan ve programlanması sırasında değiştirilebilen belirli bir süre geçene kadar devam eder. Zamanlayıcı tetiklendiğinde yayılan ses sinyali iki parametre tarafından belirlenir: sesin süresi ve ses paketi sayısı. Alarm çaldığında, sesli sinyaller de verilir, ancak göstergenin yalnızca en soldaki iki sembolü - A ve L (İngilizce'den. ALARM - çalar saat) yanıp sönmeye başlar. Çalar saatin ses sinyali ayrıca MK'nin hafızasında saklanan iki parametre ile tanımlanır. Uygulanan kuvars rezonatöre bağlı olarak, saatin doğruluğu farklı çıkıyor, bu nedenle bu cihazda yazılım zaman düzeltmesi gerçekleştiriliyor. Düzeltme faktörü, kullanıcı tarafından klavyeden ayarlanır ve ayrıca MK'nin hafızasında saklanır. Aslında, MK'nin dahili zamanlayıcısı tarafından üretilen salınım periyotlarına eklenen mikrosaniye sayısını temsil eder - bizim durumumuzda 1,92 ms. Bir düzeltme faktörü yardımıyla bu süre 2 ms'ye eşitlenir (her 1 periyottan sonra 500 s'lik bir zaman periyodu kaydedilir). Sıcaklık, termistör RK1 üzerindeki voltaj düşüşü ölçülerek ölçülür. Sıcaklığın bir fonksiyonu olarak direnci aşağıdaki formülle belirlenir: burada R0, direnç boyutuna sahip bir sabittir; B, sıcaklık boyutuna sahip bir sabittir; T mutlak sıcaklıktır. Bu nedenle, bu bağımlılık doğrusal olana indirgenmelidir. Bir termistör köprüsü kullanan bilinen bir doğrusallaştırma yöntemi vardır, ancak bu yaklaşım elverişsizdir çünkü termistörü değiştirirken köprünün parametrelerini değiştirmeniz gerekir ki bu o kadar basit değildir. Herhangi bir lineerizasyon olmadan sıcaklık değerini almak daha uygun olur ancak bunun için aşağıdaki ifadenin değerini hesaplamanız gerekir: burada Rd, ek direncin direncidir; N - analogdan dijitale dönüştürmeden sonra elde edilen 10 bitlik ikili kod; Un - besleme voltajı. Tarif edilen cihazda bu ifade MK kontrol programı tarafından hesaplanır ve sonuç göstergede görüntülenir. Yukarıdaki ölçülen ve kontrol edilen sıcaklık aralığının (-43 ... +470 °C) herhangi bir şekilde gerilebilir, sıkıştırılabilir veya kaydırılabilir olduğuna dikkat edilmelidir. Belirtilen aralık, içindeki sıcaklık ölçüm hatası ±2 °С'yi geçmediği için seçildi. Bu durumda, ek direnç R17'nin direnci 300 ohm'dur. Hatayı azaltmak için artırılabilir, ancak sonuç olarak sıcaklık aralığının sınırları değişecektir. Hesaplama kolaylığı için kullanabilirsiniz belge termistör RK10, direnç R2001 ve gerekli hatanın belirtilen parametrelerine göre ölçülen sıcaklık aralığını hesaplayan MathCAD 1 sistemi için terim (17 bit).mcd. Ana güç kapatıldığında gerçek zamanlı saatin kaybolmamasını sağlamak için cihaz, mikro denetleyici için bir yedek güç kaynağı ünitesi ile donatılmıştır. 1 V'luk bir GB3,6 pil, bir R16 direnci ve VD2, VD3 diyotlarından oluşur. Ana güç açıldığında, VD3 diyotu kapanır ve GB1 pili R16 direnci üzerinden şarj edilir. Ana güç kapatıldığında, akü voltajı VD3 diyotu üzerinden yalnızca MK'ye beslenir (VD2 diyotu, cihazın geri kalan elemanlarına voltaj beslenmesini engeller). MK, RB2 pinindeki voltaj seviyesini sürekli izlediği için elektrik kesintisi gerçeğini algılar. Ve log'a eşit olduğunda. 0'da, MK göstergeyi yenilemeyi ve klavyeyi sorgulamayı durdurur, çalışan tüm program zamanlayıcılarını durdurur, sıcaklığı ölçmeyi ve ayarlamayı durdurur ve saat moduna geçer. Ayrıca cihazla çalışırken ayarlar değiştirildiyse, güç kapatıldıktan sonra kırmızı LED kısa süreliğine yanıp sönecek, ayarlar değişmediyse yeşil LED yanıp sönecektir. Cihazın uzun bir süre (bir hafta veya daha fazla) kullanılması planlanmıyorsa, pilin tamamen boşalmasını önlemek için S1 atlama kablosunu kullanarak yedek gücü kapatabilirsiniz. MK, klavyedeki düğmelerin kontaklarının durumunu sürekli olarak izler ve belirtilen süre boyunca tek bir basış olmazsa ve tek bir program zamanlayıcı başlatılmazsa, otomatik olarak saat moduna geçer. MK kontrol programı C ile yazılmıştır, bu nedenle gerçek olanlar da dahil olmak üzere herhangi bir veri türünü kolayca kullanabilir. Program, HT-PIC C programlama sisteminde geliştirilmiştir (siteden "indirilebilir") ). Hata ayıklama için, bilgisayarın paralel bağlantı noktasının hatlarını ana karttaki MK'nin altındaki sokete bağlayan bir dizi kontak olan en basit devre içi öykünücüyü kullandık. Bilgisayarın paralel portunun sonuçlarının zamanlayıcı kartındaki MK soketinin soketlerine karşılık gelmesi Tablo'da verilmiştir. 1. Emülatörü kontrol etmek için MK kontrol programı Borland C++ 3.1 programlama ortamında küçük değişikliklerle derlenmiştir. Ne yazık ki, böyle bir öykünücünün çalışması, gerçek olandan farklı bir zaman ölçeğinde gerçekleşir, ancak yine de, böyle bir cihaz olmadan, bu kadar karmaşık bir programda hata ayıklamak neredeyse imkansız olacaktır. Bir öykünücü kullanılmadan, yalnızca bu MK ile ilgili açıklaması web sitesinde bulunabilen analogdan dijitale dönüştürme gerçekleştirildi. (belge DS30292C - "PIC10F16x mikrodenetleyicilerinde 87 bit ADC modülü"). MC kontrol programının ana noktalarını kısaca ele alalım. Çok sayıda alt programa sahip olmasının bir sonucu olarak yapılandırılmış programlama metodolojisi kullanılarak yazılmıştır. Gücü açtıktan sonra MCU, G/Ç bağlantı noktalarını, ADC'yi ve dahili zamanlayıcıyı kurar. Ardından sonsuz olan ana döngü çalışmaya başlar. İçinde, daha önce de belirtildiği gibi, ana besleme voltajının varlığı sürekli olarak kontrol edilir ve kapatılırsa, MK, zamanlama dışındaki tüm işlevleri yerine getirmeyi durdurur. Ana güç açıldığında açılış ekranını görüntüler ve çalışma moduna geri döner. Geçerli anda göstergede görüntülenmesi gereken bilgiler d dizisinde saklanır. Göstergenin yenilenmesi sürecinde, MC içeriğini bir ara diziye yeniden yazar ve ondan çıkış karakterlerinin kodlarını sırayla okur ve göstergede görüntüler. Eskisi henüz tam olarak görüntülenmeden önce d dizisine yeni bilgilerin yazılmasından kaynaklanan göstergenin titremesini ortadan kaldırmak için ek bir dizi tanıtıldı. Örneğin, d dizisinin başlangıçta "ABCDEFHLP" dizesini içerdiğini ve dördüncü karakter ("D") görüntülendiğinde diziye "FDA 2002" dizesinin girildiğini varsayalım. Ardından, insan görüşünün ataletinden dolayı cihazın kullanıcısı, bir noktada "ABC 2002" satırını görecektir. Ayrıca bu tür işlemler sürekli tekrarlanırsa (ve gerçek işte böyle olacaktır), kişi göstergedeki bilgilerin titreştiği izlenimini edinecektir. Belirtildiği gibi klavye, gösterge güncellemesiyle aynı anda taranır. Herhangi bir tuşa basıldığında, birkaç milisaniye geciktiren (bu sürenin değeri MK hafızasında saklanır) temas sekme bastırma alt programı çağrılır ve bu sırada cihaz, daha fazla tuşa basılmasına yanıt vermez. Ayrıca, yazılım zamanlayıcılarının, saatlerin ve alarmların maruz kalma süresinin saniye olarak ayarlandığı (24 x 60 x 60 = 86400 değerine ulaşıldığında saat sayacı sıfırlanır) ve göstergede görüntülenmeden önce dönüştürüldüğüne dikkat edilmelidir. zamanlayıcılar için H : MM : SS formatına veya saat ve alarm için HH : MM formatına. Bu, aşağıdaki formüller kullanılarak yapılır: C = zaman modu 60. Burada ][ işlemi kesirli kısmın atılması anlamına gelir, yani bölme bir tamsayıdır. Elde edilen saat, dakika ve saniye değerleri, ikili kodda sunuldukları için henüz göstergede doğrudan gösterilmeye uygun değildir. En önemli ve en önemsiz ondalık basamakları seçmek için her değer üzerinde iki işlem daha yapmak gerekir: LSB = değer modu 10. Bir örneğe bakalım. Göstergede 8673 s değerinin H: MM: SS formatında görüntülenmesi gerekli olsun. Aldık C = 8673 mod 60 = 33. Böylece gösterge 2: 24 : 33 gösterecektir. Verilen örneklerden, çıktıyı göstergeye göre düzenlemek için kaç işlem yapılması gerektiği görülebilir. Assembly dilinde böyle bir matematiği uygulamak neredeyse imkansız olurdu. C dilinde bu sadece birkaç satırda uygulanırken, yüksek düzeyde optimizasyon sayesinde program kodu oldukça kompakt ve hızlıdır. Ancak en önemli şey, programcının, uygulanan mikrodenetleyicinin mimarisinin belirli özelliklerinden soyutlayarak, ana dikkatini program algoritmasına odaklayabilmesidir. Bütün bunlar, programın bir MK'den diğerine kolayca aktarılmasına katkıda bulunur. MK programının kaynak metni ve Intel HEX formatındaki "firmware" kodları, İnternette yukarıdaki adreste bulunmaktadır. Yazar, MK'yi programlamak için, Şekil 2'de gösterilen şemaya göre monte edilmiş bir programcı kullandı. 2000 ve en son sürümü web sitesinden "indirilebilen" PonyProg1 yazılımı . Programlayıcı ile [3]'de açıklanan arasındaki temel fark, senkronizasyon sinyali üretim devresine başka bir transistör (VTXNUMX) eklenmesidir; bu, MK pinlerindeki negatif voltajı tamamen ortadan kaldırarak programlama güvenilirliğini artırır. Açıklanan cihaz, kart üzerinde MK programlamaya izin verir, yani ICSP teknolojisini (Devre İçi Seri Programlama - devre içi seri programlama) destekler. Bunu yapmak için, X1 konnektörü aracılığıyla programlayıcıya beş kabloyla aşağıdaki gibi bağlanır: 7 - ortak; 5,6 - 5V; 2 - SDA; 3 - SCL; 1 - Yükseltme Düşük voltajlı programlamayı destekleyenler de dahil olmak üzere diğer programlayıcıları kullanmak mümkündür. İkinci durumda, ek olarak programlayıcının ilgili kontağını X4 konnektörünün 1 numaralı pimine bağlamanız gerekir. Cihazın baskılı devre kartının bir çizimi, Şek. 3, klavyeler - şek. dört. Zamanlayıcı kartında, parçaları monte etmeden önce kalaylı tel parçalarının takıldığı ve kartın her iki tarafındaki baskılı iletkenlere lehimlendiği yedi delik vardır. Jumper'ların işlevi, bazı bölümlerin sonuçlarıyla da gerçekleştirilir. Bu tür baskılı iletken bağlantılarının yapıldığı delikler, Şek. 3 dört çapraz nokta ile. Projenin kaynak dosyaları ve CAD Accel EDA 15.0 için kullanılan bileşenlerin kitaplığı yukarıdaki sitede bulunmaktadır. Cihaz, yüzeye montaj için sabit dirençler ve kapasitörler kullanır. İstisna, oksit kapasitörler C6, C7'dir (K50-35). MK PIC16F876, herhangi bir maksimum çalışma frekansına ve sıcaklık aralığına sahip olabilir, asıl mesele, bir DIP paketinde olmasıdır (bir SP eki vardır). HRM14AX piezoelektrik yayıcı, KR1533LAZ mikro devresinin üç elemanı ve bir ZP-18 piezoelektrik yayıcı [2] üzerinde yapılan bir ünite ile değiştirilebilir. Termistör RK1 - 4 kOhm nominal dirençli MMT-15 (R0 = 0,294 Ohm, V = 3176 K). X1 - XZ konektörleri olarak, bilgisayar teknolojisinde kullanılan düz pimli bölünmüş bloklar kullanılır: X1 için, iki sıralı pim düzenine sahip bir blok ve X2 ve XZ için - tek sıra ile kullanılır. XP1 fişinin ve üçüncü XP2 fişinin sekizinci teması çıkarıldı ve fişler, konektörlerin eşleşen parçalarının karşılık gelen yuvalarına - kalın olta parçaları - yerleştirildi. Bu önlem, konektörlerin yanlış eşleşmesini önleyecektir. X2 konektör soketi, bir DIP paketindeki bir mikro devre için 20 yuvalı bir panelden yapılmıştır (10 pinli bir kısmı kullanılır). Düğmeler SB1-SB16 - TS-A3PS-130. Diğer çalışma parametrelerini ayarlamak için değiştirilebilen MK EEPROM içeriği Tablo'da sunulmuştur. 2. "Parametre" sütunu, göstergede görüntülenen parametrenin adını içerir. Bu sütunda bir çizgi varsa, bu parametre yalnızca MK programlanırken değiştirilebilir. Edebiyat
Yazar: D.Frolov, Ryazan Diğer makalelere bakın bölüm Güç regülatörleri, termometreler, ısı stabilizatörleri. 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: ▪ Antikuarklar ve proton dönüşü ▪ Uçak kanatlarındaki güneş panelleri Bilim ve teknolojinin haber akışı, yeni elektronik
Ücretsiz Teknik Kitaplığın ilginç malzemeleri: ▪ Sitenin Doğa Harikaları bölümü. Makale seçimi ▪ makale Kapitsa Sergey Petrovich. Ünlü aforizmalar ▪ makale Hava fotoğrafçılığı için güvercinler ne zaman ve nerede kullanıldı? ayrıntılı cevap ▪ video kamera makalesi. Onarım Sırları ▪ makale Korumanın iyileştirilmesi. Radyo elektroniği ve elektrik mühendisliği ansiklopedisi ▪ makale Muhteşem numaralar ve ipuçları. Ansiklopedi
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 |