Ynt: 12f675 ısı kontrol yardım

Başlatan sifirzero, 26 Mayıs 2015, 13:50:26

sifirzero

12f675 ile devreyi kurdum isis de denedim çalışıyor ama gerçekte çalışmıyor. yardım edermisniz.soğuyorum bu işten insan yapınca mutlu oluyor.
#include <12f675.h>
#include <ds18b20.c>
#define adc=10
#fuses NOPROTECT
#fuses NOCPD    
#fuses XT 
#fuses NOMCLR
#fuses NOWDT

float temp; 
void main() 
{  
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
setup_adc(adc_clock_div_32); // 32 bölerek
while(TRUE)                       
   {   
set_adc_channel(0); // adc hangi pinden AN0
delay_us(20); // muhakkak zaman olması gerekiyor
temp = ds1820_read(); 
                           
                   
if(temp < 33)  // bilgi 25 den küçük ise yak
{
output_high(pin_a1);  // ledleri yak
delay_ms(100);                              
}                                                              
if(temp> 35)  // anahtar1 basıldıysa
{
output_low(pin_a1);  // ledleri yak
delay_ms(100);      
}                                                                                                                     
}                         
}                            
                                                           




mesaj birleştirme:: 26 Mayıs 2015, 13:57:14

arkadaşlar device adc=10 yazamıyorum neden onu sormayı unuttum arkadaşlar.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

PROTECH_

Multi-Core ,RTX,ThreadX, FreeRTOS, MODBUS  RTOS - Electronic-Hardware -- BERLIN

ups

anladığım kadarıyla DS18B20 tek hat haberleşme ile çalışıyor yani analog okuma yapamazsın bunun yerine herkesin bildiği LM35 neden kullanmıyorsun ?

sifirzero

abi ayrdımcı olurmusunu.devreyi gerçekte kuruyorum çalışmıyor.simülasyonda çalışıyor.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

esensoy

Adc neden açıyorsun ki? o sensör one wire değil mi?
Büyük ihtimal ccs o pini analoog girişolarak ayarlıyor, ondan çalışmıyor,
diğer dosyaları da ekkle,
En tehlikeli an "zafer" anıdır.

sifirzero

esensoy kardeşim yardımcı olurmusun yeniyim ccs c de öğrenmeye çalışıyorum.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

tekosis

void main() 
{  
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
setup_adc(adc_clock_div_32); // 32 bölerek
while(TRUE)                       
   {   
set_adc_channel(0); // adc hangi pinden AN0
delay_us(20);


kodunu

void main() 
{  
setup_adc(ADC_OFF);
while(TRUE)                       
   { 


Olarak değiştirir misin?
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

sifirzero

değiştirdim gerçekte çalışmıyor.simülasyonda çalışıyor.abi lütfen yardım edin
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

esensoy

önce tekosis in dediklerini yapmalısın, olmadı ise yeni.h ve ds18b20.c yi de ekler misin,
bir de devreni nereye kurdun, şema ve foto çek gönder,
En tehlikeli an "zafer" anıdır.

f15eagle

sene35, yeni öğreniyorsan sana tavsiyem kendine referans bir kitap seçmen. CCS C için en yaygın olan Serdar Çiçek'in kitabıyla başlayabilirsin.

Anlaşılan donanımda da biraz bilgi eksikliğin var. Ds18b20 dijital çıkışlı bir sensördür. Fakat sen analog girişi aktif etmişsin(bu işlem için lm35 gibi analog çıkış veren sensörleri kullanmak gerekir).

Bahsettiğim gibi kitap alırsan hem donanım hem yazılım kısmını rahatlıkla çözersin

sifirzero

#10
teknosisin dediklerini yaptım.elimde ikiside var.one wire bilmiyorum.breadbord üerine kurudm.led yakıp söndürüyorum parçalarım hepsi çalışıyor.

mesaj birleştirme:: 26 Mayıs 2015, 16:04:04

abilerim şimdiden birşey öğrendim one wire diye birşey var dijital verilerde kullanılıyor.ds18b20 örnek.çok saolun.ama problemi çözemedim.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

vitruvius

Simülasyonda çalışması hiçbir şeyi garanti etmez. Analog özellikleri kapamalısın, kullandığın sensör dijital bir sensör. Kullandığın kristal frekansını kodda belirtmemişsin. Kodun son halini bir daha paylaş. Devreyi de doğru kurduğundan emin ol. Breadboard'un birkaç resmini paylaşabilirsin.

sifirzero

#include <12F675.h>
#include <1_wire.c>
#FUSES NOWDT            //No Watch Dog Timer
#FUSES INTRC_IO            //Internal RC Osc, no CLKOUT
#FUSES NOBROWNOUT        //No brownout reset 
#FUSES NOMCLR
#use delay(int=4000000)   
#include <ds18b20.c> 
 
float temp;
       

void main() 
{ 
 
setup_adc(ADC_OFF);
while(TRUE)                       
   {   
   
set_adc_channel(0); // adc hangi pinden AN0
delay_us(20); // muhakkak zaman olması gerekiyor
temp = ds1820_read();           
                                                                           
if(temp < 29)  // bilgi 25 den küçük ise yak
{                       
output_high(pin_a1);  // ledleri yak
delay_ms(100);                              
}  

if(temp > 33)  // bilgi 25 den küçük ise yak
{                       
output_low(pin_a1);  // ledleri yak
delay_ms(100);                              
}           
                                                                                                  
}                                               
}                            
                                                           
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

vitruvius

Harici kristal mi kullanıyorsun dahili mi? Hala adc kanalını ayarlamaya çalışıyorsun kodunda.

#FUSES NOMCLR


Niye yazdın? Mclr pini ile bir işin yok.

sifirzero

#14
abi esansoyun verdiği kodu yazdım adc cahnelidamı sileyim

mesaj birleştirme:: 26 Mayıs 2015, 16:21:11

abi tamam onuda sildim.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir