
Merhaba Arkadaşlar,
STM32F429 Discovery ADC uygulaması hakkında bilgi vereceğiz.İlk önce biraz ADC’den bahsedelim.ADC’nin açılımı,Analog Dijital Converter’dır.
Çevremize baktığımızda bir çok fiziksel büyüklük var.Sıcaklık,basınç,ışık şiddeti,basınç,ağırlık vb. örnekler verilebilir.Bu büyüklükler analog veri üretmektedir.Bu verileri mikrodenetleyicimizde kullanabilmemiz için,dijital formata dönüştürmemiz gerekmektedir.Bunun içinde ADC modulü kullanılmaktadır.STM32F429 Discovery 3 adet ADC’ye sahiptir.Her ADC’nin de kendine ait channellerı mevcuttur.Bu uygulamada,ADC1’in Channel0’ı kullanılmıştır.Bu da,STM32f429 Discovery’nin PA0 nolu pinidir.
STM32F429 Discovery ADC ile daha detaylı bilgiye buradan ulaşabilirsiniz.
STM32F429 Discovery –10K Potansiyometre Bağlantısı
Potansiyometrenin 3 ucu vardır.Ortadaki uç,STM32F429 Discovery’nin PA0 no’lu ucuna bağlanmaktadır.Kalan iki ucundan biri 3 volta,diğeri toprağa bağlanmıştır.Videoda da uygulamalı olarak gösterilmiştir.
Kullanılan Malzemeler
-STM32F429 Discovery
-10k Potansiyometre
-Bread Board
-Jumper Kablolar
Keil ile Yazılmış Kodlar
[php]
#include "stm32f4xx.h"
#include "stm32f4xx_spi.h"
#include "defines.h"
#include "tm_stm32f4_ili9341_ltdc.h"
#include "tm_stm32f4_fonts.h"
#include "tm_stm32f4_delay.h"
#include "tm_stm32f4_adc.h"
#include "tm_stm32f4_disco.h"
#include <stdio.h>
int main(void) {
char str[15];
int a;
SystemInit();
TM_DELAY_Init();
TM_ILI9341_Init();
/*PA0 */
TM_ADC_Init(ADC1, ADC_Channel_0);
TM_ILI9341_Rotate(TM_ILI9341_Orientation_Landscape_2);
while (1) {
a=TM_ADC_Read(ADC1, ADC_Channel_0);
if (5000>a && 3200<a ) {
TM_ILI9341_Fill(ILI9341_COLOR_RED);
} else if (3200>a&& 2400<a ) {
TM_ILI9341_Fill(ILI9341_COLOR_BLUE2);
}
else if (2400>a && 1600<a ) {
TM_ILI9341_Fill(ILI9341_COLOR_BLUE);
}
else if (1600>a && 800<a ) {
TM_ILI9341_Fill(ILI9341_COLOR_GREEN);
}
else if (800>a && 0<a ) {
TM_ILI9341_Fill(ILI9341_COLOR_GREEN2);
}
sprintf(str, "%4d",a);
TM_ILI9341_Puts(130, 175,str, &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_WHITE);
TM_ILI9341_Puts(80, 150,"ADC UYGULAMASI", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_WHITE);
TM_ILI9341_Puts(70, 200,"www.roboturka.com", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_WHITE);
Delayms(100);
}
}
[/php]
mustafa
15 Ağustos 2015 at 12:49
proje dosyası varsa paylaşabilir misiniz
Bilal Kaya
15 Ağustos 2015 at 13:35
Bu çalışma için proje dosyalarını paylaşmamıştım.Ama siz kendiniz de oluşturabilirsiniz.Daha önce paylaştığımız park sensörü uygulmasındaki dosyaları indirerek,onlar üzerinde gerekli kütüphaneleri ekleyerek dosyanızı kendiniz oluştrabilirsiniz.Eğer proje dosyası nasıl oluşturulur hakkında sorularınız varsa,paylaştığımız proje dosyası nasıl oluşturulur videosunu izleyebilirsiniz
Mehmet Can ÖZTÜRK
25 Nisan 2020 at 13:37
Merhaba benim bir sorum olucaktı, discovery üzerindeki beslemeleri kullanmadan dışardan bir beslemeyle aynı uygulama yapılamıyor bunun sebebini açıklar mısınız ?