Pic c compiler

desifon

Üye
Katılım
4 Kas 2020
Mesajlar
3
Puanları
1
Yaş
49
Selam değerli arkadaşlar....

Aşağıdaki kodlarda 40 derece sıcaklığı geçince lamba yanıyor, sorunum şu; iki ayrı dereceyi kontrol etmem gerekiyor...Ayrıca 45 dereceyi geçince de ayrı bir led yanmasını istiyorum nasıl bir ekleme yapabiliriz..... Orjinal resim 1 ledli olan bizim istediğimiz 2 ledli olan....
Kod:
#include <12f683.h>   



#device ADC=10



#fuses NOWDT,INTRC_IO,NOMCLR,BROWNOUT



#use delay (clock=4000000)



#use rs232(baud=9600,xmit=pin_a1,parity=N,stop=1)



#use fast_io(a)







unsigned long int okunan;



float voltaj;







void main ( )



{



   set_tris_a(0x01);



   output_a(0x01);



 



   setup_adc(adc_clock_div_32);



   setup_adc_ports(sAN0);



 



   while(true) 



   {



   set_adc_channel(0);



   delay_us(20);



   okunan = read_adc();



   voltaj = okunan * 0.00488 * 100;



   printf("\fSicaklik:%2.2f",voltaj);



 



   if(voltaj >= 40)



   {



   output_high(pin_a2);



   printf("\n\rSicaklik 40 derece ustunde !");



   }



   else



   {



   output_low(pin_a2);



   }



   delay_ms(1000);



   }



}
 

Ekli dosyalar

  • DEVRE1.JPG
    DEVRE1.JPG
    56 KB · Görüntüleme: 16
  • resim2.JPG
    resim2.JPG
    67.8 KB · Görüntüleme: 17
Moderatör tarafında düzenlendi:
if bloğu ile delay arasına aynı işi bu defa diğer pin için

Kod:
if(voltaj >= 45)
...
şeklinde yazacaksınız.
Kod:
output_high(pin_a2);
yerine hangi pin ise o yazılacak.
 
if bloğu ile delay arasına aynı işi bu defa diğer pin için

Kod:
if(voltaj >= 45)
...
şeklinde yazacaksınız.
Kod:
output_high(pin_a2);
yerine hangi pin ise o yazılacak.
Teşekkürler kardeşim, bir de sadece a1 giriş diğerleri çıkış kodu nasıl yazılır...

Yani şu iki kod...a1 sensör girişi diğerlerini çıkış yapmak için nasıl yazılacak...Yukarıdaki kodda entegre 12f683

set_tris_a(0x01);
output_a(0x01);
 
Doğrusu yıllar önce upraştığım bir konu. Ezberden hatırlamıyorum. Hatırlamak için eski defterlere/notlara bakmam gerekecek. Umarım şuan aktif çalışan arkadaşlar yardımcı olacaklardır.;)
 
Doğrusu yıllar önce upraştığım bir konu. Ezberden hatırlamıyorum. Hatırlamak için eski defterlere/notlara bakmam gerekecek. Umarım şuan aktif çalışan arkadaşlar yardımcı olacaklardır.;)
Teşekkürler ....
 
Selam değerli arkadaşlar....

Aşağıdaki kodlarda 40 derece sıcaklığı geçince lamba yanıyor, sorunum şu; iki ayrı dereceyi kontrol etmem gerekiyor...Ayrıca 45 dereceyi geçince de ayrı bir led yanmasını istiyorum nasıl bir ekleme yapabiliriz..... Orjinal resim 1 ledli olan bizim istediğimiz 2 ledli olan....
Kod:
#include <12f683.h>  



#device ADC=10
#fuses NOWDT,INTRC_IO,NOMCLR,BROWNOUT
#use delay (clock=4000000)
#use rs232(baud=9600,xmit=pin_a1,parity=N,stop=1)
#use fast_io(a)
unsigned long int okunan;
float voltaj;
void main ( ){
  set_tris_a(0x01);
  output_a(0x01);
 setup_adc(adc_clock_div_32);
 setup_adc_ports(sAN0);
 while(true) {
set_adc_channel(0);
   delay_us(20);
  okunan = read_adc();
 voltaj = okunan * 0.00488 * 100;
 printf("\fSicaklik:%2.2f",voltaj);
  if(voltaj >= 40) {
   output_high(pin_a1);
  printf("\n\rSicaklik 40 derece veya ustunde !");  }
 else if(voltaj>=45){
   output_high(pin_a2);
  printf("\n\rSicaklik 45 derece veya ustunde !");  }
  else {
  output_low(pin_a2);
  output_low(pin_a1);}
 }
 delay_ms(1000);



   }



}
Senin yazmış olduğuna ilave ekleyiverdim telefonda olduğum için yeniden yazmadım ama muhtemelen çalışacaktır.set_tris_a(0b000001) şeklinde binary olarak giriş çıkış ayarıda yapabilirsin. Fakat "output_a(0x00);" olmalı ki girişteki çıkıştaki herşeyi sıfırla ,önceki çalışamadan dolayı takılma veya bilgi kalmasın.Dene bakalım kodu kopyalayıp çalışıyor mu dönüş yaparsın.Kolay gelsin.
 

Forum istatistikleri

Konular
128,162
Mesajlar
915,577
Kullanıcılar
449,921
Son üye
TursuBidonu

Yeni konular

Geri
Üst