top of page

Pico ADC Okuma Uygulaması #3

Yazarın fotoğrafı: Kadir ÜnverKadir Ünver

Güncelleme tarihi: 3 Nis 2023




Merhaba arkadaşlar bugün Raspberry pi pico ile ADC okuması nasıl yapılır onu öğreneceğiz. Analog değeri almak için klasik olarak kullanılan potansiyometreyi kullanacağız.


ADC OKUMA NEDİR ?


ADC okumasından kast ettiğimiz analog to digital converter yani analog olarak aldığımız verilerin digital karşılığını bulacağız.


ADC okuması çok önemli bir konudur çünkü neredeyse çoğu sensor analog veri alır fakat mikrodenetleyici analog verileri anlayamaz ve bizim analog değerleri digital değerlere çevirmemiz gerekiyor.



ADC değer aralığı mikrodenetleyiciler arasında değişkenlik gösterir. Mesela arduino 10 bitlik bir veri çözünürlüğü olduğu için ADC değer aralığı 2 üzeri 10 dan 1024 eder yani analog okuyacağımız minumum değer 0 ve maksimum değer 1024 - 1 den 1023 tür.


Raspberry pi pico 12 bit veri çözünürlüğüne sahiptir. Ancak Pico’yu MicroPython ile programladığımızda sonuç olarak 16 bit çözünürlük elde ederiz. Aslında, MicroPython ADC kütüphanesinde 12-bit çözünürlüğü 16-bit çözünürlüğe ölçeklendirdiler, bu nedenle 4096 (yani 2^12) yerine 65535 (yani 2^16) maksimum ADC değeri alacağız.


NOT :

Raspberry pi pico nun içindeki buck regületürünün iyi olmaması ve potansiyometreden kaynanklanan parazitlerden dolayı tam 0 ve 65535 değerini okuyamamız normaldir. Nerede hata var diyip kendinizi üzmenize gerek yok. Bu bizle alakalı bir problem değildir :) .Düzgün bir okuma için lineer bir kaynaktan 3.3v ile besleyebilirsiniz.



Gerekli Malzemeler


1) Raspberry pi pico

2) Potansiyometre

3) Bread bord

4) Jumper Kablo


DEVRE ŞEMASI




KOD


from machine import  ADC            
import time
pot= ADC(26)           

while True:
        okuma = pot.read_u16()   
        print(okuma)                   
        sleep(1)

pot= ADC(26)     

26 numaralı pinin başına ADC yazarak bu pini ADC olarak kullanmak istiyorum demiş oluyoruz. Bu değeri pot değişkenine atamış olduk.

        okuma = pot.read_u16()   

read_u16() fonsiyonunu analog değeri okumak için yazmak zorundayız. Bu değeri okuma adlı değişkene atamış olduk. Direkde yazdırabilirsiniz ama değişkene atamak daha kullanışlı olacaktır. İlerleyen zamanlarda daha karmaşık kod yazdığımız zaman çağırmamız daha kolay olacaktır.

        print(okuma)  

print fonksiyonu ile okuduğumuz değeri ekrana yazdırmış olduk.



Peki biz bu okuduğumuz değerin mikrodentleyicinin anladığı karşılığı nedir diye merak edersek?


Küçük bir matematik işlemi ile bunu öğrenebiliriz.


Mikrodenetleyicimizin çıkış voltajı 3.3 voltur ve okuduğumuz maksimum değer 65535 volttur.


Oran orantı hesabından okuduğumuz değeri 3.3 ile çarpıp 65535 değerine bölersek okuduğumuz değerin voltaj deşerinden karşılığını bulmuş olacağız.


        okuma = pot.read_u16()*3.3 / 65535  

Tek yapmamız gereken okuma yaptığımız satırıcı üsteki şekilde güncellemek olacaktır.








Comments


SUBSCRIBE VIA EMAIL

  • Facebook
  • LinkedIn
  • Twitter
  • Instagram

Thanks for submitting!

© 2035 by Salt & Pepper. Powered and secured by Wix

bottom of page