نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

آموزش جامع آردوینو جلسه ۸ موضوع Time

به نام خدا : تو این مطلب از آموزش آردوینو میخام به مبحث تایم مایم بپردازم.(البته با اون تایمری که فک میکنی یکم فرق داره laugh )
آموزش جامع آردوینو جلسه ۸ موضوع Time

آموزش جامع آردوینو جلسه ۸ موضوع Time


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

Delay : خوب وای بحالتون اگه ندونید کاربرد این تابع چیه؛ آنچنان پوستی از سرتون بگنم که diablo »»»» این تابع کارش تولید زمان هستش، من بهش میگم تابع تولید تاخیر زمانی، هر جای برنامه اینو قرار بدین برنامه به اندازه مقداری که بهش دادین صبر میکنه و برنامه رو متوقف میکنه، مثلا برا روشن و خاموش کردن هر ۱ ثانیه یک بار یه led   باس از این تابع استفاده کنیم، بیشتر از این توضیح نمیدم چون شونصدتا تا حالا پروژه انجام دادیم و تو همشون تقریبا از این تابع استفاده کردیم.(ولی با اگه سوال بود در خدمتیم heart) >>> به جای ms عددمون رو قرار میدیم.

برای این تابع مثال نمیگم diablo ولی میتونید لینک مقابل رو ببینید که توش یه مثال هستش : DELAY
 
delayMicroseconds : این تابع هم مثل تابع بالاس فقط با این تفاوت که تابع بالا بر حسب میلی ثانیه تاخیر ایجاد میکنه و این تابع بر حسب میکرو ثانیه؛ (این تابع در رنج ۳ میکرو به بالا کار میکنه و زمان های کمتر رو نمیتونه تولید کنه»»» فک کنم درست گفتم crazy)
 
Millis : خوب این تابع کارش شمارش زمان (از وقتی که آردوینو شروع به کار میکنه تا تقریبا ۵۰ روز که بعد سر ریز رخ میده و صفر میشه) هستش، وخروجیش بر حسب میلی ثانیه هست، متغییری که قراره مقدار این تابع درش ذخیره بشه باس از نوع unsigned long باشه.(که اگه دلیلش رو ندونید جفت پا میرم تو صورت خودم rtfm) ؛ این تابع به صورت زیر هستش.
 
Micros : این تابع هم مثل تابع بالا هستش تقریبا، فقط این که زمان رو بر حسب میکرو ثانیه محاسبه میکنه و ارسال میکنه و این که تقریبا به مدت ۷۰ دقیقا شمارش رو انجام میده و بعد سر ریز (overflow) رخ میده و مقدارش صفر میشه؛ متغییری که قراره دیتایی این تابع درش ذخیره بشه بهتره که از نوع unsigned long باشه.
اینم یه مثال ( پروژه آردوینو crazy ) از دو تابع بالا، این برنامه از زمان اجرای برنامه شروع به محاسبه زمان میکنه(مثل یه کورنومتر) و به پورت سریال رسال میکنه هر ۱ ثانیه ۱ بار این زمان محاسبه شده رو.
برنامه رو تو آردوینو پروگرام کنید و برنامه سریال مانیتور(تو منوی آردوینو>> tools >>> serial monitor)  و نتیحه رو ببینید.

 
 
بازم میگم, دوستان هر موقع هرجا و… سوال داشتین جایی رو متوجه نشدید حالا به هر دلیلی حتما بپرسید.
این کوتاه ترین مطلب از این سری از آموزشها هستش فک کنم ، به نظرم اگه از کوتاه بودنش خوشهالید یعنی به اجبار دارید یاد میگیرد ولی اگه ناراحت با علاقه داربد یاد میگیرید(درست میگم؟؟؟)
هزینه مطلب فراموش نشه.(یه فاتحه برا کسایی که از دنیا رفتن ؛ ۳ تا صلوات برا ظهور آقا و شادی روح شهدا و امام شهدا و سلامتی رهبر)
سرتون رو درد نمیارم فعلا یا علی.

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو امیدوارم مطالب ناچیز این سایت مفید باشه براتون؛ به امید روزی که دانسته هامونو به اشتراک بزاریم، حالا پولی یا رایگانش زیاد مهم نی؛ بعضی ها فک میکنن چیزی که بلدن، اگه با دیگران به اشتراک بزارن ... !
ارسال دیدگاه
78

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    Reza

    سلام.روز بخیر
    با تشکر از شما
    اگر بخواهیم خروجی تابع millis رو که داخل یه متغییر unsingned long ذخیره کردیم فقط بخش int اش رو برداریم باید از چه دستوری استفاده کنیم؟

  2. Avatar

    مهمان

    الهه

    سلام، چطور میشه بازه زمانی بین ارسال داده ها از آردوینو به لپ تاپ رو بدست آورد؟؟؟

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – ارسال داده از میکرو به pc دست خودمونه دیگه – یعنی چی بازه زمانی بین…. ( متوجه منظورتون نشدم )

  3. Avatar

    مهمان

    علی

    سلام دوباره..
    ی سوال :
    تو قسمت ;(digitalWrite(x,HIGH
    ;(delay(1000
    خواستم بدونم چطور بدون استفاده از دستور delay این تاخیر رو ایجاد کنم؟مثلا با تایمر کانتر یا دستور millis ???

  4. Avatar

    مهمان

    حمید

    delay رو میدانم چیه
    کاربرد این دوتا تابع Millis و Micros رو متوجه نشدم. اگه ممکنه یه مثال بزنید help

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      تایمر هستش دیگه – زمان شمارش شده بر حسب میلی/میکرو ثانیه رو به ما میده – برا Dealy یک ثانیه – میکرو 1 ثانیه تو اون قسمت صبر میکنه که اصلا چیز جالبی نی – به کمک تابع Millis که یکبار مقدارشو میخونیم و ذخیره میکنیم مثلا – بعد میایم میگیم تا زمانی که حاصل تفریق مقدار جدید Millis مقدار قبلی که ذخیره کردیم اگه بیشتر مساوی 1s شد بیا کار ما رو انجام بده وگرنه برو به کارای دیگه برس.

  5. Avatar

    مهمان

    حمید

    سلام ، ممنون بابت زحمات تون hi
    والا من دقیق کاربرد این دوتا تابع رو نفهمیدم sorry
    میشه از کاربردشون یه مثال بگین؟ blush

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – تابع ایجاد تاخیر زمانی هستند دیگه – مثلا بخوای یه led رو هر 1 ثانیه یکبار خاموش کنی – از این توابع میتونی استفاده کنی –
      دستور روشن شدن led
      1 ثانیه تاخیر
      دستور خاموش شدن led
      1 ثانیه تاخیر

  6. Avatar

    مهمان

    محمد

    سلام
    من یه برنامه نوشتم ه این برنامه نیاز داره در n ساعت هر m ساعت به مدت x دقیقه فعالیت کنه میخاستم ببینم این کد رو تو ادروینو چجور میتونم پیاده سازی کنم؟

  7. Avatar

    مهمان

    علیرضا

    سلام علیکم
    در پروژه ای از چنتا ماژول سنسور و سرو موتور استفاده شده(با مگا 32) و اگر بخوام السی دی گرافیکی اضافه کنم با کمبود پورت مواجه میشم
    چه روشهایی برای افزایش پورت وجود داره که بتونم ال سی دی رو هم اضافه کنم به پروژه ؟

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام
      آیسی برای افزایش پایه هستش ولی داستان میشه برات یکم – سخت میشه – اینو بسرچ “افزایش پایه های میکرو” موردی بود در خدمتیم در حد توان.
      بگرد یه نمایشگر سریال(یا I2C و…) پیدا کن.

    • Avatar

      مهمان

      حسین

      سلام
      شما میتونید برای افزایش تعداد خروجی های دیجیتالتون، از آی سی شیفت رجیستر استفاده کنید.
      همینطور برای lcd تون میتونید ی ماژول I2C تهیه کنید و با دوتا پین sda,scl راه
      اندازی کنید.

  8. Avatar

    مهمان

    احسان

    سلام
    توی اردوینو چطوری میشه تایمر ساخت؟
    اصلا تایمر و کانتر به اون شکلی که توی avr داشتیم توی آردوینو هم هست یا فقط باید از دو تا دستور milis و micros استفاده کنیم؟!

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – هر دو – هم میتونی از توابعی که گفتی استفاده کنی ( فقط باید یه سرچی کنی که این دو تا تابع + تابع dealy از کدوم تایمر استفاده میکنن در آردوینو تا یه وقت اون تایمرو تغییر ندی تا این توابع دچار مشکل بشن – اگه هم نیازی به این توابع نداری که هیچ )
      از رجیسترها هم میتونی استفاده کنی مث قبل و تایمرو تو مدل دلخواه و .. تنظیم کنی.

  9. Avatar

    مهمان

    Ibrahim

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

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – میشه پروژتونو توضیح بدید – اونم وقت بهتر میتونم کمک کنم تا الان.

  10. Avatar

    مهمان

    علی

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

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      ایمیل دادم.

  11. Avatar

    مهمان

    علی

    سلام استاد من یک برنامه نوشتم که چند پین رو یک و بعد چند ثانیه بر حسب شرط ها هرکدوم را با زمان مشخص وضعیتشون تغییر کنه حالا من نمیخام برای تاخیر از delay استفاده کنم چون نمیخام برنامه سر هر تاخیری توقف کنه میخام بدون توقف اجرا بشه استفاده از تاخیر /unsigned long را برای این کار نمیدونم میشه راهنمایی کنید تشکر اینم کد
    while (digitalRead(faz1)==LOW){
    digitalWrite(starte,LOW);
    delay(1000);
    digitalWrite(genrator,LOW);
    delay(1000);
    if (digitalRead(oilcheragh)==LOW){
    digitalWrite(stopm,HIGH);
    delay(3000);
    }

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام
      نحوه استفاده از millis به صورت مقابله : http://paste.debian.net/plain/1032720
      چیزی هم که میخوای دقیقا متوجه نشدم وگرنه کدشو مینوشتم برات.

  12. Avatar

    مهمان

    عزیز

    با درود فراوان
    یه مشکل خیلی جالب که البته تو پروژه من مشکل چندانی ایجاد نکرده
    تابع delay همونطور که گفتید بر حسب میلی ثانیه هست
    برنامه ای نوشتم که اول روی برد uno راه اندازیش کردم و همه چیز دقیق و خوب بود (منظورم تابع delay هستش)
    اما با ایستفاده از آموزش های همین سایت برای گرفتن فایل hex و تغییر بردم به NG که میکروکنترلر مورد استفاده اون Atmega8 هست برنامه رو منتقل کردم روی بردی که خودم طراحی کردم
    ولی …
    ولی با در نظر گرفتن کریستال 16 مگاهرتزی و تنظیم فیوزبیت هام موقع پروگرام میکرو، این تابع delay رو با سعی و خطا فهمیدم که باید 80 برابر در نظر بگیرم که بشه اون چیزی که از اول خواستم، در واع انگار سخت افزار حدود 80 برابر سریعتره.
    حالا اگر دلیل به ذهنتون میرسه بگید اگرم نه که هیچ چون تو عملکرد اصلی پروژه مشکلی ایجاد نشده
    ولی خودم احتمال ایراد سخت افزار خصوصا کریستال رو میدم هر چند که لحیم کاریش لحظه ای بوده و مقدار روش صحیحه، شاید کیفیتش بد باشه

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      کی گفته که فایل هگز مگا328 رو میتونید در مگا8 پروگرام کنید؟

  13. Avatar

    مهمان

    مهدی

    سلام
    من می خواستم یک pwm با فرکانس ۳۱.۲۵ کیلو هرتز درست کنم. می خواستم ببینم با تابع
    delayMicrosecons
    میشه این کارو کرد؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-از تایمر استفاده کن و نه این توابع – باید در سطح رجیستر کار کنی- نمیدونم کتابخونه ای براش هستش یا نه.

  14. Avatar

    مهمان

    ALI

    سلام سخته نباشین شرمنده من یه سوالی دارم نمیدونم کجا بپرسم خیلی برام مهمه کلی دنبالش گشتم اما پیدا نکردم امیدوارم شما کمکم کنید .
    میخواستم بدونم چطور میشه مقداری از یک متغیر رو تو یه متغیر دیگه بریزم ؟
    مثلا تو یه متغیر چند کاراکتر داریم مثلا اینجوری :
    int x = #987-#785
    چطور میتونم مثلا 4 تا از کاراکتر های x رو توی y بریزم ؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      درباره آرایه مطالعه کنید.

  15. Avatar

    مهمان

    mahdi

    سلام
    من یک مدار دارم که شستی داره و فرمان به میکرو میده اما یک جا میخام اگه دست یکسره روی شستی تا 10 ثانیه بود میکرو بفهمه و یک فرمانی بده
    لطفا راهنمایی کنین
    ممنون

  16. Avatar

    مهمان

    علیو

    اقا این چیه خط اخر قرار دارید بعد سریال پریتت
    (‘t\’)

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      تب..حدود ۲ الی ۴ تا space

  17. Avatar

    مهمان

    ابوالفضل

    سلام من چندبار سوالمو پرسیدم ولی جواب ندادید ممنون میشم این دفعه جواب بدید
    من می خوام تو یه بازه زمانی ۱ثانیه ای چندتا پین دیجیتالو ۱ کنه یعنی اینکه توی یه چرخه باشه برنامه تا وقتی ک ۱ ثانیه تموم شه هی توی اون چرخه بچرخه و بعد ۱ ثانیه از چرخه خارج شه چه کنیم استاد?

  18. Avatar

    مهمان

    amir

    سلام من یکم سوالم فرق داره
    من میخوام این کارا داخل قسمت ستاپ انجام بدم ن قسمت لوپ
    ظاهرا جواب نمیده؟!میشه ی راهنمایی کنین(از طریق ایمیل با خبر شیم)

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      کدوم کارا؟
      میخوای دقیقا چیکار کنی؟ بگو تا راهنماییت کنم.

      • Avatar

        مهمان

        amir

        اوکی شد این تایمر دقیقا کدوم تایمره میکرو میشه؟تداخل نداره؟!!!

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          باید کتابخونه آردوینو رو بررسی کنی – دقیقا نمیدونم از کدوم تایمر استفاده میکنه – به هر حال اگه ریسجتراشو دستکاری کنه ممکنه به مشکل بخوره پروژه.

  19. Avatar

    مهمان

    محمد

    سلام اگه بخوایم توی یک بازه زمانی یک کار انجام بشه چطوری باید کد بنویسیم؟
    مثلا بعد از فشردن پوش باتون متغیر ایکس که اعداد خوانده شده از پین آنالوگ هست رو توی ده ثانیه بخونه و هروقت مقدارش از ۱۰۰ بیشتر بود میانگین(اعدادی که توی این ده ثانیه از ۱۰۰ بیشتر بودن با هم جمع کنه تقسیم بر تعداد کنه) بگیره و بریزه توی تابع ایگرگ

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      به نظرم کد نویسی ++C رو برید بخونید کامل و بعد مطلب آردوینو و از جلسه اول شروع کنید و از مطالب توی نت هم استفاده کنید.

  20. Avatar

    مهمان

    نوید

    سلام خسته نباشید .. یه سوال داشتم . حالا اینو آپلودش کردم تو آردینو ، serial monitor هم نتیجه رو دیدم .. حالا چجوری میشه مثلا اینو توی سون سگمنت دید ؟!؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

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

  21. Avatar

    مهمان

    بیژن

    با سلام
    آیا می شود مقدار Bouncing time که از فشرده شدن کلید اعمال می شود را از طریق آردیونو محاسبه کرد و شکل موج آن را در کامپیوتر نمایش داد.
    برای توضیح یک مثال می زنم : من می خواهم زمانی که یک کلید فشرده شد میزان Bouncing time آن حداکثر به میزان ۱۰ میکرو ثانیه محاسبه شود و شکل موج کلی تمام فشرده شدن های کلید (که می تواند بیش تر از یک بار و در بازه های زمانی مختلف فشرده شده باشد) در کامپیوتر نمایش داده شود.

  22. Avatar

    مهمان

    صادق

    سلام چه طوری میتونم یه تایم خاص به یک کد بدم؟؟
    مثلا یه ما/ژول داره دایم از یک سایت ۱ رو دریافت میکنه با تاخیر ۲ ثانیه ..
    دستور ۰ ارسال میشه از همون ای پی و مثلا یک led خاموش میشه. حالا من میخوام بدونم که ایا میشه وقتی مازول ۰ رو دریافت کرد مثلا ۱۰ ثانیه صبر کنه و ببینه ایا ۲ ثانیه بعدی ۱ هست یا نه؟؟ اگه ۱ بود که صفر رو اجرا نکنه ولی اگه بازهم صفر دریافت کرد انگاه دستور خاموش شدن led رو بده؟؟؟
    همچین چیزی هست ایا؟؟؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      بله میشه همیچی کاری رو کرد – شما بعد از این که ۰ رو گرفتی مقدار time رو بخون – و بعد یه دستور شرطی بزار – که اگه زمان بررسی شده از زمان مد نظرت بیشتر شد – کار مد نظرت رو انجام بده….

  23. Avatar

    مهمان

    s.r

    باسلام و تشکر از زحماتتون
    یه پروژه کار با سنسور IR دارم می خوام فاصله بین دو بار یک شدن حاص از خواندن سنسور رو اندازه بگیره میشه راهنمایی کنید

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      فاصله بین دو لبه rising ? مطلب راه اندازی srf05 رو بررسی کن.

  24. Avatar

    مهمان

    اردا

    salam mohandes,,,chetori mishe ba in tavabe i ke gofti biaym be micro begim to ye modat zaman moayyan ke kare khasi bokone??masalan begim yek sanie bia o in ledpin13 ro khamoosh roshan kon hala ba ye delay khas ya masalan begin nim sanie nemune begir o befrest ro serial plotter???

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      کد زیر رو ببین – به جای اون توضیحات کد مد نظرتو بزار
      http://paste.debian.net/plain/931534

  25. Avatar

    مهمان

    عباس

    میشه چند تا تایم با هم اجرا کرد

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      در کل بله ولی با این کتابخونه های آماده نمیدونم – باید تست کنی

  26. Avatar

    مهمان

    علی

    سلام بخوایم برحسب ثانیه و ساعت نشون بده چیکار کنیم؟؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-۳تا متغیر تعریف کن – ثانیه – دقیقه – ساعت –
      زمان رو توشون برید – یکم ضرب و تقسیمه

  27. Avatar

    مهمان

    علی

    سلام بخوایم برحسب ثانیه و ساعت نشون بده چیکار کنیم؟؟

  28. Avatar

    مهمان

    فرزاد

    سلام
    با سپاس از زحماتتون
    ما میتونیم اختلافه زمانه شمارده شدرو متغییر استاتیک تعریف کنیم ؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-متغییر استاتیک یه بار مقدار اولیه میگیره – در کل برنامه قابل تغییر هستش(تغییر کنه مقدار اعمال میشه) و باید بشه – تست کن – فوقش نمیشه دیگه laugh

  29. Avatar

    مهمان

    حسین

    خیلی مردی

  30. Avatar

    مهمان

    حمید

    سلام
    تشکر آقا مهدی آموزش این جلسه هم با این که کوتاه بود خیلی خوب بود
    موفق باشی

  31. Avatar

    مهمان

    maleki

    سلام مهندس
    میخوام یه کاری هر یک ساعت یکبار انجام بشه…باید چی کار کنم

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      از تابع Millis استفاده کن!

      • Avatar

        مهمان

        ناشناس

        سلام چطوری ؟ میشه بیشتر توضیح بدید ممنون میشم unknw

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          سلام مجدد – البته نمیدونم این تابع فوق سر چه زمانی سرریز میکنه – تو این مطلب اگه نگفته بودم یاید بری سایت آردوینو یا بری تو کتابخونه اش و بررسیش کنی.
          مقدارشو الان میخونی = x
          بعد مقدار هر موقع زمان الان – x از ۱ساعت بیشتر شد کارتو انجام میدی.

  32. Avatar

    مهمان

    E.M

    سلام
    ببخشید من تو قسمت سریال مانیتور مشکل دارم
    هر برنامه ای را که پروگرام میکنم و بعدش سریال مانیتور را که میزنم با این پیغام مواجهه میشوم
    Arduino: 1.6.9 (Windows 7), Board: “Arduino/Genuino Uno”
    Board at COM1 is not available
    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      قبل پروگرام کردن برنامه باید :
      1) مدل بوردت رو از منو TOOLS و بعد BOARD انتخاب کن
      2) شماره پورتی که از طریقش با آردوینو قراره ارتباط برقرار کنیم رو از طریق TOOLS و بعد PORT انتخاب کن.
      الان شما پورت رو اشتباه انتخاب کردی – باید پورتی رو انتخاب کنی که علاوه بر نام پورت اسم آردوینو هم کنارش باشه

  33. Avatar

    مهمان

    شاهسون

    سلام آقا مهدی مثل همیشه Like

  34. Avatar

    مهمان

    حسین

    سلام مهندس، این تابع Millis ذمان دقیق برمی گردونه یعنی ۱ ثانیه در این تابع دقیقا یک ثانیه است؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      تو سایت آردوینو چیزی درباره دقت این تابع من یادم نمیاد که نوشته شده باشه…

  35. Avatar

    مهمان

    ziaee

    تفریق فقط برای یک زمان خاص خوبه
    من دقیقا یک تایمر میخوام که وقتی یک دمه رو فشار بدم آخرین زمان رو به من نشون بده و وقتی دکمه دم رو فشار میدم دوباره از صفر شروع کنه به شمردن
    اون تایمری که یا مقدار دهی رجیستر ساخته بودم میدونم جرا lcd وقتی میخواد نشونش بده صفحه میپره! اما با تابع millis که نوشتم قشنگ نشون داد
    من اون برنامه ای رو که نوشتم بهتون ایمیل میکنم( البته اگ ایمیلتون تو سایته)
    راستی شما راجع به راه انازی wtv چیزی میدونید؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      اطلاعی ندارم
      تو نت بسرچ….من یه تابع دیدم…اسمش خاطرم نیست دقیقا

  36. Avatar

    مهمان

    ziaee

    نمیشه من مقدار زمان گذرانده شده رو در یک متغیر بریزم بعد اون متغیررو صفر کنم؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      معلومه…نه
      چون وقتی دوباره بعد از ۰ کردن زمان رو بخوای بخونی دوباره همون آش و همون کاسه pardon
      همون تفریق کردن بهتره
      نگفتی برا چه کاری به این تابع نیاز داری search
      چون من تابع دیدم واس محاسبه زمان که شروع و توقف هم داره…..اون شاید بهتر باشه

      • Avatar

        مهمان

        حسین

        آقا مهدی سلام مجدد، این توابع که فرمودید برای محاسبه زمان ( که شروع و توقف هم داره ) کدوم تابع است؟

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          سلام
          خاطرم نیست…

  37. Avatar

    مهمان

    ziaee

    سلام
    عیدتون مبارک
    من ی سایت پیدا کردم که گفته چطور تابع millis رو ریست کنیم
    گفته زمان سپری شده رو از اون کم کنیم
    اینم آدرس سایتش
    https://www.baldengineer.com/arduino-how-do-you-reset-millis.html
    ولی من متوجه نشدم چی گفت
    میشه شما توجه بشید و ب منم بگید؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      گفتم که…هر موقع به ماکزیمم خودش برسه سر ریز رخ میده
      این سایته هم که میگه نمیشه ریست کرد laugh
      اومده کلک رشتی زده
      مثلا ما میخوایم هر ۱ ثانیه ۱ بار led رو روشن خاموش کنیم میایم و از کد اول اون سایته استفاده میکنیم
      که زمان جاری رو میریزه تو currentMillis و مقدار زمان قبلی رو توی previousMillis میریزیم که مقدار اولیش صفر هستش و هم موقع تفریق این دو تا از ۱۰۰۰ بیشتر میشه مقدار previousMillis با ۱۰۰۰ جمع میشه و میریزه داخل previousMillis >>>>> لذا هر دفه previousMillis مقدارش ۱۰۰۰ تا بیشتر میشه و مقدار currentMillis هم که در بالا گفتیم ریست نمیشه لذا با تفریق کردن یه جورایی عمل ریست کردن رو انجام میدیم.

  38. Avatar

    مهمان

    محمد

    good عالی بید خسته نباشی داداش good

  39. Avatar

    مهمان

    حامد

    سلام خسته نباشین لطفا درباره انتقال تصویر دوربین کمی صحبت کنید میشه با ماژول بلوتوث تصویرو انتقال داد؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

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

  40. Avatar

    مهمان

    ziaee

    مرسی دوست عزیز
    من با مقدار دهی رجیستر های تیمر یک تایمرمو راه اندازی کردم ک تو برناه از اینتراپ استفاده میشه
    ب خاطر این از مقدار دهی رجیستر ها استفادده کردم ک میشه ریستش کرد
    این تابع millis رو چطور میشه ریستش کرد؟
    من ی برنامه با این millis نوشتم که زمان رو روی lcd نشون میده و میتونه زمان رو نگه داره
    اما نتونستم ریستش کنم

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      پروژت چیه؟
      واس چی میخوای ریستش کنی ؟

      • مهدی دمرچیلو

        نویسنده این مطلب

        مهدی دمرچیلو

        در ضمن طبق گفته ی سایت آردوینو
        attachInterrupt()
        Inside the attached function, delay() won’t work and the value returned by millis() will not increment
        laugh