Merhaba Arkadaşlar,
Merkezi Kilitli arabalar için yaptığım bir korna modülüdür. Ben 12F683 kullandım. İSteğe Bağlı 12F629 veya 12F675 kullanılabilir. Gerekli Yazılımları ve Devre şemalarını kendi blog sitemde paylaştım.
include 12f629
pragma target clock 4_000_000 -- kristal 4 Mhz
pragma target OSC INTOSC_NOCLKOUT -- dahili OSC
pragma target WDT Disabled -- watchdog Kapalı
pragma target CP Enabled -- Kod Koruma Açık
pragma target CPD Enabled -- Kod Koruma Açık
pragma target MCLR INTERNAL -- mclr kullanılmıyor
enable_digital_io() -- tüm pinler giriş çıkış
-- ------------------------------------------------------
-- Pin Tanımlamaları ve ilk ayarlar
-- ------------------------------------------------------
alias KornaRole is pin_A4
alias TetikSec is pin_A3
alias KapiTetik2 is pin_A2
alias KapiTetik1 is pin_A1
alias Kontak is pin_A0
pin_A4_direction = output -- CIKIS
pin_A3_direction = input -- TETIK-SEC
pin_A2_direction = input -- KAPI-TETIK
pin_A1_direction = input -- KAPI-TETIK
pin_A0_direction = input -- Kontak
KornaRole = False
-- ------------------------------------------------------
-- Bekleme Alt Programı
-- Süre = deger x 1000ms
-- ------------------------------------------------------
procedure bekle(word in deger) is
if deger > 0 then
for deger loop
_usec_delay(1000)
end loop
end if
end procedure
-- ------------------------------------------------------
-- Kapılar Kapatılınca Kornayı TEK Çalar
-- ------------------------------------------------------
procedure KapiKapaninca(byte in sure) is
Bekle(500)
KornaRole = true
Bekle(sure)
KornaRole = false
Bekle(500)
end procedure
-- ------------------------------------------------------
-- Kapılar Acilinca Kornayı CIFT Çalar
-- ------------------------------------------------------
procedure KapilarAcilinca(byte in sure) is
Bekle(500)
KornaRole = true
Bekle(sure)
KornaRole = false
Bekle(sure)
KornaRole = true
Bekle(sure)
KornaRole = false
Bekle(500)
end procedure
-- ------------------------------------------------------
-- Kapıların Durumunu Kontrol Eder
-- ------------------------------------------------------
procedure Kapilari_kontrol_et is
if (KapiTetik1 == TetikSec) & (KapiTetik2 == !TetikSec) then
KapiKapaninca(50)
end if
if (KapiTetik1 == !TetikSec) & (KapiTetik2 == TetikSec) then
KapilarAcilinca(40)
end if
end procedure
forever loop
if Kontak == false then
Kapilari_kontrol_et
else
KornaRole = False
end if
end loop
Çalışma Videosu
Kaynak : http://www.sercanca.com/modul-merkezi-kilit-korna-modulu-yapimi/