در این پست نحوه ساخت فاصله سنج دیجیتال با استفاده از ماژول آلتراسونیک HC-SR04 و میکرو کنترولر Blue Pill STM32F103C آموزش داده می شود.

اصول کار این فاصله سنج بر اساس محاسبه زمان ارسال و دریافت انعکاس موج آلتراسونیک می باشد و با توجه به سرعت امواج آلتراسونیک نزدیک به سرعت صوت و 340 متر بر ثانیه می باشد، محاسبه فاصله امکان پذیر است.
شمای مداری پروژه در شکل زیر نمایش داده شده است.

برنامه میکروکنترولر نیز به صورت زیر می باشد. برنامه در محیط برنامه نویسی آردوینو نوشته شده است. برای مشاهده نحوه برنامه ریزی میکروکنترولرهای STM32 از طریق آردوینو لینک زیررا ببینید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
// //Ultra Sonic Range Meter Project //www.eqbalelec.ir //Board: Blue Pill [STM32F103C] //Sensor: HC-SR04 #include <TM1637Display.h> // defines pins numbers const int trigPin = PA1; const int echoPin = PA0; const int CLK = PB14; const int DIO = PB15; // defines variables long duration; float distance; TM1637Display display(CLK, DIO); void setup() { display.setBrightness(0x0f); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { //Make sure that trigPin is Low digitalWrite(trigPin, LOW); delayMicroseconds(2); // Sets the trigPin on HIGH state for 10 micro seconds digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds duration = pulseIn(echoPin, HIGH); // Calculating the distance distance = duration * 0.0340 / 2; display.showNumberDec((int)distance, false); } |
جهت نمایش مقدار اندازه گیری شده نیز از ماژول نمایشگر TM1637 استفاده شده است.

ماژول آلتراسونیک استفاده شده در این پروژه دارای قیمت مناسب و همچنین دقت قابل قبول می باشد.
