selam arkadaşlar. kendimce birşeyler yapmaya çalışıyorum elimdeki kitaptan yararlanarak. yapamadım yardımınıza ihtiyacım var. bu programda yanlışlık varmı? sensörü taktığımda sürekli 6.8gösteriyor teşekkürler
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#define use_portb_lcd TRUE
#include <lcd.c>
unsigned long int ham;
float voltaj,sicaklik;
void main()
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
setup_adc(adc_clock_div_32); // ADC clock frekansı internal RC
setup_adc_ports(AN0); // Tüm AN girişleri analog
lcd_init();
set_adc_channel(0);
delay_us(20);
printf(lcd_putc,"\fSicaklik=");
while(1)
{
delay_ms(50);
output_b(0x00);
ham=read_adc();
delay_ms(200);
output_b(0x00);
voltaj=(0.0048828125*ham)*1000;
sicaklik=(voltaj/10)+2;
lcd_gotoxy(10,1);
printf(lcd_putc,"%5.1f'C",sicaklik);
delay_ms(200);
output_high(pin_b0);
}
}
Ben forumda LM35 ile ilgili kod yayınlamdım. Forumda aratma yaparsanız göreceksiniz.
Selamlar
Benim ilk eksik gördüğüm satır adc nini kaç bitlik olduğunu ifade eden satır, önem derecesini bilmiyorum ama siz yine de koyun.
#device adc=10 e benzer bir satırı atlamış olmayasınız?
Hep 6.8 gösteriyorsa demek ki ham hep 10, ilginçlik burda başlıyor. Sıcaklıktan önce lcd ye ham ın değerini bastırın ve de sensör yerine bir pot bağlayıp adc okumanızın sağlık olup olmadığını bir test edin. Ondan emin olduktan sonra sıcaklığı gösterirsiniz.
Epey uzun rakamlar yazılmış, sensörünüzün döndürdüğü gerilim değeriyle sıcaklık arasında basit bir bağlantı olması lazım, bunlar üzerine biraz düşünerek kodunuzu güncellemeniz daha iyi olabilir.
#device adc=10 bildiriminden sonra
voltaj=(ham*5)/1024; satırı size doğru voltaj değerini verecektir.
Şurda (http://www.fatiherdem.net/robot/adc.rar)örnek bir ADC uygulaması var. İyi çalışmalar, kolay gelsin.
Alıntı yapılan: "ferdem"Benim ilk eksik gördüğüm satır adc nini kaç bitlik olduğunu ifade eden satır, önem derecesini bilmiyorum ama siz yine de koyun.
#device adc=10 e benzer bir satırı atlamış olmayasınız?
Hep 6.8 gösteriyorsa demek ki ham hep 10, ilginçlik burda başlıyor. Sıcaklıktan önce lcd ye ham ın değerini bastırın ve de sensör yerine bir pot bağlayıp adc okumanızın sağlık olup olmadığını bir test edin. Ondan emin olduktan sonra sıcaklığı gösterirsiniz.
Epey uzun rakamlar yazılmış, sensörünüzün döndürdüğü gerilim değeriyle sıcaklık arasında basit bir bağlantı olması lazım, bunlar üzerine biraz düşünerek kodunuzu güncellemeniz daha iyi olabilir.
#device adc=10 bildiriminden sonra
voltaj=(ham*5)/1024; satırı size doğru voltaj değerini verecektir.
Şurda örnek bir ADC uygulaması var. İyi çalışmalar, kolay gelsin.
teşekkürler hocam çok yardımcı oldunuz. arslan kardeş sanada çok tşeekkürler. senin koda rast geldim arama yaparak ama istediğimi bulamadım yada benim gözümden kaçtı. teşekkürler.