ساخت خط کش دیجیتالی با ATtiny85 و آردوینو

اندازه گیری فاصله از یک جسم در بسیاری از پروژه ها استفاده می شود. روش های زیادی برای اندازه گیری فاصله وجود دارد و یکی از ارزانترین آنها استفاده از سنسور های التراسونیک است. در این پروژه ما با استفاده از سنسور التراسونیک HC-SR04 و آی سی میکروکنترلر ATtiny85 و ماژول نمایشگر OLED یک خط کش دیجیتالی طراحی میکنیم. ما این پروژه را روی یک PCB اجرا میکنیم شما میتوانید روی یک برد بورد یا برد سوراخدار مدار را پیاده سازی کنید. از این برد میتونید برای اندازه گیری فاصله، تشخیص وجود اشیا یا مانع و … استفاده کنید.
شماتیک مدار خط کش التراسونیک
شماتیک مدار خط کش التراسونیک با استفاده از ATtiny85 در زیر آورده شده است:

تصویر بالا شماتیک مدار ساخت خط کش التراسونیک با نمایشگر OLED را نشان میدهد. ارتباط بین OLED و ATtiny85 از طریق پروتکل I2C انجام میشود. بنابراین SCL و SDA صفحه نمایش و Attiny85 به هم متصل هستند. پین های Echo و Trig سنسور اولتراسونیک به ترتیب به پین های PB3 و PB4 ATtiny85 متصل می شوند. در نهایت ، برای تغذیه همه قطعات ، از باتری 9 ولت استفاده کرده ایم. سپس این 9 ولت با استفاده از تنظیم کننده ولتاژ AMS117-5V به 5 ولت تبدیل می شود و میتوانید از 7805 نیز استفاده کنید.

قطعات مورد نیاز
- IC ATtiny85
- سنسور التراسونیک HC-SR04
- ماژول نمایش OLED
- تنظیم کننده ولتاژ AMS1117 5V
- 3* مقاومت 10KΩ
- خازن µf 10
- باتری 9 ولت
توجه: برای برنامه نویسی ATtiny85 به صورت مستقیم از طریق آردوینو، ابتدا این مقاله را مشاهده کنید: برنامه نویسی ATtiny85 با آردوینو و USB مستقیم
ساخت PCB برای خط کش اولتراسونیک
برای اینکه مدار شما فضای کمتری را اشغال کند و استحکام بیشتری داشته باشد، بهتر است مدار را روی برد PCB پیاده سازی کنید. تصویر زیر، نقشه PCB را نمایش میدهد. فایل های طراحی PCB در انتهای صفحه برای دانلود قرار داده شده اند.
توضیح کد خط کش اولتراسونیک ATtiny85
کد کامل پروژه در انتهای صفحه در فایل دانلودی قرار داده شده است. در اینجا قسمت های مهم کد را بررسی میکنیم. کد از کتابخانه های TinyWireM.h و TinyOzOLED.h استفاده می کند. کتابخانه TinyWireM را می توان از Library Manager در Arduino IDE بارگیری و از آنجا نصب کرد. برای این کار ، Arduino IDE را باز کرده و به Sketch <Include Library <Manage Libraries بروید. اکنون TinyWireM.h را جستجو کرده و کتابخانه TinyWireM از Adafruit را نصب کنید.
کتابخانه TinyOzOLED.h را می توان از این لینک بارگیری کرد. پس از نصب کتابخانه ها در Arduino IDE ، کد را با فراخوانی فایلهای کتابخانه مورد نیاز شروع کنید.
#include "TinyWireM.h" #include "TinyOzOLED.h"
در خطوط بعدی ، پین های سنسور اولتراسونیک را مشخص کنید. ما پین های trig و echo سنسور اولتراسونیک را مطابق شکل زیر تعریف کرده ایم.
const int trigPin = 4; //P4 int echoPin = 3; //P3
سپس تابع setup () می آید. اینجاست که ما پین های ATtiny85 را به عنوان ورودی/خروجی تعریف می کنیم و ارتباط بین ATtiny85 و OLED را آغاز می کنیم.
void setup() {
TinyWireM.begin();
OzOled.init();
OzOled.clearDisplay();
OzOled.setNormalDisplay();
OzOled.sendCommand(0xA1);
OzOled.sendCommand(0xC8);
pinMode(trigPin, OUTPUT);
} در داخل عملکرد loop() ، ابتدا فاصله را با استفاده از سنسور اولتراسونیک اندازه گیری می کنیم و سپس آن را روی صفحه نمایش OLED نمایش می دهیم. برای اندازه گیری فاصله با استفاده از سنسور اولتراسونیک ، ابتدا باید trigpin را روی حالت LOW را فقط برای 2 میکرو ثانیه تنظیم کنید تا مطمئن شوید که روشن است. اکنون برای ایجاد موج صوتی trigPin را برای 10 میکروثانیه HIGH تنظیم میکنیم. پس از این ، از تابع pulseIn () برای محاسبه زمان حرکت موج و ذخیره مدت زمان در متغیری به نام “duration” استفاده کنید. تابع pulseIn دارای 2 پارامتر است ، اول نام پین echo و دومی حالت پین echo است. سپس پس از گرفتن فاصله ، آن را روی صفحه نمایش OLED نمایش میدهیم.
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
cm = microsecondsToCentimeters(duration);
OzOled.printString("Distance:", 3, 4);
OzOled.printNumber(cm, 0, 12, 4); آزمایش خط کش اولتراسونیک با ATtiny85
پس از مونتاژ PCB و برنامه ریزی ATtiny85 برای اندازه گیری فاصله ، اکنون می توانیم خط کش اولتراسونیک را آزمایش کنیم. برای این کار ، برد را با استفاده از باتری 9 ولت تغذیه کرده و منتظر بمانید تا فاصله اندازه گیری شده روی صفحه نمایش OLED نمایش داده شود. برای بررسی اینکه آیا فاصله اندازه گیری شده درست است یا خیر ، می توانید از خط کش معمولی استفاده کنید.

موارد موجود در فایل : سورس کامل، فایل PCB
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود










با درود ، دقت این خط کش را هم بفرمایید
سلام یه سوال داشتم ممنون میشم جواب بدین.
این بود که یه توضیح مختصری میدی این کد هارو تو چه برنامه ای بزنم و همرو پشت سر هم بزنم یعنی هر تصویری مکمل تصویر قبلش قرار بدم ممنونم.
سلام عزیز
این کد هارا باید در نرم افزار آردوینو وارد کردید اگر با آردوینو و برنامه نویسی آردوینو آشنا نیستید میتونید دوره آموزش آردوینو را مشاهده کنید.