akay989
Üye
- Katılım
- 23 Eyl 2013
- Mesajlar
- 78
- Puanları
- 1
- Yaş
- 36
Merhaba arkadaslar ccs c dilinde sicaklik termostat devresi hazirliyorum.
Sorun sicaklik set kismina atadigim i degiskeni butona bastigimda 4 er 4 er artiyor i++
i-- durumunda ise ekran da anlamsiz yazilar cikip sapitiyor ne yaptiysam sonuca ulasamadim yarimlarinizi bekliyorum..
int sicaklik,nem,eskinem,eskisicaklik; //kullanilan degiskenleri tanimladik float olarak tanimlasaydik 10dalik olarak deger alirdik int bize kusurat vermiyor
Sorun sicaklik set kismina atadigim i degiskeni butona bastigimda 4 er 4 er artiyor i++
i-- durumunda ise ekran da anlamsiz yazilar cikip sapitiyor ne yaptiysam sonuca ulasamadim yarimlarinizi bekliyorum..
Kod:
//LCD module connections
#define LCD_RS_PIN PIN_B1
#define LCD_RW_PIN PIN_B2
#define LCD_ENABLE_PIN PIN_B0
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
//End LCD module connections
#define LED1 PIN_A0
#define LED2 PIN_A1
#define ASAGI PIN_E0
#define YUKARI PIN_E2
#include <16F877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock = 4M)
#include <lcd420.c>
#define DHT11 PIN_C3 // Connection pin between DHT11 and mcu
#include "dht11.c"
int sicaklik,nem,eskinem,eskisicaklik; //kullanilan degiskenleri tanimladik float olarak tanimlasaydik 10dalik olarak deger alirdik int bize kusurat vermiyor
Kod:
int8 i=0;
void main()
{
lcd_init(); // lcd yi calistirdik
lcd_gotoxy(4,1);
printf(lcd_putc,"DHT11 DENEME");
lcd_gotoxy(4,2);
printf(lcd_putc," CALISMASI");
delay_ms(3000);
lcd_gotoxy(4,3);
printf(lcd_putc,"PROJECT ENGINEER");
lcd_gotoxy(10,4);
printf(lcd_putc, "Akay AYDIN");
delay_ms(7000);
lcd_putc("\f");
while(TRUE) // while(1) olarak da tanimlayabilirdik
{
read_DHT(); // DHT11 in okunmasi icin gereken fonksiyon
delay_ms(1000);
sicaklik = dht_dat[2]; // dht_dat[2] degiskeni bize sicaklik bilgisini verir bu bilgiyi sicaklik olarak tanimladigimiz degiskene atiyoruz
nem = dht_dat[0]; // dht_dat[0] degiskeni bize nem bilgisini verir bu bilgiyi nem olarak tanimladigimiz degiskene atiyoruz
if (eskisicaklik!=sicaklik) // ekranin sadece sicaklik degistiginde yenilenmesi icin 2. degisken ile karsilastiril"masi. eger degisim var ise ekranin yenilenmesi
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Sicaklik : %i C ",sicaklik); // ekrana sicaklik degiskeninin yazdirilmasi float kullansaydik "sicaklik: %3.1f derece"
eskisicaklik=sicaklik; //ekranin sadece sicaklik degistiginde yenilenmesi icin 2. bir degisken atiyoruz
}
if (eskinem!=nem) // ekranin sadece nem degistiginde yenilenmesi icin 2.degisken ile karsilastirilmasi. eger degisim var ise yenilenmesi
{
lcd_gotoxy(1,2);
printf(lcd_putc, "Nem : %% %i", nem); //ekrana nem degiskeninin yazdirilmasi
eskinem=nem; // ekranin sadece nem degistiginde yenilenmesi icin 2.bir degisken atiyoruz
}
delay_ms(500);
IF(input(YUKARI)==1)
{
output_high (LED1);
delay_ms(500);
output_low (LED2);
lcd_gotoxy(1,3);
printf(lcd_putc,"SICAKLIK SET=%d ",i);
i=i+1;
}
IF(input(ASAGI)==1)
{
output_low (LED1);
delay_ms(500);
output_high (LED2);
printf(lcd_putc,"SICAKLIK SET=%d ",i);
i=i-1;
}
}
}
Moderatör tarafında düzenlendi: