#概要
超音波距離センサーHC-SR04の使用方法のメモ
他のサイトを見るとタイマー1のゲート機能を使用する方法が多い様だけど、
単純にタイマー機能だけで計測して距離を出してみた。
#プログラムソース
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); で止めてるのが気になる。
エコーの信号が返って来ないと永遠に止まってしまうので、ゲート機能使うのがやはり良いと思う。
ゲート機能使える様になったら、改めて設定方法などを記載します。
投稿者の人気記事
-
masayasan
さんが
2021/10/12
に
編集
をしました。
(メッセージ: 初版)
ログインしてコメントを投稿する