ARM – Not4: STM32F4DISCOVERY Dahili Sıcaklık Sensörü.

Yayınlandı: 11 Ocak 2014 / ARM STM32F4DISCOVERY Programlama...
Etiketler:, , , , , ,

AdsızStm32f407 mikrodenetleyicisi içerisinde dahili sıcaklık sensörü bulunmaktadır. Bu sensör işlemcinin analog-dijital çevirici biriminin 16. kanalına bağlı bulunmaktadır. Aynı kanal istenilirse işlemcinin Vbat ucuna da yazılımsal olarak bağlanıp, tasarladığımız sistem batarya ile çalıştırılıyorsa, batarya gerilimini ölçmek için de kullanılabilir.  Sıcaklık sensörünün analpg dijital çeviricinin 1. kanalına bağlanabilmesi için ADC_CCR kaydedicisinin TSVREFE isimli bitinin set edilmesi gereklidir.  Bu uygulamada sensörden okunan değer USB Hid kütüphanesi kullanılarak PC’ye gönderilecek ve derleyicinin tools sekmesi altında bulunan hid terminalden gözlemlenebilecektir.

STM32f407 mikrodenetleyicisinin referans manueli incelenirse, sıcaklık sensöründen okunan değerin hesaplanabilmesi için bir formül verildiği görülür. Bu formülde katsayı değerleri yerine konulduğunda aşağıdaki hali alır;

Voltage = (VolADC * 3300) / 4095;
temp = ((Voltage - 760) / 2.5) + 25;

Yukarıdaki bilgiler ışığında kodlarımızı yazalım.

int okunan,Voltage,temp,ort;
long toplam;
char cnt;

char readbuff[64];
char writebuff[64];
char binler,yuzler,onlar,birler ;

void main() {
HID_Enable(&readbuff,&writebuff);
ADC1_Init();
ADC_CCR.TSVREFE=1;
while(1)
 {
 for(cnt=0;cnt<100;cnt++)
 {
 okunan=ADC1_Read(16);
 toplam+=okunan;
 delay_ms(5);
 }
 ort=toplam/100;
 toplam=0;
 Voltage = ((long)ort * 3300) / 4095;
 temp = ((Voltage - 760) / 2.5) + 25;

onlar=((temp/10)%10)+48;
 birler=(temp%10)+48;

 writebuff[0]=onlar;
 writebuff[1]=birler;
 writebuff[2]='°';
 writebuff[3]='C';
 writebuff[4]='\r';
 writebuff[5]='\n';
 HID_Write(&writebuff,64);
 }

}
void kesme() iv IVT_INT_OTG_FS ics ICS_AUTO {
USB_Interrupt_Proc();
}

Sıcaklık, celcius cinsinden tamsayı şeklinde gösterilmiştir.
Aşağıda hid terminal aracının ekran görüntüsü görülebilir.

Adsız

Projeyle ilgili dosyalara buradan ulaşabilirsiniz..

Devam edecek…

yorum
  1. Kerem dedi ki:

    HID Terminalde dahili sıcaklık sensörü diye bir device görünmüyor. Doğrudan proje dosyalarınızı indirip değişiklik yapmadan yazdırdım.

  2. burak dedi ki:

    bu kodları yazıp derledikten sonra demo limit hatası veriyor bu sorunu nasıl aşabilirim

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s