در این مثال ما یک محرک خطی را با یک درایور آردوینو و موتور کنترل خواهیم کرد.
توجه: این آموزش دانش قبلی را با اصول اولیه الکترونیکی ، سخت افزار و نرم افزار آردوینو در نظر گرفته است. اگر اولین بار است که از Arduino استفاده می کنید ، پیشنهاد می کنیم اصول را از یکی از بسیاری از آموزش های عالی مبتدی برای جستجو در Google و YouTube بیاموزید. لطفاً توجه داشته باشید که منابعی برای ارائه پشتیبانی فنی برای برنامه های سفارشی نداریم و خارج از این آموزشهای عمومی که موجود نیست ، اشکال زدایی ، ویرایش ، ارائه کد یا سیم کشی را انجام نمی دهیم.
اجزاء
- محرک خطی 12 ولت
- منبع تغذیه 12 ولت
- آردوینو
- راننده موتور
- پتانسیومتر (اختیاری)
- سیم های برق برای ایجاد اتصالات و ابزار چین دار یا آهن لحیم کاری
سیم کشی
مروری بر سخت افزار و نرم افزار
موتورهای DC در محرک های خطی به جریان زیاد (حداکثر 5 آمپر) نیاز دارند ، اگر بخواهیم محرک خطی را مستقیماً به آردوینو وصل کنیم ، این کشش جریان بالا باعث خرابی پین های دیجیتال آردوینو می شود زیرا هر کدام فقط 40mA درجه بندی می شوند. بنابراین ما از یک درایور موتور استفاده می کنیم که می تواند سیگنال PWM جریان کم (مدولاسیون عرض پالس) را از برد Arduino گرفته و سیگنال PWM جریان بالا را به محرک خطی منتقل کند.
درایور موتور به دو پایه دیجیتال PWM متصل است (پایه های 10 و 11 روی Arduino Uno). با تنظیم یکی از این پایه ها LOW و دیگری HIGH (مشاهده کد 18 و 19 در کد زیر) می توان محرک را با حداکثر سرعت گسترش داد. برای متوقف کردن محرک ، هر دو پایه را روی LOW قرار می دهیم (به خط 21 و 22 در کد زیر مراجعه کنید) و جهت معکوس جهت حرکت را می توان ترتیب پایه های HIGH و LOW را معکوس کرد (به خط 24 و 25 در کد زیر مراجعه کنید). همچنین می توانیم سرعت را با تغییر متغیر "Speed" به هر مقداری در محدوده [0 ، 255] تنظیم کنیم. به خط 17 در کد زیر مراجعه کنید.
کد
https://gist.github.com/Will-Firgelli/c0ef0871dc1946d75257e0c29dccae2a
کنترل سرعت متنوع با پتانسیومتر
در مثال فوق سرعت را به صورت دستی در خط 17 کد تنظیم می کنیم. اما ممکن است شرایطی پیش بیاید که بخواهیم سرعت محرک را به موقع تغییر دهیم. ساده ترین روش برای دستیابی به این هدف استفاده از پتانسیومتر است. آ پتانسیومتر استیک مقاومت متغیر سه ترمینال که می تواند به عنوان یک تقسیم کننده ولتاژ عمل کند. با چرخاندن دکمه پتانسیومتر ولتاژ خروجی متفاوت خواهد بود و ما می توانیم این را به پین آنالوگ موجود در Arduino متصل کنیم تا سرعت متغیری تنظیم شود.
سیم کشی
مروری بر سخت افزار و نرم افزار
همانطور که در بالا ذکر شد ، پتانسیومتر دستگاهی دوار است که با چرخاندن دستگیره مقاومت آن را تغییر می دهد. با اتصال دو پایه خارجی پتانسیومتر به 5 ولت و GND و پایه میانی به پایه آنالوگ آردوینو ، A0 ، یک تقسیم کننده ولتاژ ایجاد می شود. با چرخاندن دکمه ، آردوینو قرائت های آنالوگ را از [0 ، 1023] می خواند.
برای مقادیر در محدوده [512 ، 1023] می خواهیم محرک گسترش یابد و برای مقادیر [0 ، 511] می خواهیم محرک جمع شود ، این را می توان با یک جمله ساده () / else در سطرهای 22 و 28 در کد زیر سپس با استفاده از تابع map () (خط 23 و 29 در کد زیر) می توانیم آن را به یک سیگنال PWM تبدیل کنیم که هم سرعت و هم جهت محرک را کنترل خواهد کرد.
کد
https://gist.github.com/Will-Firgelli/d2cdf69edc829974885984b3fb8e4856