16f877 adc yardim..

magi8503

Üye
Katılım
25 Ağu 2008
Mesajlar
23
Puanları
1
Yaş
39
Slm arkadaŞlar...16f877 de analog dİjİtal dÖnÜŞÜmÜ yaparken voltaji daha fazla bÖlmek İstİyorum..yanİ ÖrneĞİn 5 voltu 4 e bÖlÜyor ve her 1.25 voltta dİjİtal ÇikiŞ deĞİŞİyor..mesela portb den ÇikiŞimi aliyorum..1.24 voltta 0 ,,1.25 de 1,,1.50 de 2,,1,75 de de 3h sayisini aliyorum...yanİ demek İstedİĞİm mesela her 0.5 voltta ÇikiŞi deĞİŞtİrebİlİrmİyİm...deĞİŞtİremessem bu pİc İn ÖzellİĞİmİ?..fosc yi değiştirdim fayda etmedi..
 
5 voltu 4 e değilde 8 e bölüp, her bir dilimde başka şey yapayım diyorsan yazılımı değiştireceksin. Yok 2.5 voltu 4 e böleyim diyorsan (ve 2.5 volt üstünü vermeyecek isen) bir şansın olabilir. Eğer ADC refransını internal almamış ise yani Vref+ hariçten verilmiş ise onu 2.5 Volta indirmen yerelidir. İçerden alınmış ise şansın yok, yazılımla düzelteceksin.

Program kilitli olmayabilir, okutmayı dene.
 
yazılım üzerinde oynadım ama değişen bişey olmadı...Vref+ ı kullanmayı biliyorum ordan istediğimz voltaj aralığını belirleyebiliryoruz..dediiin gibi 8 e 16 ya bölmke istiyorum
 
ADRESH ve ADRESL 'i kullanarak değerinizi tespit ediyorsunuz sanırım.

En basit haliyle deger = (ADRESH * 256+ADRESL)/200; ve PORTX = deger; ile 5V luk kaynak gerilimini 1 V hassasiyette portta görebilirsiniz 200 değilde 400 alırsanız 0,5 V ta 1 -- 1 V ta 2 -- 5V ta 10 u porta gönderebilirsiniz. Tabi bu basit uygulamalarda kullanabileceğiniz bir örnek.
Kolay Gelsin.
 
teorik olarak; ADC çözünürlüğü 10 bit olduğu için, yani bu da desimal olarak 1024 basamak demektir. ADC giriş değerini (Referansa bağlı olarak) 1024 e bile bölebilirsiniz. fakat şunu anımsamak gerekir; ADC referans girişi malesef belirli bir gerilim aralığında olmalıdır. Yani ADC referans gerilimini 1v yapamayız. bu değerler ve histerisizi ilgili pic lerin pdf dosyalarında belirtilmiştir.

Bu bilgiler ışığında, geriye kalan sadece program içinde kıyaslama sayısını artırmak ve programa ilavelerle değişiklik yapmaktır.
 
magi8503 ' Alıntı:
yazılım üzerinde oynadım ama değişen bişey olmadı...Vref+ ı kullanmayı biliyorum ordan istediğimz voltaj aralığını belirleyebiliryoruz..dediiin gibi 8 e 16 ya bölmke istiyorum
Yazılımı okutup siz mi disassemble ettiniz yoksa kaynak kodları mevcut assembly, c, basic ile mi yazılmış? Kodu görmeden bir şey söylemek zor. Eğer c veya basicte yazılmış ise işin çok kolay olur.
 
ben disassebley yaptım...c veya basic kullanmadım normal komutlarla yazdım...arkadaşta saolsun bişeyler anlatmış..fakat nerde nasıl kullanacağımı tam kestiremiyorum..
 
c'de yazılmıs code istersen gönderebilirim arkadasım. 10 bit adc yani analog voltajını 1024 e bölüyor.
 
...Yani ADC referans gerilimini 1v yapamayız. bu değerler ve histerisizi ilgili pic lerin pdf dosyalarında belirtilmiştir...

DS30292C-page 174 , TABLE 15-12
Kod:
A21 VREF+ Reference voltage High   AVDD - 2.5V     AVDD     + 0.3V V
A22 VREF- Reference voltage low    AVSS - 0.3V     VREF+     - 2.0V V
A25 VAIN  Analog input voltage     VSS  - 0.3 V    — VREF   + 0.3 V V

LF serisi bir MCU kullanmamiz durumunda teorik olarak Vref+ yi 500mv olarak verebilmemiz mumkun gorunuyor. Yanildigim/atladigim bir nokta var ise ogrenmek isterim.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…