Raspberry Pi, birçok harika projeyi gerçekleştirebilen küçük bir bilgisayardır, bu nedenle birçok meraklı ve teknoloji tutkununun favorisi olmaya devam etmektedir. Ancak, bu harika makine bile mükemmel değildir. Günümüzdeki diğer minicontroller veya MCU’ların aksine, Raspberry Pi’nin yerleşik bir Analogdan Dijitale Dönüştürücü (ADC) devresi yoktur.

Bu nedenle, bu makalede Analogdan Dijitale Dönüştürücüler (ADC) hakkında konuşacağız ve umarım bu, projelerinizde size yardımcı olur!
Kapsanacak konular:
- Raspberry Pi Analogdan Dijitale Dönüştürücüler (ADC) Genel Bakış
- Raspberry Pi ADC için Öneriler
- Raspberry Pi ADC Kurulumu
- Raspberry ADC ile Projeler
Raspberry Pi Analogdan Dijitale Dönüştürücüler (ADC) Genel Bakış
ADC’ler nedir?
ADC’ler, analog (sürekli, sonsuz değişken) sinyalleri dijital (kesirli zaman, kesirli genlik) sinyallere dönüştürmek için çalışır.
ADC, Analogdan Dijitale Dönüştürücüler için bir kısaltmadır, temelde bir analog girişi dijital bir girişi dönüştürür.

Daha fazla bilgi edinmek isterseniz, Analog ve Dijital sinyaller hakkında buraya tıklayın!
ADC’ler nasıl çalışır?
ADC’lerin arkasındaki konsepti anlamak için, önce ADC’lerin analog sinyalleri dijitale dönüştürürken bir sıra izlediğini bilmek gerekir.
ADC’ler hakkında dikkat edilmesi gereken 2 özellik vardır:
Örnekleme Hızı (Frekans)
- ADC’nin hızına bağlıdır.
- Dönüştürücü türüne ve gereken hassasiyete bağlıdır.
- Saniyedeki örnek sayısı ile ölçülür.

Örnekleme hızı için denklem:
fs = 1/T
Burada,
fs = Örnekleme Hızı/Frekans
T = Örnekleme süresi veya bir sonraki örnekleme için geçen süre.
Çözünürlük
- Bit uzunluğu ile belirlenir.
- Çözünürlük, hem bit uzunluğuna hem de referans voltajına bağlıdır.

Toplam çözünürlük için denklem:
Adım Boyutu = VRef/N
Burada,
Adım Boyutu = Voltaj cinsinden her seviyenin çözünürlüğü
VRef = Voltaj referansı (voltaj aralığı)
N = ADC’nin toplam seviye boyutu.
ADC’ler neden gereklidir?
Başlangıçta belirtildiği gibi, Raspberry Pi analog girişleri okuyamaz. Bu nedenle, ADC’ler analog girişleri çıkışlara dönüştürmek için kullanışlıdır, bu da Pi’nin analog dostu olmasına yardımcı olur.
Şimdi bir Raspberry Pi ADC almak ister misiniz? Seeed’in sunduğu bazı seçenekleri göstereceğiz!
Raspberry Pi ADC için Öneriler
ADC’nin bazı arka planını inceledikten sonra, şimdi Raspberry Pi ile uyumlu ADC’leri göstereceğiz! Bugün, 2 ürün önereceğiz. Umarım projenize uygun bir tane bulabilirsiniz!
Raspberry Pi için 8 Kanal 12 Bit ADC (STM32F030) ($9.90)

Bu ürün, STM32F030 tabanlı 8 kanallı bir ADC’dir, tüketici ürünleri ve sıcaklık ölçümü için mükemmeldir. Ayrıca maliyet etkin, düşük güç tüketen bir ARM Cortex M0 MCU’dur!
Özellikler:
- Raspberry Pi 3B/3B+/4 desteği
- CRC hesaplama birimi
- 5 kanallı doğrudan bellek erişimi (DMA) denetleyici
- Seri tel hata ayıklama (SWD)
- Alarm ve duraklama/standby’den periyodik uyanma ile takvim RTC
- Gerçek zamanlı saat (RTC)
- Zamanlayıcılar:
- Gelişmiş kontrol zamanlayıcısı
- Genel amaçlı zamanlayıcılar & Temel zamanlayıcılar
- Bağımsız ve sistem izleme zamanlayıcıları
- SysTick zamanlayıcısı

Daha sonra bu ADC’yi Raspberry Pi ile nasıl kuracağımızı göstermek için kullanacağız!
Raspberry Pi için 4 Kanal 16 Bit ADC (ADS1115) ($10.95)

Bu ürün, Texas Instruments’ın ADS1115 tabanlı 4 kanallı bir ADC’dir, taşınabilir ölçüm aletleri ve pil izleme vb. için mükemmeldir. Ayrıca entegre analog Grove konektörleri ile kompakt bir Raspberry Pi Zero form faktörüne sahiptir!
Özellikler:
- Raspberry Pi 3B/3B+/4 desteği
- Geniş besleme voltajı aralığı
- I2C uyumlu seri arayüz
- İki diferansiyel veya dört tek uçlu girişi sağlayan giriş çoklayıcı (MUX).
- Programlanabilir veri hızı: 8SPS’den 860SPS’ye
- Programlanabilir karşılaştırıcı
- İçsel PGA
- İçsel düşük kaymalı voltaj referansı
- İçsel osilatör
- Düşük akım tüketimi:
- Sürekli Mod: Sadece 150μA
- Tek Atım Modu: Otomatik Kapatma

Raspberry Pi ADC Kurulumu
Bir Raspberry Pi ADC satın aldınız ama nasıl kullanacağınızı bilmiyor musunuz? Endişelenmeyin! Raspberry Pi ADC’nizi nasıl kuracağınızı göstereceğiz!
İhtiyacınız olanlar:
- Raspberry Pi (3B/3B+/4)
- Raspberry Pi için 12-Bit 8 Kanal ADC (STM32F030)
- USB Kablosu
Gerekli her şeyi topladıktan sonra, aşağıdaki adımları takip edebilirsiniz:
Donanım
Adım 1: Raspberry Pi için 8 Kanal 12 Bit ADC’yi Raspberry Pi’ye takın.
Adım 2: Raspberry Pi’yi USB kablosu ile PC’ye bağlayın.
Yazılım
Adım 1: grove.py kütüphanesini klonlayarak kaynak dosyayı indirin.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
Adım 2: grove.py kütüphanesini kurun.
cd grove.py
# Python2
sudo pip install .
# Python3
sudo pip3 install .
Adım 3: Aşağıdaki komutları çalıştırarak kodu çalıştırın.
cd grove.py/grove
python adc_8chan_12bit.py
Aşağıdaki kod, adc_8chan_12bit.py kodudur.
import time
from grove.i2c import Bus
ADC_DEFAULT_IIC_ADDR = 0X04
ADC_CHAN_NUM = 8
REG_RAW_DATA_START = 0X10
REG_VOL_START = 0X20
REG_RTO_START = 0X30
REG_SET_ADDR = 0XC0
class Pi_hat_adc():
def __init__(self,bus_num=1,addr=ADC_DEFAULT_IIC_ADDR):
self.bus=Bus(bus_num)
self.addr=addr
#tüm ham adc verilerini al, maksimum değer 4095'tir, çünkü bu 12 Bit ADC'dir
def get_all_adc_raw_data(self):
array = []
for i in range(ADC_CHAN_NUM):
data=self.bus.read_i2c_block_data(self.addr,REG_RAW_DATA_START+i,2)
val=data[1]<<8|data[0]
array.append(val)
return array
def get_nchan_adc_raw_data(self,n):
data=self.bus.read_i2c_block_data(self.addr,REG_RAW_DATA_START+n,2)
val =data[1]<<8|data[0]
return val
#tüm verileri mv birimiyle al.
def get_all_vol_milli_data(self):
array = []
for i in range(ADC_CHAN_NUM):
data=self.bus.read_i2c_block_data(self.addr,REG_VOL_START+i,2)
val=data[1]<<8|data[0]
array.append(val)
return array
def get_nchan_vol_milli_data(self,n):
data=self.bus.read_i2c_block_data(self.addr,REG_VOL_START+n,2)
val =data[1]<<8|data[0]
return val
#tüm veri oranlarını al, birim 0.1%'dir
def get_all_ratio_0_1_data(self):
array = []
for i in range(ADC_CHAN_NUM):
data=self.bus.read_i2c_block_data(self.addr,REG_RTO_START+i,2)
val=data[1]<<8|data[0]
array.append(val)
return array
def get_nchan_ratio_0_1_data(self,n):
data=self.bus.read_i2c_block_data(self.addr,REG_RTO_START+n,2)
val =data[1]<<8|data[0]
return val
ADC = Pi_hat_adc()
def main():
raw_data=ADC.get_all_adc_raw_data()
vol_data=ADC.get_all_vol_milli_data()
ratio_data=ADC.get_all_ratio_0_1_data()
print("her kanal için ham veri:(1-8kanal)(12 bit-maks=4096):")
print(raw_data)
print("her kanal için voltaj:(birim:mv,maks=3300mv):")
print(vol_data)
print ("her kanal için oran(birim 0.1%,maks=100.0%):")
print(ratio_data)
print(" ")
print("DUYURU!!!:")
print("ADC PIN'in varsayılan ayarı floating_input'tır.")
print(" ")
if __name__ == '__main__':
main()
Artık hata yoksa, böyle görünmelidir!
pi@raspberrypi:~/grove.py/grove $ python adc_8chan_12bit.py
her kanal için ham veri:(1-8kanal)(12 bit-maks=4096):
[2177, 2098, 2064, 2038, 2127, 2066, 2172, 2145]
her kanal için voltaj:(birim:mv,maks=3300mv):
[1599, 1741, 1668, 1658, 1644, 1787, 1694, 1677]
her kanal için oran(birim 0.1%,maks=100.0%):
[521, 544, 514, 504, 500, 559, 524, 505]
DUYURU!!!:
ADC PIN'in varsayılan ayarı floating_input'tır.
Raspberry Pi ADC kullanma konusunda hala belirsizlik mi var? İşte size yardımcı olacak bir örnek:
İhtiyacınız olanlar (şu anda belirtilen öğeler dahil):
Donanımınızı nasıl bağlayacaksınız:
Adım 1: Raspberry Pi için 8 Kanal 12 Bit ADC’yi Raspberry Pi’ye takın.
Adım 2: Grove – Ses Sensörünü ADC modülünün A0 portuna bağlayın.
Adım 3: Raspberry Pi’yi USB kablosu ile PC’ye bağlayın.
Şu şekilde görünmelidir:

Yazılım
Aşağıdaki komutu ++python grove_sound_sensor.py 0++ komut satırı arayüzünde yazın.
pi@raspberrypi:~/grove.py/grove $ python grove_sound_sensor.py 0
Ses algılanıyor...
Ses değeri: 433
Ses değeri: 342
Ses değeri: 443
Ses değeri: 300
Ses değeri: 632
Ses değeri: 258
Ses değeri: 591
Ses değeri: 267
Ses değeri: 871
^CTraceback (most recent call last):
File "grove_sound_sensor.py", line 67, in <module>
main()
File "grove_sound_sensor.py", line 64, in main
time.sleep(.3)
KeyboardInterrupt
Bu programdan çıkmak istediğinizde Ctrl + C tuşlarına basabilirsiniz. Ve işte Raspberry Pi ADC’nizi nasıl kuracağınız!
İşte daha fazla ayrıntı sağlayacak bazı yararlı bağlantılar:
- Datasheet STM32F030
- Raspberry Pi için 8 Kanal 12 Bit ADC (STM32F030) Eagle Dosyaları
- Raspberry Pi için 8 Kanal 12 Bit ADC (STM32F030) Yazılım Kütüphanesi
Raspberry Pi ADC ile Projeler
Raspberry Pi ADC’nizi nasıl kuracağınızı öğrendikten sonra, şimdi dışarıdaki proje denizini keşfetmeye hazırsınız!
Raspberry Pi ADC Eğitimi
Bu eğitim, Raspberry Pi’de hala yeniyseniz faydalı olacaktır, size Raspberry Pi ve devrelerin temellerini öğretir!
İhtiyacınız olanlar:
- Raspberry Pi (herhangi bir model)
- Raspberry Pi için 12-Bit ADC (STM32F030) (veya herhangi bir Raspberry Pi ADC)
- Bağlantı pinleri
- 220Ω veya 1KΩ direnç (17 adet)
- 10K potansiyometre
- 0.1µF kapasitör (2 adet)
- Bread Board
Bu proje hakkında daha fazla bilgi edinmek ister misiniz? Tıklayın burada!
Raspberry Pi ADC ile Flex Sensör Arayüzü
Raspberry Pi ADC’nize bir analog sensör bağlamak ister misiniz? Bu proje size nasıl yapılacağını gösterir!
İhtiyacınız olanlar:
- Raspberry Pi (herhangi bir model)
- Raspberry Pi için 12-Bit ADC (STM32F030) (veya herhangi bir Raspberry Pi ADC)
- 16*2 LCD ekran
- Flex Sensör
- Dirençler ve kapasitörler
- Breadboard veya perf board.
İlginç geliyor mu? Daha fazla bilgi edinmek için buraya tıklayın!
Raspberry Pi Basınç Pedini (FSR) Nasıl Kurulur

Kendi basınç ped sensörünüzü yapmak ister misiniz? Daha fazla aramayın! Bu proje, basıncı nasıl algılayacağınızı gösterir!
İhtiyacınız olanlar:
- Basınç Pedi
- Raspberry Pi (herhangi bir model)
- Raspberry Pi için 12-Bit ADC (STM32F030) (veya herhangi bir Raspberry Pi ADC)
- Breadboard
- Direnç
- Kapasitör
Tam size göre mi? Daha fazla bilgi edinmek için buraya tıklayın!
Özet
Ve Raspberry Pi ADC ile ilgili her şey bu kadar! Yeni bir şey öğrendiniz mi? ADC’nin temellerini, Raspberry ADC’nizi nasıl kuracağınızı ve denemeniz için bazı eğlenceli projeleri kapsadık! Umarım projeniz için uygun bir ADC bulmanıza yardımcı olabiliriz!
Önerilen Okumalar
Daha temel bilgiler için aşağıdaki ilgili okumaları kontrol edin!
- Bir elektrik devresinde neler olur: Voltaj vs Akım: Voltaj, akım ve elektrikle ilgili her şey için.
- Dirençler: Pull-up ve pull-down dirençler: Direnç ve dirençler hakkında bilmeniz gerekenler için.
- Elektronik Devre: Voltaj Bölücüleri: Devreler ve hesaplamalar için.
- Ölçüm Aletine Giriş: Multimetre Nedir?: Multimetre ve projeleriniz için bir tane edinme önerileri için.
