masayasan が 2021年10月12日21時30分16秒 に編集
初版
タイトルの変更
PICマイコンでのHC-SR04使用方法 備忘録
タグの変更
HC-SR04
PIC
メイン画像の変更
記事種類の変更
セットアップや使用方法
本文の変更
#概要 超音波距離センサーHC-SR04の使用方法のメモ 他のサイトを見るとタイマー1のゲート機能を使用する方法が多い様だけど、 単純にタイマー機能だけで計測して距離を出してみた。 #MCC   #プログラムソース ```HC-SR04 のPICでの使用例 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); で止めてるのが気になる。 エコーの信号が返って来ないと永遠に止まってしまうので、ゲート機能使うのがやはり良いと思う。 ゲート機能使える様になったら、改めて設定方法などを記載します。