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

آموزش شیلد درایور موتور L293D با برد آردوینو بخش اول سرو Servo motor

L293D-arduino-shield-servo-motor-digispark
نوشته شده توسط پریسا پوربلورچیان

موتورهای مختلف برای کاربری‌های مختلف بوجود آمده‌اند. هر موتور توانایی متفاوت با ویژگی ساختاری و ظاهری متفاوتی دارد. از اینرو برای فرمان به موتورها نیازمند ولتاژو جریان منحصر به فرد برای همان موتور می‌باشیم. ولی برای کنترل موتور از درایور Motor Driver استفاده می‌شود. درایور موتور یک رابط بین میکروکنترلر و موتور می‌باشد. با این روش میتوان توسط جریان ناچیز میکروکنترلر، یه یک موتور با جریان زیادتر و ولتاژ متفاوت فرمان داد. در ادامه مجموعه آموزش شیلد درایور موتور L293D با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

 

شیلد درایور موتور L293D

درایور L293D از یک مدار یکپارچه با ولتاژ و جریان بالا با درایور ۴ کاناله تشکیل شده است. درایور L293D به عنوان مدار H Bridge شناخته می‌شود. مدار پل H، به ولتاژ اجازه می‌دهد در مسیر بار Load در خروجی به صورت ساعتگرد و پادساعتگرد حرکت کند. شماتیک مدار H Bridge به صورت زیر است:

به عنوان مثال در تصویر بالا با فعال بودن ماسفت (کلید) Q1 و Q4 موتور فعال شده و به سمت راست حرکت می‌کند. همچنین با فعال شدن ماسفت Q2 و Q3 موتور فعال شده و در جهت چپ (معکوس) حرکت خواهد کرد. با فعال شدن همزمان کلید Q1 و Q2 و یا Q3 و Q4 اتصال کوتاه در ولتاژ ورودی به وجود خواهد آمد. با غیر فعال شدن تمامی کلیدها موتور آزاد شده و ثابت خواهد بود. در جدول زیر حالت های مختلف مدار نمایش داده شده است.

تراشه L293D توانایی درایو موتور تا ۳۶ ولت را خواهد داشت. توسط این تراشه هر کانال درایور موتور تا ۶۰۰ میلی آمپر جریان دهی خواهد داشت. از ویژگی‌های این شیلد می‌توان به داشتن ۲ کانکتور + ۵ ولت Dc اشاره کرد. همچنین دارای ۴ رابط کانکتور برای اتصال استپر موتور Stepper Motor و موتور ( ۲ استپر موتور + ۲ موتور DC) است. شیلد درایور موتور دارای ۶ پین برای اتصال دو سرو موتور Servo Motor است که با نام های SER1 و SERVO – 2 بر روی شیلد مشخص شده است. یک کلید ریست Reset پایین شیلد قرار گرفته شده است. ولتاژ ورودی شیلد درایور موتور ۴٫۵ تا ۱۲ ولت DC است. این شیلد قابلیت راه اندازی با میکروکنترل های آردوینو Arduino UNO و Arduino Mega2560 را دارد. ابعاد شیلد درایور موتور ۶۹ * ۵۳ * ۱۴٫۳ میلی متر است.

 

اجرای پروژه سرو موتور Servo Motor

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

 

سرو موتور MG996R Servo

سرو موتور MG996R از دنده برنجی بسیار محکمی تشکیل شده است. این سرو موتور Servo Motor دارای گشتاور بسیاری بالایی در مقابل جریان و ولتاژ مصرفی است. در ولتاژ ۴٫۸ ولت گشتاور ۹٫۴ Kgf.Cm و در ولتاژ ۶ ولت گشتاور ۱۱Kgf.cm خواهد داشت. ولتاژ ورودی سرو موتور MG996R بین ۴٫۸ تا ۷٫۲ ولت DC است. همچنین در ولتاژ ۶ ولت بین ۵۰۰ تا ۹۰۰ میلی آمپر جریان می‌کشد. جریان توقف آن در ولتاژ ۶ ولت حدود ۲٫۵ آمپر خواهد بود. دمای کاری سرو موتور بین ۰ تا + ۵۵ درجه سانتی گراد است. سرو موتور MG996 در زاویه ۳۶۰ درجه چرخش می‌کند. همانند دیگر سروها این سرو موتور از سه پایه تشکیل شده است. پایه GND, VCC, Signal که به ترتیب با رنگ‌های قهوه‌ای، قرمز و نارنجی مشخص شده است. دیتاشیت سرو موتور MG996R در صفحه محصول کالا در دانشجوکیت قرار گرفته شده است، دانلود و مطالعه نمایید.

 

 

اتصال شیلد درایور موتور به آردوینو

  • شیلد درایور موتور L293 را با رعایت پایه‌ها بر روی برد آردوینو Arduino قرار دهید. همانطور که قبلا هم بارها اشاره کرده‌ایم، یکی از خاصیت شیلدها عدم نیاز به سیم کشی می‌باشد. شیلد کاملا با ابعاد بردهای آردوینو همخوانی دارد از اینرو بدون هیچ نگرانی می‌توانید روی برد قرار دهید. فقط دقت کنید که پایه‌ها روبری هم قرار گیرند و سپس شیلد را جای گذاری کنید. همانند تصویر زیر:

شیوه اتصال شیلد درایور موتور L293D روی آردوینو - دیجی اسپارک

 

اتصال سرو موتور به آردوینو

  • پایه قهوه‌ای سرو موتور MG996R را به پایه GND (-) شیلد درایور موتور L293D اتصال دهید.
  • پایه قرمز سرو موتور MG996R را به پایه VCC (+) شیلد درایور موتور L293D اتصال دهید.
  • پایه نارنجی سرو موتور MG996R را به پایه سیگنال (S) شیلد درایور موتور L293D اتصال دهید.

 

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

برای اجرای این پروژه نیاز به فراخوانی ۲ کتابخانه خواهیم داشت. چنانچه شیوه نصب کتابخانه در آردوینو را نمی‌دانید. به پست آموزش نصب کتابخانه در نرم افزار آردوینو مراجعه کنید. اگر هم شیوه نصب و راه اندازی نرم افزار آردوینو را نمی‌دانید. به آموزش کار با برد آردوینو و نصب نرم افزار آردوینو Arduino IDE مراجعه کنید.

  • کتابخانه AFMotor

کتابخانه AFMotor جهت راه اندازی شیلد درایور موتور فراخوانی می‌شود. لینک دانلود این کتابخانه در صفحه محصول شیلد درایور موتور L293D قرار گرفته شده است. از قسمت دانلود آن را دریافت کرده و نصب کنید.

  • کتابخانه Servo

کتابخانه سرو Servo جهت راه اندازی سرو موتور فراخوانی می‌شود. لینک دانلود این کتابخانه در صفحه محصول سرو موتور MG996R قرار گرفته شده است. از قسمت دانلود آن را دریافت کرده و نصب کنید.

 

 

کد آردوینو Arduino

 

مهمان گرامی، جهت دسترسی به کدهای این پروژه، اسپارکر شوید.

 

 

کد آردوینو را از طریق کلیدهای میانبری که برای انتقال کدها در نظر گرفته شده است، کپی کرده و به نرم افزار آردوینو Arduino انتقال دهید. سپس طبق اتصالات گفته شده در متن، شیلد و سرو موتور را به آردوینو اتصال دهید. از منو Tools نوع برد را Arduino Uno انتخاب کرده و پورت Port را انتخاب کنید.

 

تحلیل کد آردوینو شیلد L293D

انتخاب یک متغیر ثابت برای سرو موتور

تعریف زاویه ولیه سرو موتور

فراخوانی سرو موتور

سرو موتور Servo Motor در دو جهت با زاویه ۳۶۰ درجه حرکت می‌کند. دو تابع برای سرو در جهت رفت و برگشت تعریف می‌کنیم:

 

چرخش سرو از زاویه ۰ به ۳۶۰ درجه

در این حالت پس از کامپابل برنامه سرو موتور Servo Motor از زاویه ۰ با زوایه ۳۶۰ درجه به حرکت در خواهد آمد، که به صورت زیر در کد تعریف می‌کنیم:

 

آموزش شیلد درایور موتور L293D با آردوینو - دیجی اسپارک

چرخش سرو از ۳۶۰ به ۰ درجه

پس از چرخش ۰ به ۳۶۰ درجه، سرو موتور Servo Motor با تاخیر ۱۰ میلی ثاینه به زاویه ۰ درجه بازخواهد گشت:

این چرخه با تاخیر ۱۰ میلی ثانیه در این حلقه تکرار خواهد شد.

 

وسایل مورد نیاز

شیلد درایور موتور L293D

برد آردوینو Arduino Uno

سرو موتور MG996R دنده برنجی و شفت ۳۶۰ درجه

آداپتور ۱۲ ولت 

 

 

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

 

پروژه

طی چند قسمت قبلی که طرح پروژه را پیاده سازی کردیم، با استقبال شما کاربران مواجه شدیم. در این سری برای اینکه گستره بیشتری از افراد بتوانند فرصت استفاده از بن خرید را داشته باشند؛ روال دیگری را در پیش گرفتیم. در این روش تصمیم گرفته‌ایم به ۱۰ نفر از کاربران بن خرید ارایه شود. برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و بسته به خلاقیت، مدار جدیدی ایجاد کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ «#دیجی_اسپارک» و «#دانشجوکیت» و «#digispark» و «#daneshjookit» منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۳۲ دیدگاه

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

    • سلام
      کاربر گرامی دقت کنید که این آموزش مربوط به شیلد درایور موتور L293D می‌باشد و از L298N استفاده نشده است. دقت بفرمایید دیجی اسپارک مرجع برنامه نویسی رایگان نمی‌باشد و فقط آموزش های رایگان در این خصوص منتشر می‌شوذ. شما نیاز دارید دانش فنی در خصوص برنامه نویسی بدانید.

  • سلام
    از توضیحات کامل شما ممنونم.
    آیا این آموزش ها ادامه دار است؟؟ من میخوام تهیه کنم ولی واقعا نمیتونم با نمونه های خارجی پیش برم و میخوام با شما پیش بیام. اگر ادامه داره خرید کنم!

    • سلام
      از توجه شما ممنونم.
      همانطور که در تیتر این آموزش مشخص است، این بخش اول آموزش کار با شیلد درایور موتور L293 می‌باشد و بخش های بعدی به زودی منتشر خواهد شد.

    • سلام
      به میتوانید همزمان از دو سرو موتور استفاده کنید. تنها دقت داشته باشید که در کد برنامه تعریف کنید.

  • سلام بنده میخوام توسط یک ریموت یا یک کلید موتور ۱۸۰ درجه بچرخه بعد استپ کنه و با زدن مجدد کلید یا ریموت موتور ۱۸۰ درجه برگرده، آیا با این تجهیزات این امکان وجود داره؟

  • با عرض سلام و وقت بخیر خدمت خانوم مهندس پوربلورچیان
    ممنون از بابت اموزشهایی که تو سایت گذاشتین.
    ببخشی همین برنامه رو گه بدون استفاده از شیلد l293 ، مستقیم به اردوینو uno کمپایلش کنی تو این مدل سروو موتور کار میکنه؟
    ببخشید تازه کارم خب

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

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

  • سلام من این (سرو موتور MG996R دنده برنجی و شفت ۳۶۰ درجه) رو تهیه کردم ولی شیلد l293 رو ندارم می خواهم این سرو موتور رو راه اندازی کنم اما وقتی به اردینو وصلش میکنم و کد خودمو روش میریزم خودش شروع به چرخیدن میکنه و در درجات مختلفی که من بهش اعمال میکنم نمیره مثلا الان نباید اصلا سرو موتور بیشتر از ۳۶۰ درجه حرکت کنه اما این سرو موتور برا خودش شروع به حرکت میکنه و از ۳۶۰ درجه هم میگزه و وای نمیسه مشکل از کجاست اصلا امکان نداره از ۳۶۰ درجه بیشتر حرکت کنه

    • سلام
      در این پروژه از درایور موتور L293D استفاده شده است تا توان و جریان کافی جهت راه اندازی سرو موتور در خروجی میکروکنترلر را تولید کند.
      طبق دیتاشیت سرو موتور MG996 ولتاژ کاری سرو بین ۴٫۸ تا ۷٫۲ ولت DC است و با ولتاژخروجی میکروکنترلر جریان کافی برای راه اندازی سرو موتور ایجاد نمی‌شود.
      پیشنهاد می‌شود با درایور موتور تست و راه اندازی کنید.

      • سلام ممنون بابت پاسخ شما – من از منبع جدا برای راه اندازی سرو موتور استفاده میکنم از ۶ ولت ۵۰۰ میلی امپر و همچنین سیم gnd اردینو و ولتاژ تغذیه رو مشترک کردم با سرو موتور sg50 امتحان کردم کار کرد کد مورد نظرم اما با این سرو موتور تا کد خودمو روی اردنو میریزم وای نمیسه درجه بهش اعمال کنم خودش میچرخه براخودش اما سرو موتور sg50 درست کار میکنه – شما کلا میگین برای راه اندازی ولتاژه معینی باید بهش داده بشه بنده میگم که راه اندازی میشه فقط درست کار نمی کنه نباید خودش برا خودش شروع به چرخیدن بکنه.

        • این سرو موتور Servo Motor به این دلیل که گشتاور بالایی دارد، پیشنهاد می‌گردد با یک درایور موتور راه اندازی گردد.
          همانند آموزش پیش بروید و نتیجه را اعلام کنید.

    • درود
      برای اینکار باید برای هر سرو یک attach در نظر بگیرید و با توجه به اینکه در آپدیت جدید آردوینو محدودیتی برای پایه های دیجیتال آردوینو ندارید، بسیار ساده خواهد بود.

      • بسیار ممنونم دقیقا همینجوره. اما چرا شرکت اردوینو پیشنهاد داده که فقط از پین شماره ۹ . ۱۰ استفاده شود

        Attach the Servo variable to a pin. Note that in Arduino 0016 and earlier, the Servo library supports only servos on only two pins: 9 and 10.

        من توی یه پروژه از ۳ تا سروو استفاده کردم اون سروو که روی پین ۸ نصب بود در زاویه ای که باید مکث میکرد کمی لرزش داشت .
        باز هم از شما ممنونم.

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

  • سلام خسته نباشید من الان موتور و برد را دارم اما شیلد درایور موتور L293D را ندارم اگر خواسته باشم بودن شیلد موتور را وصل کنم په تغییراتی باید انجام بدهم باتشکر

    • سلام
      هیچ تغییراتی نیاز نیست، از درایور موتور جهت تامین جریان و ولتاژ کافی برای راه اندازی موتور استفاده می‌شود. پیشنهاد می‌شود حتما از درایور موتور استفاده نمایید.

  • با سلام سروو موتور های من بعد از اتصال و فعال سازی میکرو به انتها میچرخه و دیگه به هیچ جهتی تغییر نمیکنه این اشکال از چی میتونه باشه؟ حتی در قسمت کنترل سروو با بلوتوث هم این مشکل رو داشتم و اصلا فرمان ارسالی از تلفن همراه رو انجام نمیداد و در همون امتها می موند.

  • سلام من در برنامه نویسی آردوینو به یک مشکل برخوردم لطفا اگه میشه راهنمایی کنید . ممنون
    Arduino: 1.8.4 (Windows 10), Board: “Arduino/Genuino Uno”

    E:\Program Files\Arduino\arduino-builder -dump-prefs -logger=machine -hardware E:\Program Files\Arduino\hardware -hardware C:\Users\k\AppData\Local\Arduino15\packages -tools E:\Program Files\Arduino\tools-builder -tools E:\Program Files\Arduino\hardware\tools\avr -tools C:\Users\k\AppData\Local\Arduino15\packages -built-in-libraries E:\Program Files\Arduino\libraries -libraries C:\Users\k\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10804 -build-path C:\Users\k\AppData\Local\Temp\arduino_build_249423 -warnings=none -build-cache C:\Users\k\AppData\Local\Temp\arduino_cache_460128 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Users\k\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.1.1 -prefs=runtime.tools.avrdude.path=C:\Users\k\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9 -prefs=runtime.tools.avr-gcc.path=C:\Users\k\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2 -verbose C:\Users\k\Desktop\IRMR\IRMR.ino
    E:\Program Files\Arduino\arduino-builder -compile -logger=machine -hardware E:\Program Files\Arduino\hardware -hardware C:\Users\k\AppData\Local\Arduino15\packages -tools E:\Program Files\Arduino\tools-builder -tools E:\Program Files\Arduino\hardware\tools\avr -tools C:\Users\k\AppData\Local\Arduino15\packages -built-in-libraries E:\Program Files\Arduino\libraries -libraries C:\Users\k\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10804 -build-path C:\Users\k\AppData\Local\Temp\arduino_build_249423 -warnings=none -build-cache C:\Users\k\AppData\Local\Temp\arduino_cache_460128 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Users\k\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.1.1 -prefs=runtime.tools.avrdude.path=C:\Users\k\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9 -prefs=runtime.tools.avr-gcc.path=C:\Users\k\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2 -verbose C:\Users\k\Desktop\IRMR\IRMR.ino
    Using board ‘uno’ from platform in folder: C:\Users\k\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21
    Using core ‘arduino’ from platform in folder: C:\Users\k\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21
    Detecting libraries used…
    “C:\Users\k\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR “-IC:\Users\k\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\cores\arduino” “-IC:\Users\k\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\variants\standard” “C:\Users\k\AppData\Local\Temp\arduino_build_249423\sketch\IRMR.ino.cpp” -o “nul”
    Generating function prototypes…
    “C:\Users\k\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR “-IC:\Users\k\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\cores\arduino” “-IC:\Users\k\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\variants\standard” “C:\Users\k\AppData\Local\Temp\arduino_build_249423\sketch\IRMR.ino.cpp” -o “C:\Users\k\AppData\Local\Temp\arduino_build_249423\preproc\ctags_target_for_gcc_minus_e.cpp”
    “E:\Program Files\Arduino\tools-builder\ctags\5.8-arduino11/ctags” -u –language-force=c++ -f – –c++-kinds=svpf –fields=KSTtzns –line-directives “C:\Users\k\AppData\Local\Temp\arduino_build_249423\preproc\ctags_target_for_gcc_minus_e.cpp”
    Compiling sketch…
    “C:\Users\k\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR “-IC:\Users\k\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\cores\arduino” “-IC:\Users\k\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\variants\standard” “C:\Users\k\AppData\Local\Temp\arduino_build_249423\sketch\IRMR.ino.cpp” -o “C:\Users\k\AppData\Local\Temp\arduino_build_249423\sketch\IRMR.ino.cpp.o”
    C:\Users\k\Desktop\IRMR\IRMR.ino: In function ‘void loop()’:

    IRMR:34: error: lvalue required as left operand of assignment

    if(vm1++||vm1+=2||vm1+=3||vm1+=4||vm1+=5||vm1+=6||vm1+=7||vm1+=8||vm1+=9||vm1+=10){

    ^

    IRMR:41: error: lvalue required as left operand of assignment

    if(vm1–||vm1-=2||vm1-=3||vm1-=4||vm1-=5||vm1-=6||vm1-=7||vm1-=8||vm1-=9||vm1-=10){

    ^

    IRMR:54: error: lvalue required as left operand of assignment

    if(vm1–||vm1-=2||vm1-=3||vm1-=4||vm1-=5||vm1-=6||vm1-=7||vm1-=8||vm1-=9||vm1-=10){

    ^

    IRMR:61: error: lvalue required as left operand of assignment

    if(vm1++||vm1+=2||vm1+=3||vm1+=4||vm1+=5||vm1+=6||vm1+=7||vm1+=8||vm1+=9||vm1+=10){

    ^

    exit status 1
    lvalue required as left operand of assignment