geliştirmekte olduğum bir proje için PİC 16F877/A ile loadcell aracılığıyla ağırlık ölçümü yapmam gerekmekte. Bu işlemi Arduino ile yapmaktayım fakat kodlarını CCS C programında yazdığım kodlarla uyuşturamadım.
CCS C programı için ağırlık ölçümü yapmam için gerekli teçhizatları edindim. İlgili kod için çeşitli yerlerden kodları düzenledim derledim fakat net bir çıktı alamadım.
Durumu şöyle izah edeyim. manyetik alan oluşturmaktayım 16f877/A ile. Bu oluşturduğum manyetik alanı ise sıvı yoğunluk katsayısına göre dengeleyeceğim. Yoğunluk katsayısını ise ağırlık ve hacim ölçümü ile yapacağım. Hacim ölçümü elimde mevcut durumda bulunmaktadır. Tek eksik ağırlık ölçümü. CCS C de yapmış olduğum projeyi 16F877/A micro işlemcisi ile süreceğim. Bu nedenle herhangi bir sensör ile 5 kilograma kadar yapacağım ağırlık ölçümü işimi çözmektedir. )
Post automatically merged:
mesela aşağıdaki kodu internette bir forum sitesinde buldum. düzenledimde. fakat yine sonuç alamadım. önerisi olan varmıdır?
#define veri pin_xx // Modülden gelen bilgi ucu
#define sinyal pin_yy // Modüldeki bilgiyi kaydırmak için kullanılan 1-0 kaynağı
for(;{
printf(lcd_putc,"f%Lu",Agirlik_Oku());
delay_ms(400);
/* Veri gerçek ağırlık değerlerine dönüştürülmemiştir.
Okunan değer sensörde meydana gelen değişimi göstermektedir. */
}
}
Aslında benim bir önerim var ama işinize yarar mı bilmiyorum belki biraz da pahalı gelebilir ama fikir fikirdir...
Loadcell bilgilerini analog gerilim yada akıma çeviren çeviriciler var klemsan vs markaların 0-10 volt çevirici ile işinizi görebilirsiniz diye düşünüyorum...
Kodun geri kalan kısmını(Header vb) eklerseniz ve kodlarda ne yapmaya çalıştığınızı açıklarsanız, beraber bakalım.
loadcell 24 bitlik digital çıkış mı veriyor?
Kod:
#define veri pin_xx // Modülden gelen bilgi ucu
#define sinyal pin_yy // Modüldeki bilgiyi kaydırmak için kullanılan 1-0 kaynağı
unsigned int32 Agirlik_Oku(void){
unsigned int32 Gelen_Veri;
unsigned char i;
output_high(veri);
output_low(sinyal);
Gelen_Veri=0;
while(input(veri));
for (i=0;i<24;i++){
output_high(sinyal);
Gelen_Veri=Gelen_Veri<<1;
output_low(sinyal);
if(input(veri)) Gelen_Veri++;
}
output_high(sinyal);
Gelen_Veri=Gelen_Veri^0x800000;
output_low(sinyal);
return(Gelen_Veri);
}
Void main(){
for(;;){
printf(lcd_putc,"f%Lu",Agirlik_Oku());
delay_ms(400);
/* Veri gerçek ağırlık değerlerine dönüştürülmemiştir.
Okunan değer sensörde meydana gelen değişimi göstermektedir. */
}
}
Merhabalar.
Bende bu proje ile ilgileniyorum.
Data okuyabiliyorum ancak datayı işleyip grama çevirme konusunda tutarsızlıklar var. Muhtemelen değişkenlerle alakalı bir sorun olduğunu düşünüyorum. İşin içinden çıkamadım. Bilgisi olan ve daha önce bu modülle çalışmış arakadaşların yardımını bekliyorum teşekkürler.
Merhabalar.
Bende bu proje ile ilgileniyorum.
Data okuyabiliyorum ancak datayı işleyip grama çevirme konusunda tutarsızlıklar var. Muhtemelen değişkenlerle alakalı bir sorun olduğunu düşünüyorum. İşin içinden çıkamadım. Bilgisi olan ve daha önce bu modülle çalışmış arakadaşların yardımını bekliyorum teşekkürler.