آردوینو آموزش آردوینو ترفند

آماده سازی برد آردوینو جهت ارتباط سریال با دستور ifserial

ifserial-for-Arduino-IDE-digispark
نوشته شده توسط پریسا پوربلورچیان

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

 


سریال مانیتور Serial Monitor


از سریال مانیتور برای ارتباط بین دو آردوینو با یکدیگر، آردوینو به کامپیوتر و یا ارتباط آردوینو با سایر دستگاه ها استفاده می‌شود. آردوینو یک پورت سریال دارد که با نام UART یا Universal Asynchronous مشخص شده است. به فرآیند ارسال داده با n بیت اطلاعات در یک لحظه گفته می‌شود. در آردوینو از پین‌های دیجیتال ۰ و ۱ برای راه اندازی پورت سریال استفاده می‌شود. آموزش جامع سریال مانیتور در بخش های قبلی آموزش داده شده و برای مطالعه بیشتر می‌توانید از آن‌ها استفاده نمایید.

 


دستور if serial


جهت برقراری ارتباط با پورت‌های سریال از دستور کدنویسی ifserial استفاده می‌کنیم. توسط دستور ifserial مشخص می‌کنیم که پورت سریال مورد نظر، آماده است یا خیر و سپس دستورات را اجرا می‌نماید.

if (Serial)

فراخوانی این دستور در تمامی بردها به استثنا دو برد کاملا یکسان است:

  • برد آردوینو لئوناردو : (if (Serial1
  • برد آردوینو مگا۲۵۶۰ : (if (Serial1) , if (Serial2) , if (Serial3

 


دستور available


توسط این دستور اعداد در سریال مانیتور بر حسب واحدهای مختلف دریافت و سپس خوانده می‌شود. تمامی این اعداد در حافظه بافر آردوینو ذخیره می‌گردد.

available()

فراخوانی این دستور در تمامی بردها به استثنا دو برد کاملا یکسان است:

  • برد آردوینو لئوناردو : ()Serial.available
  • برد آردوینو مگا۲۵۶۰ : ()Serial1.available() ,  Serial2.available() ,  Serial3.available

آماده سازی برد آردوینو جهت ارتباط سریال با دستور ifserial

 


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


محدودیت در دسترسی کامل به این مجموعه آموزش

 

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

 

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

 


پروژه و دریافت بن ارسال رایگان


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

 

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

 

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

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

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

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

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

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

۷ دیدگاه

  • سلام
    با عرض ادب و خسته نباشید به همه دوستان، یک مشکلی داشتم اگر راهنمایی کنید خیلی ممنون میشم.
    من میخوام دستور اتصال به شبکه را به ماژول SIM800L ارسال کنم. برای این کار از برد آردوینو CH340
    و هدر فایل Softwareserial استفاده میکنم. اکثر دستورات از قبیل
    #include
    ;(SoftwareSerial SIM800(10, 11
    Serial.begin(9600);
    SIM800.begin(9600);
    ……
    ;(“?SIM800.println(“AT+CREG
    ;(“SIM800.println(“AT+COPS=0
    اجرا میکنم و نتیجه را هم OK می دهد.و نتایج درست برمی گرداند. ولی
    الان میخوام این دستور را اجرا کنم: “AT+COPS=2,2,”43211.
    به این صورت ;(“SIM800.println(“AT+COPS =2,2,43211 استفاده کردم نتیجه سریال خطای ۶۰۴ می دهد یعنی دستور درست نیست!!!؟
    به این صورت (“SIM800.println(“AT+COPS =2,2”,”43211 استفاده کردم کامپایلر خطا می دهد!!؟
    ممنون میشم اگر نحوه درست ارسال کردن دستور “AT+COPS=2,2,”43211 را توسط این توابع بیان کنید.

    • با سلام
      ضمن تشکر از شما، لطفا سوالات را در پست های مرتبط با موضوع خود بپرسید تا امکان بررسی وجود داشته باشد.

  • سلام خانم بلورچیان یه برنامه برای آردونیو DUO میخواستم که دیتا ار شبکه با برد W5100 بگیره و به سریال تبدبل کنه در خروجی ممنون میشم کمکم کنید

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

  • سلام خانم بلورچیان یه برنامه برای آردونیو UNO میخواستم که دیتا ار شبکه با برد W5100 بگیره و به سریال تبدبل کنه در خروجی ممنون میشم کمکم کنید اگه بشه با OLED هم ببینم چی میاد و چی ارسال میشه که خیلی عالی میشه ممنون

    • با سلام
      همانطور که در پیام قبل اشاره شد، امکان توسعه برنامه اختصاصی وجود ندارد.

  • سلام خانم پوربلور چیان
    من می خوام برنامه ای رو بنویسم که اگر کاراکتر دریافت شده مثلا apple بود
    آردوینو fruit رو چاپ کنه
    اما نمی دونم چجور میشه عبارت دریافت شده را در شرط if مساوی apple قرار بدم
    ممنون می شم راهنمایی کنید

    • با سلام
      در این خصوص از رشته باید استفاده کنید. این مورد بیشتر نیاز به دانش برنامه نویسی کافی C++ دارد.