Pic16F628 ile Loadcell

Katılım
8 Eyl 2021
Mesajlar
10
Puanları
1
Yaş
29
Merhaba Arkadaşlar
16F628A İle Hx711 Modülü İle Loadcell Verilerini Okuyorum. Aşağıda Çalışma Kodlarım İle Verileri Okuyabiliyorum. Ancak Programı Kapatıp Açtığımda Veriler Sıfırlanıyor.

Yani ;

Ağırlık Sensörü Üzerinde Diyelim 5Kg Ağırlık Var. Üzerinde Ağırlık Var İken Pici Kapatıyorum ve Tekrar Açıyorum. Bu Durumda Ağırlık Sensörü Verileri Sıfırlanmış Oluyor ve Üzerinde Bulunan 5KG Ağırlığı Görmüyor. Benim İstediğim Üzerinde 5kg Ağırlık Varsa Pici Kapatıp Açtığımız Zaman Üzerinde 5KG Ağırlığı Görmeye Devam Etsin İstiyorum. Bu Konuda Yardımcı Olabilir misiniz ?


#include <16f628a.h>
#fuses intrc_io,nocpd,noprotect,nomclr
#use delay(clock=4M)
#include<LCD420.c>

#define TeraziGiris pin_a1
#define TeraziCikis pin_a0

unsigned int32 OkunanAgirlik = 0, TeraziOkuGelenDeger = 0, Agirlik = 0;

unsigned int32 LoadCellOku(void)
{
unsigned int32 OkunanDeger;
unsigned int8 j;
output_bit(TeraziGiris, 1);
output_bit(TeraziCikis, 0);
OkunanDeger = 0;

while (input(TeraziGiris));
for (j = 0; j < 24; j++)
{
output_bit(TeraziCikis, 1);
OkunanDeger = OkunanDeger << 1;
output_bit(TeraziCikis, 0);
if (input(TeraziGiris))
{
OkunanDeger++;
}
}
output_bit(TeraziCikis, 1);
OkunanDeger = OkunanDeger ^ 0x800000;
output_bit(TeraziCikis, 0);

return OkunanDeger;
}


void main()
{

TeraziOkuGelenDeger = LoadCellOku(); //TERAZİYİ OKUYORUZ
delay_ms(50);


while(true)
{
delay_ms(10);
OkunanAgirlik = LoadCellOku();
if (TeraziOkuGelenDeger >= OkunanAgirlik)
{
unsigned int32 val1 = (TeraziOkuGelenDeger - OkunanAgirlik);
Agirlik = val1;
}
else
{
unsigned int32 val2 = (OkunanAgirlik - TeraziOkuGelenDeger);
Agirlik = val2;
}

printf(lcd_putc, "\f");
printf(lcd_putc, "BASKI : %ld", Agirlik/10000);
}


}
 
Darayı aldığınızda e²prom üzerine kayıt
yaparsınız. Mcu her açılışında bu dara
değerini okuyarak işe başlar.
 
Ağırlık konduktan sonra o anki sıfır noktasında
ağırlığı e²proma kaydedin. Bundan sonraki
ölçümler bu ağırlığın altında ve üstünde olacak.
Mcu her açılışında e²prom dan bir değer okuyacak.
Sonra loadcell üzerinden okuduğu değer(dara)
e²prom üzerinden okunan değere eklenecek.
Bunu yapmak için bir buton ekleyebilirsiniz.
Yazılım kısmı size ait. Sadece fikir verdim.
 
Ağırlık konduktan sonra o anki sıfır noktasında
ağırlığı e²proma kaydedin. Bundan sonraki
ölçümler bu ağırlığın altında ve üstünde olacak.
Mcu her açılışında e²prom dan bir değer okuyacak.
Sonra loadcell üzerinden okuduğu değer(dara)
e²prom üzerinden okunan değere eklenecek.
Bunu yapmak için bir buton ekleyebilirsiniz.
Yazılım kısmı size ait. Sadece fikir verdim.
Anladım Hocam Kayıt Edebiliyorum Karşılaştırmalarda Sürekli Hatalar Meydana Geldi Tekrar İnceleyeyim.
 

Forum istatistikleri

Konular
130,103
Mesajlar
933,156
Kullanıcılar
453,156
Son üye
Aalpsevindik

Yeni konular

Geri
Üst