PIC16F628A üzerinde basit bir elektronik zamanlayıcı. Şema. PIC16F628A'da varlık zamanlayıcısı Pic16f628a'da mutfak zamanlayıcısı


Bu, çöpten yapılmış başka bir zanaattır - mutlaka mutfak için olmasa da mutfak için bir zamanlayıcı. Başta eski ALS göstergeleri, eski kartlardan lehimlenmiş dirençler vb. olmak üzere boşta duran parçaları kullandık. Cihazın temeli, en yaygın ve en ucuz olanlardan biri olan PIC16F628A mikrodenetleyicisidir. Zamanlayıcı, bir valcoder ve bir düğme kullanılarak kontrol edilir. Zaman gecikmesi aralığı 1 ila 99 dakika arasındadır. Zamanlama döngüsünün sonunda aralıklı bir sinyal verilir. ses sinyali. Arşivde iki donanım yazılımı var; ilki sadece bir zamanlayıcı, ikincisi ise bazı önemli şeyler ve ıslıklarla birlikte, aşağıda daha fazlası var.

Ortak anotlu göstergeler için de bir seçenek vardır. Lütfen her şemanın ürün yazılımının farklı olduğunu unutmayın. Tüm farklılıklar diyagramda kırmızı renkle vurgulanmıştır.


Gücü açtıktan sonra ayarlanan süre göstergelerde görüntüleniyor, LED yanmıyor. Kodlayıcıyı döndürerek zaman ayarını 1 ila 99 dakika arasında değiştirebilirsiniz. Süre ayarlandığında düğmeye basın; kısa bir bip sesi duyulur ve zamanlayıcı geri saymaya başlar, LED yanıp söner ve göstergedeki süre her dakika azalır. Süre sıfıra ulaştığında zamanlayıcı aralıklı ses sinyalleri yayar ve LED sürekli olarak yanar. Artık düğmeye basıldığında ses sinyali kaldırılır ve cihaz orijinal durumuna - zaman ayarlama moduna geri döner. Ürün yazılımının ilk sürümü bu şekilde çalışır.

Ürün yazılımının ikinci sürümü ilkiyle aynı şekilde çalışır ancak birkaç eklemeye sahiptir. Zaman ayarlama modunda kodlayıcıya birkaç saniye dokunmazsanız ekranda animasyonlu bir ekran koruyucu çalışmaya başlar. Düğmeye basıldığında veya kodlayıcı döndürüldüğünde animasyon kapatılacak ve zaman ayarlama moduna dönülecektir. Geri sayım sırasında, eğer bir dakika kalırsa, ekranda 60'tan 00'a kadar saniyeler gösterilir. Ses sinyali tetiklendiğinde, süresiz olarak değil, yaklaşık 20 saniye boyunca çalacaktır. Daha sonra ekranda animasyonlu bir ekran koruyucu görüntülenmeye başlar (kurulum modundakinden farklı). Ayrıca her dakikadan sonra kısa bir ses sinyali ile size hatırlatmada bulunacaktır. Düğmeye basıldığında, tıpkı ilk donanım yazılımında olduğu gibi, zamanlayıcı, zaman ayarlama moduna sıfırlanacaktır. Zamanlayıcının kapanmasına 3 saniye kaldığında, zamanlayıcı her saniye için kısa bir bip sesi çıkarır; 3...2...1 ve daha fazlası her zamanki gibi çalışır. Her iki ürün yazılımı da mevcuttur ve baskılı devre kartının çizimiyle birlikte arşivde bulunmaktadır.

Ses sinyali, mikro denetleyiciye yerleşik donanım PWM kullanılarak uygulanır. Dinamik kafa yaklaşık 50 ohm'luk bir dirence sahip olmalıdır. Ayrıca düşük empedanslı dinamik kafalar (4 veya 8 ohm) da kullanabilirsiniz, ancak bu durumda küçük boyutlu bir çıkış transformatörü takmak daha iyidir çünkü 4 ohm'luk başlıktan büyük bir akım akacak ve bu, güç kaynağının aşırı yüklenmesine ve mikro denetleyicinin sıfırlanmasına neden olabilir.




Eklentileri indirin

Mikrodenetleyicilerin kullanışlı bir özelliği vardır: zamanlayıcı. Zamanlayıcı bir sayaç olarak kullanılabilir veya belirli bir uzunlukta (PWM) darbeler üretmek için kullanılabilir. Bir zamanlayıcı kullanarak örneğin bir saat veya jeneratör oluşturabilirsiniz.

Mikrodenetleyici 16 ailesinde 3 zamanlayıcı bulunur: TRM0, TRM1 ve TRM2. Her biri belirli bir iş türü için daha uygundur. Bu zamanlayıcılara daha yakından bakalım:

  • 8 bitlik zamanlayıcı (0'dan 255'e kadar sayar)
  • itibaren saatli sistem frekansı veya itibaren dış kaynak
  • sinyalin yükselen veya düşen kenarına güvenir
  • 8 bitlik ön ölçekleyici
  • taşma sırasında kesinti oluşturulur (255'ten 0'a geçerken)
  • zamanlayıcı sürekli çalışıyor

Bu zamanlayıcı, belirli bir uzunlukta darbeler oluşturmak veya gelen darbeleri saymak için kullanılabilir.

OPTION_REG (SEÇENEK bir programda).

  • 16 bit zamanlayıcı (0..65535)
  • hem harici bir sinyal kaynağından hem de
  • ek saat kuvars
  • maksimum ön ölçekleyici - 1:8
  • zamanlayıcı yalnızca sinyalin yükselen kenarlarını sayar
  • zamanlayıcı CCP modülü tarafından kullanılabilir
  • zamanlayıcı devre dışı bırakılabilir

TMR0'a benzer uygulamalar.

Zamanlayıcı bir kayıt cihazı tarafından kontrol edilir T1CON.

  • 8 bitlik zamanlayıcı
  • yalnızca sistem frekansından saatlenir
  • ön ölçekleyici 1:1, 1:4, 1:16
  • zamanlayıcı devre dışı bırakılabilir

Bu zamanlayıcının farklı bir çalışma prensibi vardır. Zamanlayıcı darbeleri sıfırdan belirli bir değere kadar sayar PR2. TRM2 ve PR2 eşleştiğinde, sinyal 4 bitlik son bölücüye gider ve bir kesme oluşturulur. Bu sistem minimum adımla frekans üretmenizi sağlar. Zamanlayıcı, PWM zamanlama tabanı olarak ÇKP'ye sinyaller gönderebilir.

Zamanlayıcı bir kayıt cihazı tarafından kontrol edilir T2CON.

Örnek

Firmware koduna geçelim. Örnekte giriş darbe sayacı için iki sayaç TRM0 ve yanıp sönen 2 LED için TRM1 kullanılmıştır.

Sayaç için TRM0 zamanlayıcılarını ve 2 LED'in yanıp sönmesi için TRM1 zamanlayıcılarını açalım.

INTCON=0b11100000; // Kesintilerin yapılandırılması SEÇENEK=0b00101000; // TMR0 kurulumu T1CON =0b00110001; // TMR1'i ayarlama TMR1IE=1;

Programın ana kodu ekranda sadece sayaç değerini gösterir.

Void main() ( low_init(); // MK InitLCD()'yi başlat; // ekranı başlat TMR0=0; // zamanlayıcıyı sıfırla TMR0 LED=0; // LED'lerden sorumlu değişkeni sıfırla while(1= =1) ( IntToLCD (0,0,TMR0); // zamanlayıcı gecikmesinin içeriğini göster(1000); // gecikme ))

Ana eylem kesme işleyicisinde gerçekleşir.

Void Interrupt isr(void) ( if(T0IF) // TMR0 taştığında ( T0IF=0; // taşması hakkındaki bayrağı sıfırlar ) if(TMR1IF) // TMR1 taştığında ( LED++; // LED kontrolü if(LED> 3 ) ( LED=0; ) PORTA=LED; // bayrağı sıfırla ))

İlk zamanlayıcı TRM0'ın işleyicisinde: taşma olduğunda yararlı hiçbir şey olmaz, yalnızca taşma bayrağı sıfırlanır. İkinci zamanlayıcı TRM1 taştığında: LED'ler yeni bir şekilde yanar (üzerlerinde ikili sayaç görüntülenir) ve ikinci zamanlayıcı taşma bayrağı sıfırlanır.

Aşağıda çalışan örnek zamanlayıcıların fotoğrafı ve videosu bulunmaktadır.

Bu, çöpten yapılmış başka bir zanaattır - mutlaka mutfak için olmasa da mutfak için bir zamanlayıcı. Başta eski ALS göstergeleri, eski kartlardan lehimlenmiş dirençler vb. olmak üzere boşta duran parçaları kullandık. Cihazın temeli bir mikrodenetleyicidir PIC16F628A, en yaygın ve en ucuzlarından biri. Zamanlayıcı, bir valcoder ve bir düğme kullanılarak kontrol edilir. Zaman gecikmesi aralığı 1 ila 99 dakika arasındadır. Zamanlama döngüsünün sonunda aralıklı bir ses sinyali verilir. Arşivde iki donanım yazılımı var; ilki sadece bir zamanlayıcı, ikincisi ise bazı önemli şeyler ve ıslıklarla birlikte, aşağıda daha fazlası var.

Ortak anotlu göstergeler için de bir seçenek vardır. Lütfen her şemanın ürün yazılımının farklı olduğunu unutmayın. Tüm farklılıklar diyagramda kırmızı renkle vurgulanmıştır.

Gücü açtıktan sonra ayarlanan süre göstergelerde görüntüleniyor, LED yanmıyor. Kodlayıcıyı döndürerek zaman ayarını 1 ila 99 dakika arasında değiştirebilirsiniz. Süre ayarlandığında düğmeye basın; kısa bir bip sesi duyulur ve zamanlayıcı geri saymaya başlar, LED yanıp söner ve göstergedeki süre her dakika azalır. Süre sıfıra ulaştığında zamanlayıcı aralıklı ses sinyalleri yayar ve LED sürekli olarak yanar. Artık düğmeye basıldığında ses sinyali kaldırılır ve cihaz orijinal durumuna - zaman ayarlama moduna geri döner. Ürün yazılımının ilk sürümü bu şekilde çalışır.

Ürün yazılımının ikinci sürümü ilkiyle aynı şekilde çalışır ancak birkaç eklemeye sahiptir. Zaman ayarlama modunda kodlayıcıya birkaç saniye dokunmazsanız ekranda animasyonlu bir ekran koruyucu çalışmaya başlar. Düğmeye basıldığında veya kodlayıcı döndürüldüğünde animasyon kapatılacak ve zaman ayarlama moduna dönülecektir. Geri sayım sırasında, eğer bir dakika kalırsa, ekranda 60'tan 00'a kadar saniyeler gösterilir. Ses sinyali tetiklendiğinde, süresiz olarak değil, yaklaşık 20 saniye boyunca çalacaktır. Daha sonra ekranda animasyonlu bir ekran koruyucu görüntülenmeye başlar (kurulum modundakinden farklı). Ayrıca her dakikadan sonra kısa bir ses sinyali ile size hatırlatmada bulunacaktır. Düğmeye basıldığında, tıpkı ilk donanım yazılımında olduğu gibi, zamanlayıcı, zaman ayarlama moduna sıfırlanır. Zamanlayıcının kapanmasına 3 saniye kaldığında, zamanlayıcı her saniye için kısa bir bip sesi çıkarır; 3...2...1 ve daha fazlası her zamanki gibi çalışır. Her iki ürün yazılımı da mevcuttur ve baskılı devre kartının çizimiyle birlikte arşivde bulunmaktadır.

Ses sinyali, mikro denetleyiciye yerleşik donanım PWM kullanılarak uygulanır. Dinamik kafa yaklaşık 50 ohm'luk bir dirence sahip olmalıdır. Ayrıca düşük empedanslı dinamik kafalar (4 veya 8 ohm) da kullanabilirsiniz, ancak bu durumda küçük boyutlu bir çıkış transformatörü takmak daha iyidir çünkü 4 ohm'luk başlıktan büyük bir akım akacak ve bu, güç kaynağının aşırı yüklenmesine ve mikro denetleyicinin sıfırlanmasına neden olabilir.

Baskılı devre kartı, Alexey Antonov versiyonu

Yorumlar

1 2

0 #21 kaktüs 06/14/2015 16:08

AntonChip'ten alıntı yapıyorum:

Programlama sırasında konfigürasyon bitlerinin ayarlanmasını gösteren bir ekran görüntüsü görebilirsiniz.


Yazara aygıt yazılımı için hangi konfigürasyonun gerekli olduğunu sordum, her şeyin zaten aygıt yazılımında olduğunu söyledi. Bu nedenle hiçbir şey yüklemedim, sadece ürün yazılımını yükledim.
Ekran görüntülerini yayınlayacağım ama nasıl yapacağımı bilmiyorum. Size e-postayla gönderebilir miyim?

Öyle oldu ki hastalık nedeniyle köydeki evi gözetimsiz bırakmak zorunda kaldım. Kararsız voltaja ve sık sık ağ kesintilerine rağmen 2-3 hafta içinde (2,5 ay olduğu ortaya çıktı) evde bulunma etkisi yaratan bir zamanlayıcıya ihtiyacımız var. Makul bir fiyata satılan hiçbir şey uygun değildi. İnternet ve radyo mühendisliği literatürü de beni tam olarak tatmin etmedi. Bunu kendim yaratmak zorunda kaldım. Birkaç akşam, akşamları 18-00'den 21-00'e kadar ışıkları açan basit bir saatli zamanlayıcı monte ettim. Elektrik kesintisi durumunda saat sapmadı: gösterge kapandı ve mikrodenetleyici, daha sonra düşük akımla şarj edilen pillerle çalışmaya devam etti. Bu zamanı Ocak ayı olduğu için seçtim. Şubat ayının sonunda saatimi bir buçuk saat geriye aldım. Artık zamanlayıcı saat 18-00'i göstermesine ve lambanın yanmasına rağmen gerçekte saat akşam 19-30'du. Mart ayının sonunda zamanlayıcıya olan ihtiyaç ortadan kalktı, ancak tatillerde hala ona ihtiyacım olacağını düşünüyorum. Belki iyileştirmeye çalışacaklar ama şimdilik elimde olanı paylaşıyorum.

Devre basittir, bu sitede yayınladığım saate benzer. Yedek pillerle birlikte bir güç kaynağı da mevcuttur. Yalnızca lamba anahtarlama ünitesi eklendi. İlk önce VTV-16 triyak kullanarak yaptım. Ancak hizmetçi açıldığında (bazen) parladı. Geçici süreçlerle uğraşmak yerine röle taktım, ekonomik lamba için daha güvenli olduğunu düşünüyorum. Karta 220 volt beslemedim, bu yüzden triyak'ı (ve ardından röleyi) transistör ve diyotla ayrı ayrı bağladım.

Ayrıca muhafazaya bir lamba soketi taktım. Soğutma için kasanın yan ve arka duvarlarına d=5mm olmak üzere 4 adet altta ve 4 adet üstte olmak üzere 8 adet delik açtım. Ancak ısınma hissedilmiyor.

Saatler iki düğme kullanılarak ayarlanır: saat ve dakika. Program Assembly dilinde yazılmıştır. Program saatin set (programlanan) değerlere uygunluğunu kontrol eder. Şimdi program 18, 19 ve 20 saat olarak ayarlandı. Ancak programlama sırasında zamanlayıcının çalışma süresini değiştirebilirsiniz. Örnek olarak IC Prog'u kullanırsak (diğer programlarda da benzerdir), şunu bulmanız gerekir: adres 0013h değeri 3012, adres 0017h değeri 3013, adres 0021h değeri 3014. Değerlerin ilk iki hanesi (30) komut kodu, ikinci ikisi ise hexadecimal kodda saat değeridir: 12 ondalık sayıya karşılık gelir 18, 13 -19 vb. Değiştirmek için değiştirmek istediğiniz adresin değerinin üzerine sol tuş ile çift tıklamanız gerekmektedir. 3012 değerini başka bir değere (örneğin 3005) değiştireceğiniz bir düzenleme penceresi açılacaktır. Artık zamanlayıcı sabah 5-00'den 6-00'e ve akşam 19-00'den 21-00'e kadar açılacaktır. Ayrıca başka bir zamanı da ayarlayabilirsiniz.

Radyo elemanlarının listesi

Tanım Tip Mezhep Miktar NotMağazanot defterim
MK PIC 8 bit

PIC16F628A

1 Not defterine
VR1 DC/DC darbe dönüştürücü

LM2575

1 Not defterine
VT1-VT4 Bipolar transistör

KT3102

4 Not defterine
VT5 Bipolar transistör

KT315A

1 Not defterine
VD1-VD3 Schottky diyot

1N5819

3 Not defterine
VD4 Doğrultucu diyot

1N4004

1 Not defterine
VS1 Diyot köprüsü

DB157

1 Not defterine
C1, C2 Kapasitör20 pF2 Not defterine
C3, C6 Kapasitör0,1 uF2 Not defterine
C4 330uF 25V1 Not defterine
C5 Elektrolitik kondansatör100uF 25V1 Not defterine
R1, R3, R6, R7, R11, R12 Direnç

300Ohm

6 Not defterine
R2, R4 Direnç

10 kOhm

2 Not defterine
R5 Direnç

360Ohm

1 Not defterine
R8-R10, R13 Direnç

1,5 kOhm

4 Not defterine
R14 Direnç

100Ohm

1 Not defterine
R15 Direnç

6,2 kOhm

1 Not defterine
R16 Direnç

2 kOhm

1 Not defterine
R17 Direnç

1 kOhm

1 Not defterine
F1 Sigorta100 mA1 Not defterine
L1 Bobin330 uH1


Saatin bu versiyonu, devreyi olabildiğince basitleştirecek, güç tüketimini azaltacak ve sonuçta cebinize kolayca sığacak bir cihaz elde edecek şekilde yapılmıştır. Devreye güç sağlamak için minyatür piller seçmiş, SMD montajı ve minyatür bir hoparlör (örneğin, çalışmayan bir cihazdan) cep telefonu), kibrit kutusundan biraz daha büyük bir tasarım elde edebilirsiniz.
Süper parlak bir göstergenin kullanılması devre tarafından tüketilen akımı azaltmanıza olanak tanır. "LoFF" modunda da akım tüketiminde bir azalma elde edilir - gösterge kapalıdır ve yalnızca saatin düşük dereceli basamağının yanıp sönen noktası açılır.

Endikasyon
Göstergelerin ayarlanabilir parlaklığı, okumaların en rahat görüntülenmesini seçmenize (ve yine enerji tüketimini azaltmanıza) olanak tanır.
Saatin 9 ekran modu vardır. Modlar arasında geçiş "artı" ve "eksi" düğmeleri kullanılarak gerçekleştirilir. Okumaların kendisi görüntülenmeden önce göstergelerde modun adı hakkında kısa bir ipucu görüntülenir. İpucu ekranının süresi bir saniyedir. Kısa süreli uyarıların kullanılması saatin iyi ergonomisine ulaşmayı mümkün kıldı. Ekran modları arasında geçiş yaparken (sıradan bir saat gibi basit bir cihaz için oldukça fazla olan), herhangi bir karışıklık olmaz ve göstergede hangi okumaların görüntülendiği her zaman açıktır.


Göstergede görüntülenen okumaların düzeltilmesi "Düzeltme" düğmesine basılarak etkinleştirilir. Bu durumda 1/4 saniye süreyle kısa süreli bir uyarı görüntülenir ve ardından ayarlanan değer 2 Hz frekansında yanıp sönmeye başlar. Okumalar artı ve eksi düğmeleri kullanılarak düzeltilir. Düğmeye uzun süre bastığınızda belirlenen frekansta otomatik tekrar modu devreye girer. Bir düğmeye basmanın otomatik tekrar frekansları şunlardır: saat, ay ve haftanın günü için - 4 Hz; dakika, yıl ve gösterge parlaklığı için - 10 Hz; düzeltme değeri için - 100 Hz.
Saat, dakika ve saniye dışında ayarlanan tüm değerler EEPROM'a yazılır ve cihaz kapatılıp açıldığında geri yüklenir. Düzeltme sırasındaki saniyeler sıfırlanır. Saat-dakika, dakika-saniye ve LoFF dışındaki tüm modlar otomatik olarak döndürülür. 10 saniye içerisinde hiçbir tuşa basılmazsa saat, saat-dakika görüntüleme moduna geçer.
"Açık/Kapalı alarmı" düğmesine basarak. Çalar saat açılır/kapanır. Alarmın etkinleştirilmesi, iki tonlu kısa bir ses ile onaylanır. Çalar saat açıkken göstergenin alt basamağındaki nokta yanar.
"Düzelt" modunda düzeltme sabiti göstergede görüntülenir, başlangıç ​​değeri yani saniyede 5000 mikrosaniyedir. Saat geciktiğinde sabiti saniyede mikrosaniye cinsinden hesaplanan gecikme miktarı kadar artırırız. Saatin acelesi varsa aynı prensibi kullanarak sabiti azaltırız.