آموزش آردوینوپروژه های آردوینو

ساخت خط کش دیجیتالی با 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 نیز استفاده کنید.

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.

ساخت خط کش دیجیتالی با Attiny85

قطعات مورد نیاز

  • IC ATtiny85
  • سنسور التراسونیک HC-SR04
  • ماژول نمایش OLED
  • تنظیم کننده ولتاژ AMS1117 5V
  • 3* مقاومت 10KΩ
  • خازن µf 10
  • باتری 9 ولت
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

توجه: برای برنامه نویسی ATtiny85 به صورت مستقیم از طریق آردوینو، ابتدا این مقاله را مشاهده کنید: برنامه نویسی ATtiny85 با آردوینو و USB مستقیم

ساخت PCB برای خط کش اولتراسونیک

برای اینکه مدار شما فضای کمتری را اشغال کند و استحکام بیشتری داشته باشد، بهتر است مدار را روی برد 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 نمایش داده شود. برای بررسی اینکه آیا فاصله اندازه گیری شده درست است یا خیر ، می توانید از خط کش معمولی استفاده کنید.

آزمایش خط کش اولتراسونیک با ATtiny85

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

موارد موجود در فایل : سورس کامل، فایل PCB

دانلود فایل های پروژه

برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید.

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام آیرنکس را دنبال کنید.

تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *