PROTON BASIC PIC16F84A LDR GERİLİM BÖLÜCÜ SORUNU

Başlatan speedaffectedby, 03 Mayıs 2022, 00:42:46

speedaffectedby

merhaba ete hocam, proton basic kullanarak programladığımız pic16f84a nın a portuna gerilim bölücü tekniği ile 3 adet ldr den analog input yaparak b portundaki 3 adet ilgili led çıkışlarımızı ve buzzer ımızı sürmek istiyoruz. programın doğruluğunu test amaçlı her 3 inputumuza proteus ta logic state ile logic 0 ve logic 1 uyguladığımızda yazılıma uygun olarak istediğimiz şekilde çalışıyor. ancak inputlarımızı gerçekte uygulayacağımız şekilde ldr lerden aldığımızda birinci ldr nin çıkışında analog dalgalanmayı dc voltmetre ile görerek doğru şekilde çalışıyor. ancak diğer 2 ldr çıkışarından analog dalgalanmayı dc voltmetre ile göremeyip inputlara sürekli olarak logic 0 değeri geldiğini görüyoruz.
ldr leri bağımsız olarak test etmek için, ldr lere enerji uygulanmadığında direnç değişimini gözlemlerken, enerji altında voltaj ölçümü yapıldığında, olması gereken voltaj dalgalanmasını göremiyoruz. nitekim gerçek devre uygulamasında da aynı şekilde bu durumu gözlemledik.
çok basit şekilde ldr ile gerilim bölücü yapmak istememize rağmen bu şekilde beklenmedik bu sonucun nedenini kesinlikle çözemedik. devreye ait proteus çizimini resim olarak ekledim. proteus dosyasını ve .bas dosyalarını da ayrıca ekledim. yardımlarınızı rica ederim.

Device 16F84A
Xtal 4
TRISA=1
TRISB=0
PORTA=0
PORTB=0
BASLA:

If PORTA.0=1 Then
PORTB.0=1
PORTB.7=1
EndIf

If PORTA.1=1 Then
PORTB.1=1
PORTB.7=1
EndIf
 
If PORTA.2=1 Then
PORTB.2=1
PORTB.7=1
EndIf

GoTo BASLA


mehmet

Üçüncü satırı
TRISA = 7
olarak değiştiriniz ya da iptal ediniz.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

ete

Öncelikle Mehmet'in dediği gibi giriş çıkış ayarınızı tam verin. Eksik olmuş. Devreye 3 adet LDR bağlı ise 3 adet giriş pini olmalı. TRISA=1 vererek yanlızca 1 giriş ayarlamış oluyorsunuz.
3 adet giriş yapmak için ise TRISA=7 vermelisiniz (%111) . Bu anlattıklarım tabiiki doğru şekilde analog girişi olan bir işlemci için geçerli. Çünki kullandığınız işlemci 16F84A ve bu işlemcide Analog pin mevcut değil. Asıl sorun burada. !!!!!!!
Bana kalırsa o işlemciyi değiştirin. 16F1827 kullanın yada analog girişi olan başka bir işlemci bulun. Bacak sayısı açısından uygun olan işlemci 16F1827 (aklıma gelen başkada olabilir).

LDR bağlantınız da ters olmış. +5V direk LDR ye girmeli LDR nin diğer ucu hem 10K ile GND ye bağlanmalı hemde bu uç İşlemcinin Analog girişine bağlanmalıdır.

Ete

speedaffectedby

Ete hocam, sizin ve Mehmet'in bahsettiği şekilde programda değişiklik yaptık. Yeni programda ilgili kısımları TRISA=%00111 ve TRISB=%00000000 şeklinde değiştirdik. Devremiz sorunsuz şekilde çalıştı. Hızlı ve çözüm odaklı yardımlarınız için çok çok teşekkür ederiz.

alisumer

#4
84a da nasıl çalıştırdınız adc işlemini ?eğer dışarıdan bir direnç üzerinden bir kapasitor şarj süresini  timer a saydırarak  hesaplayıp yaptıysanız tebrik ediyorum iyi uğraşmışsınız.hazır adc si olan yonga kullanmak daha kolay ama
Hep meraktan

mehmet

İlgili mcunu kitapçığı, 9.2 tabloda
görüldüğü üzere TTL seviye aralığı
kullanılmış.
GND - 0.8V -> LOW
2.0 - Vcc -> HIGH
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

ete

Mehmet açıklamış ama bende açıklayayım aslında o pinleri normal giriş pini olarak ama digital giriş olarak kullanılmış ve sistem o şekilde çalıştırılmış oluyor. Analog giriş ile yakından uzaktan bir alakası yok bu çalıştırma şeklinin. Hal böyle olunca o kadar LDR vs ye gerek varmıydı bunuda düşünmek gerekir.

Ete

speedaffectedby

merhaba, öncelikle geç cevap yazdığım için özür dilerim. tam olarak mehmet in bahsettiği şekilde bir kullanım yaptım. lojik 1 ve lojik 0 voltaj seviyelerinden yararlanarak anahtarlama yaptım. pic16f84a nın içerisinde bir adc olmadığını biliyorum, o şekilde de bir kullanım yapabilirdik takdir edersiniz ki ancak daha düşük maliyetli ve daha basit bir mantıkta çalıştırmak istedim projeyi. açıklamadaki analog seviyeden kastım, her ne kadar giriş pinlerinin lojik voltaj seviyelerini kullanıyor olsam da aslında o pinlerin ucuna analog bir sinyal uygulanıyor. ldr ile gerilim bölücü devresinden ötürü. aslında bunu kastetmiştim :) tekrar yardımlarınız için teşekkür ederim. iyi çalışmalar dilerim.

Powered by EzPortal