سرعت سنج ماشین آردوینو. سرعت سنج مبتنی بر آردوینو

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

ما نیاز خواهیم داشت:

برای اجرای پروژه باید کتابخانه را نصب کنیم:

  • کتابخانه irduino_4LED (برای کار با نشانگر LED چهار رقمی).

نحوه نصب کتابخانه ها را می توانید در صفحه ویکی - نصب کتابخانه ها در آردوینو IDE پیدا کنید.

ویدئو:

نمودار اتصال:

نشانگر LED به هر دو پین آردوینو (هم دیجیتال و هم آنالوگ) متصل است، اعداد در طرح مشخص شده اند. سنسور خط به هر ورودی آنالوگ متصل است، شماره در طرح نشان داده شده است.

در این آموزش نشانگر LED به پایه های دیجیتال 2 و 3 و سنسور خط به ورودی آنالوگ A0 متصل می شود.

الگوریتم کار:

  • اطلاعات روی نشانگر LED تنها زمانی نمایش داده می شود که سنسور خط از یک میدان روشن به یک میدان تاریک تبدیل شود.
  • خط اول تابع حلقه بررسی می کند که آیا سنسور خط در یک میدان تاریک است، اگر چنین است، پس ...
  • تعداد دور در دقیقه را روی نشانگر LED نمایش می دهیم (اگر سرریز میلیمتر تشخیص داده نشود) و در زمان انتقال صرفه جویی می کنیم.
  • حلقه while را اجرا می کنیم تا سنسور خط از میدان تاریک خارج شود. با توجه به این، عملیات قبلی فقط 1 بار انجام می شود، برای تمام مدت زمانی که سنسور در میدان تاریک است.
  • اگر سنسور بیش از 6 ثانیه در یک میدان تاریک یا روشن باشد، پیام STOP را نمایش می دهیم (اگر تعداد دورهای دستگاه شما کمتر از 10 دور در دقیقه باشد، این خطوط حذف می شوند).

کد برنامه:

#عبارتند از // کتابخانه را برای کار با نشانگر LED چهار رقمی وصل کنید iarduino_4LED dispLED(2,3); // یک شی را برای کار با توابع کتابخانه iarduino_4LED اعلام کنید، که نشان دهنده پین ​​های نشانگر (CLK، DIO) const uint8_t pinLine = A0 است. // یک ثابت را اعلام کنید که نشان دهنده تعداد ورودی آنالوگ است که سنسور خط به آن متصل است uint32_t strLine = 0; // زمان انتقال سنسور از نور به میدان تاریک void setup())(dispLED.begin(); // شروع نشانگر LED ) void loop())( if(analogRead(pinLine)>400)( // اگر خوانش سنسور خط بیشتر از 400 باشد (میدان تاریک) if(strLine 350)( // صبر کنید تا سنسور خط از میدان تاریک خارج شود if((millis()-strLine)>6000)(dispLED.print("STOP");) // اگر سنسور بیش از بیش از آن در میدان تاریک باشد. 6 ثانیه، سپس کتیبه "STOP" را روی نشانگر نمایش دهید) ) if((millis()-strLine)>6000)(dispLED.print("STOP");) // اگر سنسور در میدان نور قرار دارد برای اطلاعات بیشتر بیش از 6 ثانیه، سپس کتیبه "STOP" را نمایش دهید)

این دستگاه دیجیتالی را توصیف می کند که سرعت خودرو و سرعت میل لنگ موتور آن را اندازه گیری می کند. این نشانگر یک صفحه نمایش LCD از نوع 1602A است که استاندارد آن بر اساس کنترلر HD44780 است.

نام 1602A در واقع به این معنی است که در دو خط 16 کاراکتری در هر خط قرار دارد. این نشانگر در Aliexpress خریداری شد و با جستجوی "HD44780" (قیمت ها از 81 روبل) یافت شد. همانطور که قبلا ذکر شد، این شاخص دارای دو خط است. بنابراین، در خط بالایی دستگاه سرعت ماشین را نشان می دهد و در خط پایین - سرعت موتور را نشان می دهد.

بر خلاف خیلی ها کامپیوترهای روی بردمانند Orion-BK و موارد مشابه، و همچنین دستگاه هایی با نشانگرهای LED هفت بخش، این صفحه نمایش LCD، زمانی که نور پس زمینه روشن است، تصویر بسیار واضحی را ارائه می دهد که هم در نور و هم در شب در نور کاملاً قابل مشاهده است. تاریک، که به ویژه برای عملکرد خودرو مهم است.

مدار دستگاه بر اساس یک برد آماده ARDUINO UNO است که میکروکنترلر ATMEGA328 روی آن قرار دارد و همچنین تمام "لوله"های لازم برای عملکرد آن از جمله یک برنامه نویس USB و منبع تغذیه روی آن قرار دارد.

هزینه ARDUINO UNO در Aliexpress از 200 روبل شروع می شود. توضیحات برد ARDUINO UNO و همچنین نرم افزار آن و اتصال به کامپیوتر شخصیتوسط نویسنده در L.1 ارائه شده است، بنابراین اگر کسی نمی داند ARDUINO چیست و "با چه چیزی خورده می شود"، حتماً ابتدا مقاله L.1 را بخوانید.

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

نمودار شماتیک

این دستگاه فقط در خودرویی با موتور تزریقی(خودروهای کاربراتوری سنسور سرعت ندارند و همه خودروها سنسور احتراق ندارند). نمودار دستگاه در شکل 1 نشان داده شده است. در این شکل، برد ARDUINO UNO به صورت شماتیک به عنوان "نمای بالا" نشان داده شده است.

برنج. 1. نمودار شماتیکسرعت سنج و سرعت سنج روشن است مبتنی بر آردوینو.

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

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

سنسورهای سرعت متفاوت هستند، اما در بیشتر موارد، که به ویژه صادق است ماشین های داخلی، در هر کیلومتر 6000 ایمپالس می دهند. اگرچه برخی هستند که در هر کیلومتر 2500 تکانه می دهند، شاید دیگران نیز وجود داشته باشند.

برنامه

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

میز 1. منبعبرنامه ها.

برای کار، از تابع pulseln استفاده کنید که مدت زمان لبه مثبت یا منفی پالس ورودی را در میکروثانیه اندازه گیری می کند. بنابراین، برای پیدا کردن دوره، باید مدت نیم چرخه مثبت و منفی را اضافه کنید.

که در آن T دوره بر حسب ثانیه و F سرعت بر حسب کیلومتر در ساعت است. از آنجایی که دوره در میکروثانیه اندازه گیری می شود، فرمول واقعی این است:

اگر سنسور 2500 پالس در کیلومتر (ژاپنی) باشد، فرمول به این صورت خواهد بود:

بر این اساس، با توجه به اینکه دوره در میکروثانیه اندازه گیری می شود:

برای اندازه گیری سرعت میل لنگ از فرمول زیر استفاده می شود:

که در آن T دوره بر حسب ثانیه و F سرعت چرخش میل لنگ بر حسب دور در دقیقه است. از آنجایی که دوره در میکروثانیه اندازه گیری می شود، فرمول واقعی این است:

سپس نتایج در خطوط مربوطه نمایشگر LCD نمایش داده می شود. واحدهای اندازه گیری به صورت "km/h" و "ob/tip" نشان داده شده اند (اگر آن را دوست ندارید، می توانید آن را تغییر دهید).

اگر سیگنال ورودی وجود نداشته باشد، به عنوان مثال، احتراق روشن است، اما موتور روشن یا راه اندازی نشده است، در خطوطی که سیگنال وجود ندارد، کتیبه "inf" وجود خواهد داشت.

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

یا می توانید به صورت آزمایشی عدد را که به یک نقطه تقسیم می شود با بررسی سرعت سنج شماره گیری تنظیم کنید که بسیار دردسرساز است یا در صورت ایراد از سرعت سنج استاندارد غیرممکن است (که می تواند دلیل ساخت این دستگاه باشد).

اما بهتر است پارامترهای سنسور سرعت را پیدا کنید. و سپس عددی که در برنامه بر نقطه تقسیم می شود را محاسبه کنید. بیایید این عدد X و تعداد پالس ها در هر کیلومتر N را نشان دهیم. سپس X را می توان با استفاده از فرمول زیر محاسبه کرد:

X = 3600000000 / N

برای مثال، اگر سنسور مثلاً 2500 پالس در هر کیلومتر بدهد:

X= 3600000000 / 2500 = 1440000

یا اگر سنسور در هر کیلومتر 6000 پالس بدهد:

X= 3600000000 / 6000 = 600000

سرانجام

در صورت نقص عملکرد دستگاه، ممکن است لازم باشد حالت کار بهینه شود مراحل ورودیبر روی ترانزیستورهای VT1 و VT2، به ترتیب، با انتخاب مقاومت مقاومت های R3 و R6، و همچنین ظرفیت خازن های C2 و SZ.

Karavkin V. RK-12-16.

ادبیات:

1. فلاشر درخت کریسمس Karavkin V. در ARDUINO به عنوان درمانی برای ترس از میکروکنترلرها. RK-11-2016.


سرعت سنج دستگاهی است که برای اندازه گیری تعداد دور یک جسم در یک بازه زمانی معین استفاده می شود. معمولاً مقدار بر حسب دور در دقیقه یا دور در دقیقه بیان می شود. پیش از این، سرعت سنج ها دستگاه های کاملاً مکانیکی بودند که در آنها چرخش از طریق یک اتصال مکانیکی (کابل یا شفت) به سرعت سنج منتقل می شد، تعداد دور در دقیقه با استفاده از آن تعیین می شد. انتقال دندهو در مقیاس دایره ای نمایش داده شد. از زمان ظهور الکترونیک مدرن، سرعت سنج ها تغییرات زیادی کرده اند. این مقاله یک سرعت سنج دیجیتال غیر تماسی مبتنی بر آردوینو را شرح می دهد. سرعت موتور را نیز می توان با استفاده از مدار مشابهی کنترل کرد. تعداد دور در دقیقه و سایر اطلاعات روی نمایشگر LCD 2×16 نمایش داده می شود. نمودار الکتریکیسرعت سنج دیجیتال مبتنی بر آردوینو در زیر نشان داده شده است.

نمودار الکتریکی

سنسور دور در دقیقه
یک ترانزیستور نوری مادون قرمز و یک LED مادون قرمز سنسور را تشکیل می دهند. فوتو ترانزیستور مادون قرمز نوعی فوتوترانزیستور است که فقط به امواج مادون قرمز پاسخ می دهد. استفاده از ترانزیستور نوری مادون قرمز از تأثیر تداخل نور دیگر از محیط جلوگیری می کند. ترانزیستور فوتو و LED مادون قرمز به صورت موازی قرار گرفته اند. مقاومت R2 جریان عبوری از دیود مادون قرمز را محدود می کند. نوار راهنمای بازتابنده در راستای سنسور به جسم چرخان (شفت، دیسک یا فن) چسبانده می شود. من از یک فن خنک کننده با ولتاژ تغذیه 9V/100mA استفاده کردم. فاصله بین سنسور و نوار راهنمای بازتابی نباید از 1 سانتی متر تجاوز کند. هنگامی که نوار راهنمای بازتابنده از جلوی سنسور عبور می کند، امواج مادون قرمز به ترانزیستور فوتو منعکس می شوند. فتوترانزیستور در یک لحظه معین رسانای بیشتری دارد و در نتیجه ولتاژ در R3 (مقاومت 68K) به سرعت افزایش می یابد. نتیجه سیگنالی خواهد بود که شکل آن در زیر در امیتر فوتوترانزیستور نشان داده شده است. تعداد دور در دقیقه را می توان با محاسبه تعداد پالس های رو به بالا تعیین کرد فاصله مشخص شدهزمان.

محاسبه دور در دقیقه
آردوینو برای محاسبه مقدار RPM و نمایش این مقدار بر روی LCD استفاده می شود. امیتر فوتوترانزیستور به پین ​​Interrupt 0 (پایه دیجیتال 2) آردوینو متصل است. وقفه آردوینو به گونه‌ای پیکربندی شده است که توسط یک لبه افزایش‌یافته راه‌اندازی شود. در نتیجه، یک وقفه برای هر پالس رو به بالا در شکل موج امیتر پردازش می شود. تعداد وقفه های دریافت شده در یک زمان معین با افزایش متغیر با استفاده از برنامه سرویس وقفه محاسبه می شود. زمان سپری شده در طول یک چرخه محاسباتی با استفاده از تابع millis () تعیین می شود. تابع millis() تعداد میلی ثانیه هایی را که از روشن شدن برد آردوینو گذشته است را برمی گرداند. فراخوانی تابع millis() قبل و بعد از چرخه محاسبات و محاسبه تفاوت آنها زمان سپری شده در طول چرخه محاسبات را نشان می دهد. مقدار (تعداد وقفه/بار در میلی ثانیه) * 60000 تعداد دور در دقیقه (RPM) را تعیین می کند.

کنترل سرعت موتور
دستگاهی برای کنترل سرعت موتور با استفاده از پتانسیومتر نیز در مدار گنجانده شده است. ترانزیستور Q1 برای کنترل موتور استفاده می شود. پایه آن از طریق مقاومت محدود کننده جریان R1 به پین ​​PWM 9 آردوینو متصل است. موتور پتانسیومتر کنترل سرعت R4 به پایه آنالوگ A0 آردوینو متصل است. ولتاژ این پین با استفاده از تابع anlogRead به مقداری بین 0 تا 1023 تبدیل می شود. سپس این مقدار بر چهار تقسیم می شود تا محدوده 0 تا 255 بدست آید ارزش داده شدهبا استفاده از تابع anlogWrite روی پین 9 PWM نوشته می شود. نتیجه یک موج مربعی در پایه 9 است که چرخه وظیفه آن متناسب با مقدار نوشته شده با استفاده از تابع analogWrite است. به عنوان مثال، اگر مقدار 255 باشد، چرخه وظیفه 100٪ و اگر مقدار 127 باشد، چرخه کاری حدود 50٪ خواهد بود. D1 یک دیود آزاد و C1 یک خازن سرکوب کننده نویز (دکوپلر) است. RPM و چرخه کار با استفاده از کتابخانه استاندارد LiquidCrystal روی صفحه LCD نمایش داده می شوند. این مقاله را بخوانید: صفحه نمایش LCD رابط برای آردوینو. کد کامل سرعت سنج دیجیتال مبتنی بر آردوینو در زیر نشان داده شده است.

کد برنامه
#عبارتند از ال سی دی کریستال مایع (12،11،6،5،4،3); int pwm=9; int pot=A0; float value=0; int درصد; float rev=0; int rpm; int oldtime=0; int time; void isr() // روال سرویس وقفه ( rev++; ) void setup() ( lcd.begin(16,2)؛ //initialize LCD attachInterrupt(0,isr,RISING)؛ //اتصال وقفه ) void loop() ( تاخیر(1000)؛ detachInterrupt(0)؛ //زمان وقفه را جدا می کند=millis()-oldtime؛ //زمان را پیدا می کند rpm=(rev/time)*60000؛ //محاسبه rpm oldtime=millis();/ / زمان فعلی را ذخیره می کند rev=0; 100. //چرخه وظیفه lcd.print("___TACHOMETER___");
یادداشت
برد آردوینو را می توان با یک منبع تغذیه 9 ولت از طریق یک سوکت برق خارجی تامین کرد.
ولتاژ 5 ولت مورد نیاز برای برخی از اجزای مدار را می توان از منبع 5 ولتی روی برد آردوینو تامین کرد.
فن مورد استفاده از ولتاژ 9V/100mA استفاده می کند. ترانزیستور 2N2222 فقط تا 800 میلی آمپر جریان را تحمل می کند. این را در هنگام انتخاب بار در نظر داشته باشید.
ال سی دی استفاده شده JHD162A است.
برای تنظیم کنتراست نمایشگر LCD می توان از پتانسیومتر R5 استفاده کرد. هنگامی که آن را وصل کنید، چیزی روی صفحه نمایش نمایش داده نمی شود. R5 را تنظیم کنید تا تصویری روی صفحه نمایش ظاهر شود. ولتاژ بهینه در لغزنده پتانسیومتر R5 در محدوده 0.4 تا 1 ولت است.
ترانزیستور مادون قرمز و دیود مادون قرمز از ماژول وقفه عکس LTH-1550 حذف شدند.
سطح جانبی فوتوترانزیستور باید با نوار الکتریکی پوشانده شود.
موقعیت سنسور در شکل زیر نشان داده شده است.

سرعت سنج ابزار مفیدی برای شمارش RPM (دور در دقیقه) چرخ یا هر چیزی است که می چرخد. ساده ترین راه برای ساخت سرعت سنج استفاده از فرستنده و گیرنده IR است. وقتی ارتباط بین آنها قطع می شود، می دانید که چیزی در حال چرخش است و می توانید از کد برای محاسبه RPM بر اساس فرکانس قطع ارتباط استفاده کنید.

در این مقاله به نحوه استفاده از فرستنده و گیرنده IR برای ساخت یک سرعت سنج با استفاده از آردوینو می پردازیم. نتیجه روی یک نمایشگر LCD 16x2 نمایش داده می شود.

هدف از این پروژه ایجاد سیستمی با یک ورودی و یک خروجی است. در ورودی دستگاه سیگنالی وجود دارد که در صورت قطع ارتباط از سطح بالا (+5V) به سطح پایین (+0V) تغییر می کند. طبق این سیگنال، آردوینو مقدار شمارنده داخلی را افزایش می دهد. سپس پردازش و محاسبه اضافی انجام می شود و هنگامی که ماشه قطع می شود، RPM محاسبه شده بر روی صفحه نمایش LCD نمایش داده می شود.

برای برقراری ارتباط از یک پرتو IR از یک LED IR که از طریق یک مقاومت کم مقاومت متصل شده است استفاده خواهیم کرد تا به شدت بدرخشد. ما از یک ترانزیستور نوری به عنوان گیرنده استفاده خواهیم کرد که در غیاب نور LED IR "بسته می شود". یک فن کامپیوتر بین فرستنده IR و گیرنده قرار می گیرد و روشن می شود. گیرنده IR از طریق فعال شده است مدار ترانزیستور، وقفه ایجاد می کند. از رابط آردوینو LCD برای خروجی نتیجه استفاده می شود، بنابراین می توانیم مقدار RPM نهایی را روی LCD خروجی دهیم.

عناصر:
آردوینو UNO
LCD 16x2
تخته نان
مقاومت تریمر 5 کیلو اهم
جامپرها
کانکتورهای SIP
2 x 2N2222 NPN ترانزیستور
LED مادون قرمز
فوتوترانزیستور
مقاومت 10 اهم
مقاومت 100 کیلو اهم
مقاومت 15 کیلو اهم یا 16 کیلو اهم
فن کامپیوتر

لیست دقیق اقلام

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

آردوینو UNO
این برد آردوینو است که ما از آن برای پردازش پالس های وقفه پرتو IR استفاده می کنیم که نشان دهنده وجود یک تیغه فن کامپیوتر بین گیرنده و سنسور است. آردوینو از این پالس ها به همراه یک تایمر برای محاسبه دور در دقیقه فن استفاده می کند.

LCD 16x2
هنگامی که آردوینو RPM را محاسبه کرد، این مقدار به صورت کاربر پسند بر روی صفحه نمایش نمایش داده می شود.

مقاومت تریمر 5 کیلو اهم
این تریم مقاومتبرای تنظیم کنتراست نمایشگر LCD 16x2 استفاده می شود. ولتاژ آنالوگ از 0 تا + 5 ولت را ارائه می دهد و به شما امکان می دهد روشنایی صفحه نمایش LCD را تنظیم کنید.

LED مادون قرمز و فوتوترانزیستور
فتوترانزیستور زمانی روشن می شود که نور مادون قرمز قدرتمند به آن برخورد کند. بنابراین هنگامی که LED IR روشن می شود، ترانزیستور فوتو ترانزیستور را باز نگه می دارد، اما اگر LED IR به عنوان مثال توسط یک تیغه فن پوشانده شود، آنگاه فوتوترانزیستور بسته می شود.

2N3904 و 2N3906
این ترانزیستورها برای تبدیل سطح سیگنال به منظور ارائه پالس های خروجی از فتو ترانزیستور به آردوینو استفاده می شوند که در آن ولتاژی غیر از +0 و +5 ولت وجود ندارد.

نمودار شماتیک

در مدار، رابط ارتباطی با نمایشگر LCD ساده شده است و تنها دارای 2 خط کنترل و 4 خط داده است.

ویژگی های طرح

رابط LCD 16x2
2 پایه کنترل و 4 پایه برای انتقال اطلاعات از آردوینو به صفحه نمایش LCD متصل شده است. این همان چیزی است که به ال سی دی می گوید چه کاری و چه زمانی باید انجام دهد.

مدار قطع پرتو IR
سیگنال شکست پرتو IR به دومین پین دیجیتال آردوینو می رود. این کار آردوینو را قطع می‌کند و به آن اجازه می‌دهد پالس را بشمارد و به سرعت سنج اجازه می‌دهد داده‌ها را دریافت کند.

کتابخانه LCD آردوینو

برای این پروژه از کتابخانه آردوینو LCD استفاده خواهیم کرد. اساساً ما فقط مقدار RPM را در خط دوم به خط جدید به روز می کنیم.

برای تهیه، نگاهی به کد زیر بیندازید که از این کتابخانه برای نمایش "Hello, World!" در LCD استفاده می کند. در سرعت سنج ما از کد مشابه استفاده خواهیم کرد، به خصوص: "lcd.print(millis()/1000);".

قبل از حرکت به جلو، عملکردهای این کتابخانه LCD را تا حد امکان با جزئیات بیشتر درک کنید. این خیلی پیچیده نیست و به خوبی در وب سایت آردوینو ثبت شده است.

محاسبه RPM با استفاده از آردوینو

از آنجایی که قرار است RPM یک فن کامپیوتر را محاسبه کنیم، باید بدانیم که از قطع پرتو IR برای محاسبه استفاده می کنیم. این بسیار راحت است، اما باید در نظر بگیریم که فن کامپیوتر دارای 7 پره است. این یعنی 7 وقفه برابر با 1 دور.

اگر وقفه‌ها را دنبال می‌کنیم، باید بدانیم که هر هفتمین وقفه به این معنی است که 1 چرخش کامل به تازگی رخ داده است. اگر زمان تکمیل یک چرخش را پیگیری کنیم، به راحتی می‌توانیم RPM را محاسبه کنیم.

زمان انقلاب 1 = P * (µS/ انقلاب)
RPM = دور در دقیقه = 60,000,000 * (µS/min) * (1/P) = (60,000,000 / P) * (rpm)

برای محاسبه RPM از فرمول داده شده در بالا استفاده می کنیم. فرمول دقیق است و دقت بستگی به این دارد که آردوینو چقدر می تواند زمان بین وقفه ها را ردیابی کند و تعداد دورهای کامل را بشمارد.

در عکس زیر تمامی قطعات و جامپرهای لازم را مانند نمودار مشاهده می کنید.

ابتدا +5V و خطوط داده/کنترل صفحه نمایش LCD را وصل کنید. سپس نمایشگر LCD، پتانسیومتر کنتراست و LED پاور.

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

بحث سخت افزاری بس است! بیایید شروع به انجام سیستم عامل/برنامه کنیم تا ببینیم دستگاه چگونه کار می کند!

بخش نرم افزاری

دو بخش اصلی کد وجود دارد که در زیر نشان داده شده و به تفصیل شرح داده شده است:
-چرخه رفرش LCD اصلی
-به روز رسانی زمان وقفه

در چرخه اصلی، چرخش ها و به روز رسانی های نمایشگر LCD شمارش می شود. از آنجایی که حلقه اصلی یک حلقه while(1) غول پیکر است، همیشه در حال اجرا است، RPM شمارش می شود و LCD چندین بار در ثانیه به روز می شود. تابع در وقفه زمان بین وقفه های IR را می شمارد، بنابراین می توانید RPM را در حلقه اصلی بشمارید.

به یاد داشته باشید که یک فن کامپیوتر دارای 7 پره است، بنابراین این سرعت سنج فقط برای کار با آن فن ها طراحی شده است. اگر فن یا دستگاه دیگر شما فقط 4 پالس در هر دور تولید می کند، کد را به "(time*4)" تغییر دهید.

دو فن تقریباً در دورهای 3000 و 2600 دور در دقیقه با خطای حدود +/-100 دور در دقیقه کار می کنند.

بررسی سرعت سنج در آردوینو

فن پالس های وقفه تولید می کند و در خروجی RPM را می بینیم. اگرچه دقت آن 100 درصد نیست، اما تقریباً 95 درصد است، با هزینه عناصر 10 دلار، ساخت این سرعت سنج بر روی آردوینو منطقی است.

خب الان چی؟

سیستم‌های مبتنی بر شکست پرتو نه تنها برای اندازه‌گیری RPM، بلکه مانند سایر سنسورها مفید هستند. به عنوان مثال، شما می خواهید بدانید که آیا درب باز است یا بسته. شاید بخواهید بدانید که آیا چیزی از زیر ربات می گذرد. استفاده های زیادی برای برش پرتو وجود دارد و مدار مورد استفاده در اینجا به قدری ساده است که راه های زیادی برای بهبود و ساخت دستگاه های شگفت انگیز دیگر وجود دارد.

نتیجه

در کل، من این پروژه را موفقیت آمیز می دانم... اما مسئله زمان و تجربه است... به هر حال، سیستم طبق خواسته و کاملاً قابل اعتماد کار می کند و ما به نتیجه مورد انتظار رسیدیم. امیدوارم از خواندن این مقاله و یادگیری نحوه ساخت تاکومتر خود با استفاده از آردوینو لذت برده باشید.

فهرست عناصر رادیویی

تعیین تایپ کنید فرقه تعداد توجه داشته باشیدخرید کنیددفترچه یادداشت من
برد آردوینو

آردوینو اونو

1 به دفترچه یادداشت
T2، T3 ترانزیستور دوقطبی

2N2222

2 2N3904 و 2N3906 به دفترچه یادداشت
R1 مقاومت

10 اهم

1 به دفترچه یادداشت
R2 مقاومت

100 کیلو اهم

1 به دفترچه یادداشت
R3 مقاومت

16 کیلو اهم

1

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



سرعت سنج در اصل یک دستگاه نسبتاً ساده است، بنابراین می توانید به راحتی آن را خودتان با استفاده از آردوینو بسازید.


برای ساختن یک سرعت سنج با دستان خود، باید سرعت چرخش را به یک فرم قابل خواندن تبدیل کنیم. تنها فرمی که آردوینو می تواند بخواند این است ولتاژ الکتریکی. به خوبی شناخته شده است که اگر ولتاژ به یک موتور اعمال شود، آنگاه این موتور شروع به چرخش می کند و با آن چرخ نیز می چرخد ​​(اگر به شفت موتور متصل باشد) که سرعت آن با مقدار ولتاژ تعیین می شود. کاربردی. با این حال، برعکس نیز صادق است: اگر خود موتور را بچرخانیم، می‌توانیم ولتاژ را در دو سر پایانه‌های آن موتور دریافت کنیم. این ولتاژ را می توان به آردوینو اعمال کرد و آردوینو می تواند سرعت چرخش را بسته به مقدار ولتاژ اعمال شده به یک موتور معین محاسبه کند.


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



هنگامی که موتور شروع به چرخش می کند، ولتاژ مثبت به ورودی آنالوگ آردوینو ارسال می شود. آردوینو این ولتاژ را به کد دیجیتال. از آنجایی که ما از نمایشگر هفت سگمنت استفاده می کنیم، می توانیم 10 مقدار داشته باشیم، یعنی از مقدار 0 تا 9. می توانیم آردوینو را طوری برنامه ریزی کنیم که مقدار آنالوگ دریافتی خود را به 9 بخش تقسیم کند، که خروجی مورد نظر را از 0 به 9. در زیر کد کار با سرعت سنج خانگی در آردوینو آمده است.


intval=0; intbinVal; void setup() (Serial.begin(9600)؛ // تنظیم پورت سریال pinMode(3,OUTPUT)؛ pinMode(4,OUTPUT)؛ pinMode(5,OUTPUT)؛ pinMode(6,OUTPUT)؛ pinMode(A2 ,INPUT ) void loop() (val = analogRead(A2)؛ // خواندن ورودی آنالوگ (ولتاژ از موتور) Serial.println(val); // مقدار اشکال زدایی binVal=val/1024*9؛ سوئیچ( binVal)( مورد 0: digitalWrite(3,LOW)؛ digitalWrite(5,LOW)؛ break؛ (5,LOW)؛ digitalWrite(6,LOW)؛ digitalWrite(3,LOW)؛ : digitalWrite(3,HIGH)؛ DigitalWrite(5,LOW); digitalWrite(6,LOW); زنگ تفريح؛ مورد 7: DigitalWrite (3,HIGH)؛ digitalWrite (4,HIGH)؛ digitalWrite (5,HIGH)؛ digitalWrite(6,LOW); زنگ تفريح؛ مورد 8: digitalWrite(3,LOW); digitalWrite (4، LOW); digitalWrite (5، LOW); digitalWrite (6,HIGH)؛ زنگ تفريح؛ مورد 9: DigitalWrite(3,HIGH)؛ digitalWrite (4، LOW); digitalWrite (5، LOW); digitalWrite (6,HIGH)؛ زنگ تفريح؛ پیش فرض: break; ))
اگر خطایی پیدا کردید، لطفاً یک متن را انتخاب کنید و Ctrl+Enter را فشار دهید.