Şimdi Ara

Ultrasonic Sensör İle Mesafe Ölçüm Sorunu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
1
Cevap
0
Favori
1.238
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar, HC-SR04 adlı ultrasonik uzaklık sensörü ile mesafe ölçümü yapmak istiyorum.Sensörün çalışma mantığı anladığım kadarıyla trig pininden 10Us'lik bir pals gönderiyoruz ve echo pini sensörden çıkan dalganın gidip dönmesi süresince 1 olarak kalıyor(kullandığım sensör ).Kodumda 18F4550'nin TMR1'ini kullanarak geçen süreyi 16 bitlik modda ölçmeyi amaçlıyorum 4Mhz kristal kullanıyorum ve 4/4'den timer frekansını 1/1.000.000'dende timerın bir artışını 1Us olarak hesapladım portb.rb0'ı trig pinine pulse için portb.rb1'ide input olarak echo pinine bağlıyorum ama bir türlü pratikte düzgün bir ölçüm alamıyorum, uzaklık ve süre değişkenleri sürekli değişimde oluyor ve saçma değerler veriyor.Kodu aşağıda paylaşıyorum sizce programımda göremediğim bir hata mı var yoksa sensörün arızalı olabileceğinden mi şüphelenmeliyim?şimdiden teşekkürler.

     
    sbit LCD_RS at RD2_bit;
    sbit LCD_EN at RD3_bit;
    sbit LCD_D4 at RD4_bit;
    sbit LCD_D5 at RD5_bit;
    sbit LCD_D6 at RD6_bit;
    sbit LCD_D7 at RD7_bit;

    sbit LCD_RS_Direction at TRISD2_bit;
    sbit LCD_EN_Direction at TRISD3_bit;
    sbit LCD_D4_Direction at TRISD4_bit;
    sbit LCD_D5_Direction at TRISD5_bit;
    sbit LCD_D6_Direction at TRISD6_bit;
    sbit LCD_D7_Direction at TRISD7_bit;

    unsigned int sure,uzaklik;
    char h[7];
    void main() {
    ADCON1 |=0x0F;
    CMCON |=7;
    TRISB=0x02;
    PORTB=0x00;
    T1CON.RD16=1;

    Lcd_Init();
    Delay_Ms(100);
    Lcd_Cmd(_LCD_CLEAR);
    Lcd_Cmd(_LCD_CURSOR_OFF);

    for(;;) {
    PORTB=0x01;
    Delay_Us(15);
    PORTB=0x00;
    while(!(PORTB.RB1));
    TMR1H=0;
    TMR1L=0;
    T1CON.TMR1ON=1;
    while(PORTB.RB1);
    T1CON.TMR1ON=0;
    sure = TMR1H;
    sure = sure << 8;
    sure = sure | TMR1L;
    uzaklik=(sure/58);
    InttoStr(uzaklik,h);
    Lcd_Out(1,9,h);
    Lcd_Out(1,1,"cm");
    InttoStr(sure,h);
    Lcd_Out(2,9,h);
    Lcd_Out(2,1,"us");
    Delay_Ms(100);
    }
    }







  • Yapay Zeka’dan İlgili Konular
    Odak Ölçümü Nedir?
    4 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.