masayasanのアイコン画像

PICマイコンでのHC-SR04使用方法 備忘録

masayasan 2021年10月12日に作成  (2021年10月12日に更新)

PICマイコンでのHC-SR04使用方法 備忘録

#概要
超音波距離センサーHC-SR04の使用方法のメモ

他のサイトを見るとタイマー1のゲート機能を使用する方法が多い様だけど、
単純にタイマー機能だけで計測して距離を出してみた。

#MCC
キャプションを入力できます
キャプションを入力できます

#プログラムソース

float Distance() {
   // uint16_t distance;
    float distance;
    RA5 = 0;
    __delay_us(2);
    RA5 = 1;
    __delay_us(10);
    RA5 = 0;
    while (RC0 == 0);
    uint16_t Time1 = TMR1_ReadTimer();
    while (RC0 == 1); 
        Time1 = TMR1_ReadTimer() - Time1;
     //   distance=Time1;
        distance = Time1/2*(331.5+0.61*20) *100/1000000;
    __delay_ms(60);
    return (distance);
 //return (100);
}

void main(void) {
    SYSTEM_Initialize();
    while (1) {
        printf("%f\n", Distance());
    }
}

#まとめ
 一応距離はそれなりに計測できた。
while (RC0 == 0);と while (RC0 == 1); で止めてるのが気になる。
エコーの信号が返って来ないと永遠に止まってしまうので、ゲート機能使うのがやはり良いと思う。

ゲート機能使える様になったら、改めて設定方法などを記載します。

ログインしてコメントを投稿する