آردوینو چیست؟
سر و صدا یک بستر نمونه سازی نمونه سازی الکترونیک منبع باز مبتنی بر سخت افزار و نرم افزار انعطاف پذیر و آسان برای استفاده است. این برای پروژه های DIY ، هنرمندان ، طراحان ، سرگرمی ها و هر کسی که علاقه مند به ایجاد پروژه های تعاملی است ، در نظر گرفته شده است. Arduinos تابلوهای میکروکنترلر هستند که شامل همه چیزهایی هستند که شما نیاز دارید تا به راحتی با میکروکنترلر ارتباط برقرار کنید. میکروکنترلر مانند یک کامپیوتر کوچک برای سیستم های تعبیه شده است و نوع میکروکنترلر موجود در آن به سبک آردوینو بستگی دارد. Arduino از بزرگتر است آردوینو مگا به متوسط arduino uno به کوچکتر Arduino Pro Miniبشر تابلوهای با اندازه متفاوت تعداد فزاینده ای از پین های I/O و ویژگی های اضافی را فراهم می کند و محبوب ترین این تابلوها UNO است. Arduino همچنین یک منبع باز رایگان برای استفاده از IDE برای برنامه ریزی میکروکنترلرهای شما فراهم می کند. Arduino IDE از یک زبان برنامه نویسی آسان برای درک استفاده می کند و به دلیل محبوبیت آردوینو ، می توانید نمونه های مفیدی را به صورت آنلاین پیدا کنید تا به شما در کدگذاری برنامه خاص خود کمک کند. اگر این اولین پروژه Arduino شماست ، کیت آردوینو هر آنچه را که از کابل های بلوز گرفته تا سنسورها گرفته تا رله ها نیاز دارید ، برای شما فراهم می کند و شامل Arduino Uno برای شروع کار شما است.
چرا از یک آردوینو برای کنترل یک محرک خطی استفاده می کنید؟
یکی از بزرگترین مزایای استفاده از آردوینو یا هر میکروکنترلر برای آن موضوع ، کنترل a محرک خطی این است که شما کنترل بیشتری بر محرک خطی خود دارید. میکروکنترلرها به شما امکان می دهند از ورودی های پیچیده تر از سنسورها یا دستگاه های دیگر برای کنترل محرک خطی خود استفاده کنید. آنها به شما امکان می دهند محاسبات زمان واقعی را از پیش تعیین کنید تا موقعیت خود را قرار دهید فعال کننده در موقعیت ایده آل یا اجرای تایمرها برای اتوماسیون تغییرات موقعیت محرک های خود. میکروکنترلرها همچنین می توانند از محرک های شما بازخورد بگیرند تا موقعیت و کنترل سرعت دقیق تری را ارائه دهند و همچنین بیش از یک محرک را همزمان کنترل کنند. به عبارت ساده تر ، میکروکنترلرها کنترل و انعطاف پذیری بیشتری را برای شما فراهم می کنند و با استفاده از طراحی آسان و محبوبیت گسترده Arduino ، سطح پیچیدگی اضافی حداقل است.
کنترل یک محرک خطی با آردوینو
شما قادر نخواهید بود به طور مستقیم محرک خطی خود را با یک آردوینو مانند شما با سوئیچ رابط کنید زیرا ولتاژ عملیاتی Arduino فقط 5 ولت است و محدودیت های جریان بسیار کمی دارد. برای کنترل محرک خطی که می توان با استفاده از رله ها یا درایور موتور انجام شد ، باید از یک مؤلفه میانی استفاده کنید.
رله
همانطور که بحث شد اینجا, رله سوئیچ های الکترومغناطیسی هستند که با انرژی و انرژی بخشیدن به سیم پیچ برای باز و بستن سوئیچ کنترل می شوند. Arduino را می توان برای کنترل رله با انرژی و انرژی بخشیدن به سیم پیچ با استفاده از یک پین I/O استفاده کرد. بسته به نوع رله ای که استفاده می کنید ، میزان کنترل شما نسبت به محرک خطی خود را تغییر می دهد ، اما ارتباط با آردوینو کاملاً مستقیم به جلو است ، فقط سیم پیچ را با یک پین I/O انرژی دهید. شما باید اطمینان حاصل کنید که ولتاژ رتبه بندی شده سیم پیچ در اطراف ولتاژ عملیاتی Arduino (5V) یا Arduino قادر به انرژی کافی برای افزایش سوئیچ نخواهد بود.
در بالا نمونه ای از رابط آردوینو با پیکربندی رله دو SPDT است. در این پیکربندی ، که در اینجا شرح داده شده است ، از دو رله برای چرخاندن قطبیت ولتاژ به محرک خطی و همچنین جدا کردن قدرت به محرک استفاده می شود. در مثال کد در زیر نشان داده شده است ، Arduino با تنظیم پین 7 به پایین ، به مدت 2 ثانیه محرک را به مدت 2 ثانیه افزایش می دهد ، سپس با استفاده از تنظیم رله بالا با تنظیم هر دو پین ، 2 ثانیه را به مدت 2 ثانیه متوقف می کند. برای عقب نشینی محرک ، Arduino با تنظیم پین 8 به پایین ، رله دوم را به مدت 2 ثانیه انرژی می بخشد ، سپس با تنظیم مجدد تمام پین ها به مدت 2 ثانیه ، محرک را به مدت 2 ثانیه متوقف می کند. از آنجا که این کد در بخش حلقه برنامه است ، Arduino تکرار این کد را بارها و بارها ادامه خواهد داد. بدیهی است ، شما می توانید یک راه حل کدگذاری زیبا را برای برنامه خود پیاده سازی کنید ، اما اگر به دنبال کنترل حتی بیشتر هستید ، می خواهید از درایور موتور استفاده کنید.
https://gist.github.com/OMikeGray/6bf644b6cda85bfe8c898ccd44ec6d78
راننده موتور
آ راننده موتور یک طرح مدار یکپارچه به طور خاص برای کنترل موتورهای DC است که باعث ایجاد محرک های خطی DC می شود. درایورهای موتور معمولاً از یک پل H استفاده می کنند تا امکان کنترل جهت و سرعت را فراهم کنند. نحوه اتصال دقیقاً آردوینو به درایور موتور شما به درایور دقیق موتور بستگی دارد اما برای این کار حداقل به دو پین I/O نیاز دارد و یکی از آنها سیگنال PWM خواهد بود. مدولاسیون PWM یا پالس عرض روشی برای تغییر سیگنال بین مقادیر روشن و خاموش برای تأمین موثر ولتاژ پایین تر است. درایور موتور می تواند از این سیگنال برای تنظیم سرعتی که موتور در آن کار می کند ، استفاده کند.
در بالا نمونه ای از ما است درایو موتور DC جریان بالا با یک آردوینو ارتباط برقرار کرد. برای این درایور موتور ، شما ملزم به ارسال دو سیگنال PWM هستید ، یکی برای گسترش محرک و دیگری برای عقب نشینی. PWM به عنوان یک بایت بدون امضا به این معنی است که از 0 ، بدون ولتاژ ، تا 255 ، حداکثر ولتاژ (5V) متغیر است ، که متناسب با سرعت موتور خواهد بود. از آنجا که PWM یک مقدار باینری نیست ، ما باید از پین های PWM Arduino استفاده کنیم و از عملکرد نوشتن آنالوگ استفاده کنیم ، همانطور که در مثال زیر مشاهده می شود. پین های PWM در Arduino با ~ یا به سادگی به عنوان پین PWM نشان داده می شوند.
https://gist.github.com/OMikeGray/c4e0196704a4d62db5507ad8297708f4
در مثال کد بالا ، Arduino با ارسال راننده موتور 5 ولت کامل از پین 10 به پین LPWM در درایور موتور ، محرک را با سرعت کامل به مدت دو ثانیه گسترش می دهد. سپس Arduino با ارسال هیچ سیگنال به پین ورودی درایور موتور ، محرک را متوقف می کند. Arduino سپس با ارسال سیگنال درایور موتور که نیمی از آن و نیمی از پین 11 تا RPWM روی درایور موتور است ، محرک را با نیمی از سرعت جمع می کند. سپس دوباره محرک را متوقف می کند. از آنجا که این کد در بخش حلقه برنامه است ، Arduino تکرار این کد را بارها و بارها ادامه خواهد داد. یک بار دیگر ، می توانید یک راه حل کد نویسی زیبا تر را متناسب با برنامه شما پیاده سازی کنید ، به خصوص اگر برای کنترل محرک خود ورودی هایی اضافه کنید.
اضافه کردن ورودی ها
هنگامی که می توانید محرک خود را با یک Arduino کنترل کنید ، می توانید برای اتوماسیون و کنترل بیشتر ورودی های Arduino را پیاده سازی کنید. این ورودی ها می توانند باشند سوئیچ، طیف گسترده ای از سنسورها یا حتی بازخورد از خود محرک. از آنجا که طیف گسترده ای از گزینه ها برای ورودی ها وجود دارد ، نحوه اجرای آنها متفاوت خواهد بود اما چند نکته کلی وجود دارد که باید بدانید. اگر ورودی ورودی باینری مانند سوئیچ را فراهم کند ، می خواهید از پین های دیجیتالی روی Arduino استفاده کنید ، که در صفحه یا در صفحه داده برچسب گذاری می شود و از عملکرد DigitalRead () در آن استفاده می کنید. Arduino IDE. اگر دستگاه ورودی شما یک سیگنال آنالوگ را ارائه می دهد ، باید از پین های آنالوگ استفاده کنید ، که در صفحه یا در صفحه داده برچسب گذاری می شود و از عملکرد Analogread () استفاده می کنید.