Herkese iyi günler.
Kendi kendime bir yangın alarmı devresi yapmak istedim. Fakat kafam biraz karıştı yardımcı olabilirseniz ( cevap olmasa bile yönlendirme) sevinirim.
Amacım transistörlerle bir anahtarlama devresi yapıp Ldr ve Ntc lerden nerede yangın çıktığına dair bilgi almak ve bu bilgiyi pic ile ldc ekranda yangının katını vererek yazdırmak istiyorum.
Devre örneğimi aşağıda verdim. Program kısmında sorun yok çalışıyor fakat, devreye giriş gerilimi olarak 20 V vermem gerekiyor (Ledler yansada pic ten cevap alamıyorum 12v giriş yaptığımda) bunu daha aşağıya çekemez miyiz ?
Sizden ricam devreyi biraz incelemeniz dirençler konusunda veya genel olarak bilgi vermenizi istiyorum hatam var mı ? Neyi değiştirsem daha mantıklı olur gibi.
Edit: Kullanılan Transistör BC237
Şimdiden vakit ayıranlar için çok teşekkür ederim. İyi pazarlar.
(https://s13.postimg.cc/ny5bpcmr7/elektronik_proje_resim_dosyas.jpg) (https://postimg.cc/image/ny5bpcmr7/)
(http://en.zimagez.com/miniature/elektronikprojeresimdosyas.jpg) (http://en.zimagez.com/zimage/elektronikprojeresimdosyas.php)
Yazılımınızı da ekleseydiniz keşke...
DEFINE LCD_DREG PORTB 'LCD data bacakları PortB de bağlı
DEFINE LCD_DBIT 4 'LCD data bacakları 4. bitten başlıyor
DEFINE LCD_EREG PORTB 'LCD Enable Bacağı PortB de bağlı
DEFINE LCD_EBIT 3 'LCD Enable Bacağı 3. bite bağlı
DEFINE LCD_RWREG PORTB 'LCD RW Bacağı PortB de bağlı
DEFINE LCD_RWBIT 2 'LCD RW Bacağı 2. bite bağlı
DEFINE LCD_RSREG PORTB 'LCD RS Bacağı PortB de bağlı
DEFINE LCD_RSBIT 1 'LCD RS bacağı 1. Bite bağlı
DEFINE LCD_BITS 4 'LCD 4 bit olarak bağlı
DEFINE LCD_LINES 2 'LCD 2 sıra olarak çalışıyor.
LOW PORTB.2 'RW bacağı ekrana yazmaya imkan vermek için LOW yapıldı.
TRISA=1 'A portu GİRİŞ olarak ayarlandı.
TRISB=0 'B portu çıkış olarak ayarlandı.
BASLAMA: ' BASLAMA işlemi
PAUSE 200 'LCD Yanmadan Önce 200ms beklemesi istendi
if Porta.2=0 then '** KONTROL
' Burada PORTA'nın 0,1,2 girişlerinin lojik durumu
IF Porta.1=0 then ' kontrol edilip 3 girişinde 0 olup olmadığına bakıldı
IF Porta.0=0 then ' Eğer 0 ise
LCDOUT $FE,1 ' EKRANI SİL
LCDOUT $FE,1," Hersey" ' EKRANA "HERŞEY
LCDOUT $FE, $C5,"Yolunda"' YOLUNDA" YAZ
PAUSE 200 ' 200ms bekle
endif
endif
endif '** KONTROL BİTTİ
if Porta.0=1 then ' 1. Kat Kontrolü ** PORTA.0 lojik 1 mi ?
LCDOUT $FE,1
LCDOUT $FE,1," YANGIN !!"' EKRANA " Yangın !!
LCDOUT $FE, $C3,"1. KAT" ' 1. KAT " YAZ
PAUSE 200
endif ' Kontrol bitti
if Porta.1=1 then ' 2. Kat Kontrolü ** PORTA.1 lojik 1 mi ?
LCDOUT $FE,1
LCDOUT $FE,1," YANGIN !!" ' EKRANA " Yangın !!
LCDOUT $FE, $C3,"2. KAT" ' 1. KAT " YAZ
PAUSE 200
endif ' Kontrol bitti
if Porta.2=1 then ' 2. Kat Kontrolü ** PORTA.1 lojik 1 mi ?
LCDOUT $FE,1
LCDOUT $FE,1," YANGIN !!" ' EKRANA " Yangın !!
LCDOUT $FE, $C3,"3. KAT" ' 1. KAT " YAZ
PAUSE 200
endif ' Kontrol bitti
GOTO BASLAMA 'Başlama işlemine geri
End 'Program Sonu
Bazı yerleri küçük geçirmiş ama sorunsuz çalışıyor program.
TRISA = 1 -> TRISA = %00000001 manasına gelir.
TRISA = 7 veya TRISA = %00000111 olarak düzenlemelisiniz.
Çok haklısınız gözümden kaçmış. PORTA=1 niyetiyle yapmıştım.
Teşekkürler.
Edit: Şimdi düzelttim ve tekrar denedim.Devrenin giriş gerilimini 5V a indirdim ve istediğim sonucu aldım. Çok ama çok teşekkür ederim.
Dirençler hakkında ne düşünüyorsunuz ?
http://tinyurl.com/kbub5dl
Biraz daha az akım çekmesi için yeniden düzenlenebilir. Sensörlerinize
bağlı olarak yenilenmesi gerekebilir...