basit fotodiyot devresinin garip sorunu

Başlatan samuray84, 16 Nisan 2012, 11:40:11

samuray84

elimdeki fotodiyotu denemek amaçlı bi devre yaptım. Devre dediğim de, fotodiyotun bir ucu 5v, diğer ucu pic'e bağlamak sureti ile:)

neyse, pic olarak 16f628a kullandım.

b3 portuna bağladım, b3 portuna akım geldiğinde a0' a bağladığım ledi yakması , ve akım gelmediğinde söndürmesi için böyle bir kod yazdım:

#include <16F628A.h>
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NOBROWNOUT, NOMCLR, NOLVP, NOCPD
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(b)
#fuses INTRC_IO

void main ()
{
int count=0;
// PORTA'nın hepsi çıkış
set_tris_a(0x00);
set_tris_b(0x08);
output_a(00000000);
output_b(00000000);

setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_CCP1(CCP_OFF);



while(1)
   {
      output_a(00000000);
      output_b(00000000);
     
                 
      if(input(pin_b3))
      {
         delay_ms(151);
         output_high(pin_a0);
         delay_ms(100);
      }

      if(input(pin_b3)==0);
      {
         delay_ms(151);
         output_low(pin_a0);
         delay_ms(100);
         
      }
   }
}

sorun şu ki, ben uzun yanmasını beklerken lamba  sürekli yanıp sönüyor. voltajı sabit 3 civarında ölçüyorum, Fotodiyotun üzerini kapattığımda voltaj 0.1  oluyor. Ve bacağı ölçtüğümde lamba sönüyor, ancak voltmetrenin uclarını cekince yeniden yanmaya başlıyor. neden voltmetreyle ölcüm yaparken sönüp, çekince yanar bu lamba?

artı neden pırpır eder de devamlı yanmaz?

z

Fotodiyod son derece küçük akımlarla çalışır ve bu nedenle de tek başına kullanılmaz.

Burada avometrenin iç direnci fotodiyod için yük görevi görmekte ve fotodiyod çıkışına dokundurduğunuzda çalışma şartlarını değiştirmekte.

Fotodiyodu doğrudan işlemciye bağlamak yerine arada hiç olmazsa transistörlü bir devrecik kullanın.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

samuray84

teşekkürler hocam. elimde bitane bc238 vardı, onu bağlayım dedim. fotodiyottan gelen kabloyu base'e bağladım, emitter'e ground verdim, collector'u de picin bacağına girdim. bu sefer  cok düşük voltaj geldi. lamba hic yanmadı.

emitter 'e 5v verdiğimde ise düzgün gibi calıştı sanki ama yine aynı şey oldu.

collector ucu, diyotu kapatınca 1v, acınca 5v oldu. ama 1v iken yine multimeter ile ölctüğümde lamba söndü ölçmediğimde yandı :)

transistorü nasıl bağlamam gerekiyor? yanlış mı bağlamışım?

z

Denemedim ama çalışacağını sanıyorum.

+5v dan 4K7 ile Kollektöre giriyorsun kollektörden de PIC'e.
Emetor Gnd de.
Base ucundan fotodiyoda, fotodiyoddan 10K ya 10K nın diğer ucundan da +5V ye.

Fotodiyod ters polarmada bağlanacak. 10K yı sırf güvenlik açısından ekledim 1K da yapabilirsin.
İstersen base ile Gnd arasına 100K ... 1M aralığında bir direnç bağlayabilirsin.

Transistör olarak BC237, 238 vs kullanabilirsin.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Kabil ATICI

http://www.elektronikvelemciler.blogspot.com/2010/12/fiber-optik-kablo-iletisimi.html
opamp ile fotodiyotun bağlantısı .   Çıkış doğrudan 5V'luk beslemesi olan işlemciye bağlanabilir.
ambar7

samuray84

teşekkürler hocam, dediğin şekilde çalışmadı, bu sefer de 6v gitti pice. söktüm hepsini, diyotu direk pice bağladım, diyotun ucundan bi tane de 820k direnci grounda bağladım. problem çözüldü.

şimdi ikinci problem devam ediyor. if  satırlarının içleri doğru mu? çünkü pic in b3 bacağına 5v gelse de gelmese de  iki if satırı da doğru gibi çalışıyor. ama gelirse biri gelmezse diğeri true olması lazım değil mi? neden ikisi de true oluyor?

ziyaretci

Arkadaşlar öncelikle kolay gelsin

output_a(0b00000000);


binary değer verirken başında "0b " kullanman gerekiyor.Sorunun bundan kaynaklanıyor olması lazım.

samuray84

alttaki if'in sonuna noktalı virgül koymuşum :) tamamdır sorun çözüldü, çalışıyor şu an... teşekkürler...