C# ile termometre

Başlatan thenorthstar, 29 Aralık 2014, 22:40:19

thenorthstar

Merhaba Arkadaşlar,
Pic ile okudum sıcaklık bilgisini c# da bir türlü gösteremedim bu konuda yardımcı olabilir misiniz?
Nerde yanlışlık yaptığımı bulamadım. c# programında değerler hep değişiyor.
LCD ekranda 25.5 görüyorum fakat C# programında bazen 255 , bazen 25 bazen 55 bazen 5 gibi değerler görüyorum.

Bu şekilde seriport dan sıcaklık veya voltaj okuma ile ilgili örnek programınız varmı?

CCS:
#include "data.h"

#int_TIMER1
void timer1_isr()  
{
   Timer1Counter++;
   if (Timer1Counter == 5) 
      {
         Timer1Counter = 0;
         sure=1;
         set_timer1 (11161);
      }
}      
void main()
{
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
   set_timer1 (11161);
   setup_adc(adc_clock_div_32); 
   setup_adc_ports(AN0);
   enable_interrupts (INT_TIMER1);
   enable_interrupts(GLOBAL);
   
lcd_init();

unsigned long int bilgi; 
float voltaj,sicaklik; 
printf(lcd_putc,"\f");

    
    while (1)
       {
 //=============ADC OKUMA==========================
         set_adc_channel(0);
         delay_us(20);
		 bilgi=read_adc();
		 voltaj=(0.0048828125*bilgi)*1000;
		 sicaklik=(voltaj/10)+2;
 //************************************************

              lcd_gotoxy(1,1);printf(lcd_putc,"T=%3.1f'C",sicaklik);  //voltaj bilgisini göster...
              if (sure==1)
              {
              printf("%3.0f",sicaklik);
              sure=0;
              Timer1Counter = 0;
              }
      }
}


C#;
        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                DataReceive = serialPort1.ReadExisting();
                Invoke(new EventHandler(DisplayText));
            }
        }

       private void DisplayText(object sender, EventArgs e)
          {
                    Display.Value = DataReceive;
                    textBox1.Text = DataReceive.ToString();
                        return;
          }






Kabil ATICI

Sen bu sıcaklık çevirmesini işlemcide yapıp bilgisayara string olarak gönderiyorsun. Ben farklı yapmıştım. Ham veriyi 2 parçaya ayırıp hesap işini bilgisayarda yapmıştım.
İşlemcide göstermeyecek olduktan sonra o işi işlemcide yapmanın bir anlamı yok.
http://elektronikvelemciler.blogspot.com.tr/2013/06/atmega8-ile-bluetooth-ve-ds1820.html
ambar7

thenorthstar

Teşekkür ederim .Devrede Lcd oldugu için sicaklik degerini LCD de göstermem gerekiyor du  o yüzden işlemci icerisinde yapmıştım.

Zek_De

Seri iletişim ile gelen sıcaklık verileri sabit kalmıyor , 23 25 30 vs takılıyor,bunu halleden arkadaş varmı?