صفحه 2 از 3 نخستنخست 123 آخرینآخرین
نمایش نتایج: از 11 به 20 از 29
Like Tree9 لایک

موضوع: ساخت تایمر با آردیونو+کنترل با میکروسوئیچ

  1. #11
    Junior Member
    تاریخ عضویت
    May 2016
    نوشته ها
    18
    سلام دوستان.بنده مازولds3231 رو تهیه کردم و با مولتی متر ولتاز باطری ها رو خوندم ک درست و سالم بودن اما بعد قطع شدن پاور ساعت هم ریست میشه.
    آیا امکانش هست با این قطعه تایمر ساخت؟و معیار شمارش تابع millis رو شمارش این قطعه قرار داد؟
    کسی میدونه کریستال ساعت رو چطوری میشه به آردیونو متصل کرد و واسه تایمر ازش استفاده کرد؟
    ویرایش توسط abbasjavanmardi : 06-12-2016 در ساعت 04:49 PM

  2. #12
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,918
    نقل قول نوشته اصلی توسط abbasjavanmardi نمایش پست ها
    سلام دوستان.بنده مازولds3231 رو تهیه کردم و با مولتی متر ولتاز باطری ها رو خوندم ک درست و سالم بودن اما بعد قطع شدن پاور ساعت هم ریست میشه.
    آیا امکانش هست با این قطعه تایمر ساخت؟و معیار شمارش تابع millis رو شمارش این قطعه قرار داد؟
    کسی میدونه کریستال ساعت رو چطوری میشه به آردیونو متصل کرد و واسه تایمر ازش استفاده کرد؟
    دوست عزیز لطفا یک جا تاپیک بزنید.

  3. #13
    Senior Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    229
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    نه تابع MILLIS این حرفا سرش نمیشه
    از وقتی پاور میدی میشماره

    برای ماژول های ساعت ترجیحا از دقیقش استفاده کن
    البته من اخیرا این تایمر رو کشف کردم :
    Make an accurate Arduino clock using only one wire - NO external hardware needed! - All
    قبلا با millis() که ساعت رو اجرا کردم توی هر ساعت 4 ثانیه خطا داشت و آردوینو از زمان واقعی جلو میفتاد ، یا این سیم هم که اجرا کردم (با توجه به اینکه فرکانس pwm معمول برای پایه های آردیونو 490 هست) خطایی که به دست اومد 5 ثانیه بود و باز هم آردوینو جلو افتاد از زمان واقعی ، به نظر میاد این هم اونقدا دقیق نیست
    و اونقدری که من میدونم همون millis() هم با استفاده از وقفه و یه کانتر داخلی داره شمرده میشه

  4. #14
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,918
    نقل قول نوشته اصلی توسط siib نمایش پست ها
    قبلا با millis() که ساعت رو اجرا کردم توی هر ساعت 4 ثانیه خطا داشت و آردوینو از زمان واقعی جلو میفتاد ، یا این سیم هم که اجرا کردم (با توجه به اینکه فرکانس pwm معمول برای پایه های آردیونو 490 هست) خطایی که به دست اومد 5 ثانیه بود و باز هم آردوینو جلو افتاد از زمان واقعی ، به نظر میاد این هم اونقدا دقیق نیست
    و اونقدری که من میدونم همون millis() هم با استفاده از وقفه و یه کانتر داخلی داره شمرده میشه
    من به تازگی دستور tone رو کشف کردم

    خوشم اومد ازش

    البته ربطی به این موضوع نداشت زیاد

  5. #15
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,918
    نقل قول نوشته اصلی توسط siib نمایش پست ها
    ممنون جالب بود ،
    چنتا سوال
    1- اینکه فرکانس pwm همیشه ثابته و با گرم شدن و در طول زمان تغییر نمیکنه؟
    2- به جای اینکه pwm رو روی 127 قرار بده ، اگه مثلا روی 50 یا هر عدد دیگه ای غیر از 0 و 255 قرار میداد نتیجه فرق میکرد؟
    3- الان تو این برد آردوینو چنتا نوسان ساز هست کلا و کدوم دقتش بیشتره؟

    اگه روی هر عددی به جز 127 قرار می داد جای لبه های بالا رونده دیکه سر ضرب در نمیومد و اون عددی که توی تابع اینتراپتش نوشته عملا دیگه معنی نداشت.

  6. #16
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,918
    نقل قول نوشته اصلی توسط siib نمایش پست ها
    قبلا با millis() که ساعت رو اجرا کردم توی هر ساعت 4 ثانیه خطا داشت و آردوینو از زمان واقعی جلو میفتاد ، یا این سیم هم که اجرا کردم (با توجه به اینکه فرکانس pwm معمول برای پایه های آردیونو 490 هست) خطایی که به دست اومد 5 ثانیه بود و باز هم آردوینو جلو افتاد از زمان واقعی ، به نظر میاد این هم اونقدا دقیق نیست
    و اونقدری که من میدونم همون millis() هم با استفاده از وقفه و یه کانتر داخلی داره شمرده میشه
    .

    این مشکل دقیقا به خود atmega و البته کریستال بر می گرده

    کریستال هر چی دماش بره بالا انحراف معیارش از فرکانس اصلیش بیشتر میشه
    لایک کردن

  7. #17
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,918
    جواب دیگه ای هم که تعدادی ازکاربرای سایت instructables گرفته بودن ، واسه اردوینوهایی که کریستالشون 16 هست بعد از یه مدت که ممکنه حتی به ساعت هم نرسه خطا ها خودشون رو نشون میدن

    اما واسه due که کریستالش 84 هست خطاها بعد از چند ده ساعت بروز می کنن ( تست یه کاربر بوده )


    در کل این که اگه شما قرار باشه با اتکا به کریستال داخلی یا ماژول های ساعت کار کنی و زمان دقیق به دست بیاری چون با کریستال کار می کنی تهش یه مقدار خطا رو داری ( در طولانی مدت ممکنه خطا به ساعت هم برسه )
    یه راه حل براش پیشنهاد دادن این که از کریستال هاس ساعت 32768Hz استفاده بشه
    اما بهترین راه برای دشتن زمان کاملا دقیق استفاده از GPS یا اتصال به اینترنت هست.[/QUOTE]
    ویرایش توسط magmagmary : 06-15-2016 در ساعت 07:48 AM
    لایک کردن

  8. #18
    Senior Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    229
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    اگه روی هر عددی به جز 127 قرار می داد جای لبه های بالا رونده دیکه سر ضرب در نمیومد و اون عددی که توی تابع اینتراپتش نوشته عملا دیگه معنی نداشت.
    منظورتون از "سر ضرب در اومدن" نفهمیدم ، من با اعداد مختلف امتحان کردم نتیجه یکسان بود
    اینتراپت رو هم این شکلی نوشتم : (attachInterrupt(digitalPinToInterrupt(2),timer,FA LLING
    timer هم تابعی هست که کار شمارش نوسان ها رو انجام میده

  9. #19
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,918
    نقل قول نوشته اصلی توسط siib نمایش پست ها
    منظورتون از "سر ضرب در اومدن" نفهمیدم ، من با اعداد مختلف امتحان کردم نتیجه یکسان بود
    اینتراپت رو هم این شکلی نوشتم : (attachInterrupt(digitalPinToInterrupt(2),timer,FA LLING
    timer هم تابعی هست که کار شمارش نوسان ها رو انجام میده
    نمیدونم چطوری این اتفاق افتاد براتون
    چون با نوشتن عدد 127 در واقع قصد داشته شکل موجی با dutycycle برابر 50 درصد بوجود بیاره ولی وقتی عدد تغییر کنه شکل موج های زیر بوجود میاد در واقع
    512e869bce395fbc64000002.jpg
    بعد داستانی که هست اینه که اینتراپت میاد روی لبه های بالارونده تابه اینتراپتوش صدا میزنه
    اگه قرارباشه با عددهای به جز 127 هم این کار رو بکنه زمان مساوی از بین میره چون در دو شکل پایین یک پریود به صورت مساوی زمانی پخش نمیشه

    این برای من بسیار عجیبه !

    کار یکه شما کردید با لبه پایین رونده فعال کردید که باز هم همین ایده تکرار میشه !
    طبق چیزی که من از کد متوجه شدم کاری که شما کردید تغییر 127 باید داغون کنه برنامه رو

    شما از کد چه چیزی متوجه شدید؟

  10. #20
    Senior Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    229
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    نمیدونم چطوری این اتفاق افتاد براتون
    چون با نوشتن عدد 127 در واقع قصد داشته شکل موجی با dutycycle برابر 50 درصد بوجود بیاره ولی وقتی عدد تغییر کنه شکل موج های زیر بوجود میاد در واقع
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 512e869bce395fbc64000002.JPG
مشاهده: 9
حجم: 26.5 کیلو بایت
    بعد داستانی که هست اینه که اینتراپت میاد روی لبه های بالارونده تابه اینتراپتوش صدا میزنه
    اگه قرارباشه با عددهای به جز 127 هم این کار رو بکنه زمان مساوی از بین میره چون در دو شکل پایین یک پریود به صورت مساوی زمانی پخش نمیشه

    این برای من بسیار عجیبه !

    کار یکه شما کردید با لبه پایین رونده فعال کردید که باز هم همین ایده تکرار میشه !
    طبق چیزی که من از کد متوجه شدم کاری که شما کردید تغییر 127 باید داغون کنه برنامه رو

    شما از کد چه چیزی متوجه شدید؟
    شما هم اگه بخواین میتونین امتحان کنین
    خب تصور من اینه که این عدد هرچیزی باشه فرکانس موج مقدار ثابتی هست(490 هرتز) و همینطور دوره (T=1/490)،
    و در همه حالات هم ( pwm های متفاوت) در مدت زمان T یک نوسان اتفاق میوفته و اون تابع شمارنده زمان هم داره این نوسان ها رو میشماره
    چه اینکه ولتاژ بره بالا زود بیاد پایین یا بره بالا و بیشتر بمونه و بعد بیاد پایین از اون جایی که در هر دورهT یه بار فقط بالا میره و تابع شمارنده فقط بالا رفتن (یا پایین اومدن ها رو میشماره) مقدار pwm روی نتیجه شمارش تاثیر نداره

صفحه 2 از 3 نخستنخست 123 آخرینآخرین

مجوز های ارسال و ویرایش

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

SEO by vBSEO