Gomulu Sistemler 1 dakika okuma

STM32 ADC ile Analog Sinyal Okuma

STM32 ADC modulu ile analog sinyaller okuma ve DMA kullanimi.

E
Emre Cihan
· · 15 görüntüleme

ADC Neden Onemli

Gercek dunya analog sinyallerle doludur. ADC bu kopruyu kurar.

Temel Kullanim

uint16_t ADC_Oku(void) {
    HAL_ADC_Start(&hadc1);
    HAL_ADC_PollForConversion(&hadc1, 100);
    uint16_t v = HAL_ADC_GetValue(&hadc1);
    HAL_ADC_Stop(&hadc1);
    return v;
}

float ADC_Voltaj(uint16_t ham) {
    return (ham * 3.3f) / 4095.0f;
}

DMA ile Surekli Okuma

uint16_t tampon[4];
HAL_ADC_Start_DMA(&hadc1, (uint32_t*)tampon, 4);
// tampon[] surekli guncellenir, CPU mesgul olmaz

Hareketli Ortalama

#define N 16
uint16_t ornekler[N];
uint8_t idx = 0;

uint16_t ortalama(uint16_t yeni) {
    ornekler[idx++ % N] = yeni;
    uint32_t toplam = 0;
    for (int i = 0; i < N; i++) toplam += ornekler[i];
    return toplam / N;
}

NTC Termistor

float ntc_sicaklik(uint16_t adc) {
    float v   = ADC_Voltaj(adc);
    float r   = 10000.0f * v / (3.3f - v);
    float lnr = logf(r / 10000.0f);
    return 1.0f/(0.001129f + 0.000234f*lnr + 0.0000000877f*lnr*lnr*lnr) - 273.15f;
}
Paylaş: Twitter / X
E
Emre Cihan
Sistem Yöneticisi · Maker · Elektronik Meraklısı

İlgili yazılar

Gomulu Sistemler
STM32 Nedir? ESP32'den Farkı ve Ne Zaman Tercih Edilmeli
4 dk
Gomulu Sistemler
I2C Nedir? Çoklu Sensör Bağlantısında Neden Tercih Edilir?
4 dk
Gomulu Sistemler
RS485 Nedir? Endüstriyel Haberleşmede Neden Hâlâ Kullanılıyor?
4 dk
Gomulu Sistemler
MQTT Nedir? IoT Projelerinde Neden Bu Kadar Popüler?
4 dk