Elektronik / Mikrodenetleyici Projeleri/

PIC16F877 ile display göstergeli 10 bit adc devresi

Sponsorlu Bağlantılar

Bu devre ile her türlü analog sensörü okunabilir. referans ayarlarını VREF+ ve VREF- potlarından ayarlayabilirsiniz.

10 Bit ADC Devre şeması
10bit adc devre semasi

VREF+ girişindeki gerilim displeyin göstereceği en büyük değeri ayarlar. en büyük sayı 1023 dür. örnek olarak VREF+ yı 2,5v ayarlarsanız analog girişten 2,5v okuduğunuzda displey en büyük sayı olan 1023 ü gösterir. bu girişi +5v a bağlarsanız analog girişten 5 volt okuduğunuzda 1023 ü güsterir. 1023 10 bitlik sayıdır.

VREF- ise ekranın göstereceği en küşük sayı yani 0 ı ayarlar. örnek olarak bu girişi 1v ayarlarsanız analog girişten okuduğunuz gerilim 1v veya altında ise ekranda 0 sayısı gözükür. Bu girişleri kullanmak istemiyorsanız VREF+ yı +5v a VREF- yi GND ye bağlayınız. yada ADCON1 registerinden gerekli ayarları yapınız.

Ölçmek istediğiniz değeri hesaplamak için şu yolu izleyin :

Örnek olarak VREF+ = 3v VREF- = 0v ise (3v – 0v)/1023= 0,00293v bu değer her sayıya denk gelen gerilimdir.bu durumda ekranda 1000 sayısını okuyorsak 1000 * 0,00293= 2,93v analog girişteki gerilimi gösterir. bu yöntemle istediğiniz ayarı yapabilirsiniz. portb ye bağlı jojik problar ekrandaki sayının ikili (binary) dönüşümünü gösterir. Devreyi Deney amaçlı tasarladım 10bitlik dönüşüme örnek olarak gösterdim. devre 10 bit olduğu için çok hassas. potla deneyecekseniz mutlaka kondansatörle filitreleyin. Displeyi ORTAK KATOT kullandım. kristal 10 Mhz.

ASM, HEX, proteus isis simülasyonu ve tüm kaynak dosyaları: PIC16F877 ile display göstergeli 10 bit adc devresi

Dosya indirme LINK listesi (TXT formatında) link-810.zip şifre-pass: 320volt.com

  • ahmet yalçın

    pot ile ölçümlerde kondansatör ile firtleyin demişsiniz. acaba ne kadar bir kondansatör yeterli olacaktır.

  • HGK

    Verdiğin bilgiler için çok teşekkurler…Vref+ ve Vref- in hassasiyetle bagıntısını anlamamda oldukca faydalı oldu..

  • caner

    Genelde analog girişlere 100nF filtre kapasitesi ve 5.1V zener koruması yapıyoruz. Filtre için 100nF yeterli olacaktır.

  • suas

    Selam arkadaşlar bu devre üste bulunan 1-2-4-8……512 nedir ne işe yarar?

    Diyelim ki farklı bir kaynaktan 2.3v verdelim bunu 300 olarak ekranda göstermek için yapılacak ayarlar ve bu 2.3v artı ve eksi olarak devrenin neresine bağlıyoruz şimdiden teşekkürler.

  • mustafa

    herkese slm ben end.elektronik programlama mezunuyum mezuniyetim üzerinden bayağı bir zaman geçti şuan için pişman olduğum kısımları(pıc’ı daha iyi öğrenmeyi ) telafi etmeye çalışıyorum

    aklımda sesle aktive anahtarı adlı bir proje varkapı aç pencere aç misali en kapa tabirle. ancak dediğim gibi pişman olduğum kısım mezunum ama kodlarla aram iyi değil hocam aşağıdaki kodlarda çok yanlışımvar amacım şu analog girişten dijital veri almak ben anlamak için en kaba tabiriyle sadece bir sesle çalışmasını istedim ancak çözemedim çok araştrıdım adcon0,adcın,adcon1 tabirleri nedir biliyorum ama açıklarsanız yinede çok yararlı olur ,ayrıca bu saydıklarım hangi portları temsil ediyor girişinde sesle ilgili misal 5 voltluk giriş uyguladığımda çıkışataki değerin hesabı nasıl yapılıyor benim anlatmak istediklerimi anlamışsınızdır umarım sizin kaynakalrı indirdim ancak fazla birşey çıkaramadım benzetme yaptım ısı ile olan adc cevrimini yine uyarlayamadım

    TRISA=%00000001
    TRISB=0
    TRISC=0
    TRISD=0
    @ DEVICE pic16F877
    @ DEVICE pic16F877, WDT_on
    @ DEVICE pic16F877, PWRT_ON
    @ DEVICE pic16F877, PROTECT_OFF
    @ DEVICE pic16F877, XT_OSC

    DEFINE ADC_BITS 10
    DEFINE ADC_CLOCK 3
    DEFINE ADC_SAMPLEUS 100

    ADCON1=%10001110

    ALGI var word
    SYMBOL LED=PORTC.2
    BASLA:
    ADCIN 0,ALGI

    BAK: IF ADCON0.2=1 THEN
    HIGH LED
    ENDIF
    PAUSE 50
    GOTO BASLA