اطلاعیه

Collapse
No announcement yet.

اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

    سلام
    به همه دوستان
    با ارزوی تمام خوبیها
    ممنون از مهندس محمد که با این طراحی عالی و کم نظیر واقعا کوه که خوبه
    سسله جبال را جابه جا کردن
    واقعا عالیه عالیه و کامل
    مخصوصا بخش تقویم و هچ و مدارات اضافه و طراحی برد و....
    واقعا برنامه شما خوب و کامل هست
    از زحمات شما کمال تشکر و قدردارنی رو دارم و دعاگوی شما و همه دوستانم
    و بی صبرانه منتظر تست و اجرای نهایی مدار
    من هم سنسور 1xو هم 2xرا دارم و منتظر خبر شما برای تست برنامه و مدارم
    ممنون از شما
    یاعلی مدد

    دیدگاه


      پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

      نوشته اصلی توسط mohammad...
      سلام
      امیر جان lm35 سنسور خوبیه ولی بستگی به برنامه نویسی و میکرو مورد استفاده داره شما یه لطفی بکن اون میکرو مورد استفاده یا dac مورد استفاده رو ببین چی گذاشتن تا ببینیم دقتش چند بیتی هست

      اما فرقی نمی کنه حتی با 8 بیتی هم می توان به دقت بالایی دست یافت ولی میکرو که شما استفاده می کنید دقت انالوگ به دیجیتالش 10 بیتی خواهد بود خوب نکته ای که اینجا هست همون اول بحث فیلتر بود که شما زحمتش رو کشیدید نکته ی دوم هم تو برنامه نویسی هست که شما باید برای افزایش دقت اندازه گیری و در نهایت نمایش به صورت دهم درجه باید حدودا بین 10 تا 50 تا نمونه گیری کنید و میانگین را بدست آورید که دقتش عالی خواهد بود
      برای نوشتن برنامه هم همونطور که داداشمون اشکان گفتن می تونی از تایمر و اینتراپت استفاده کنی و هم می تونی استفاده نکنی و برنامه رو ساده بنویسی به هر حال فرقی نمی کنه اگر برای کلید ها از اینتراپت استفاده نکنی باید تاخیری که تو برنامت قرار میدی زیاد نباشه که با زدن دکمه مثلا یک ثانیه طول بکشه و وارد منو بشه البته اینو گفتم که اگر دوست داشتی حرفه ای کار کنی این نکته رو هم در نظر داشته باشی
      سلام داداش @};-
      خدمتت عرض کنم که میکروی مورد استفاده تو این ترموستات ها atmega 8 smd هستش و ولتاژ مرجعی که به پایهaref میکرو وصل هست 1.6 ولت هست پس با این حساب اگه بخوایم با دقت 10 بیت نمونه برداری کنیم به ازای هر1.56 میلی ولت یک واحد دیجیتال افزایش پیدا میکنه درسته؟پس ماهم در عمل دقت0.1 درجه رو داریم
      ودر مورد برنامه نویسی هم به نکته خوبی اشاره کردید ایا میشه با همین روش نمونه برداری و معدل گیری از نمونه ها سرعت تبدیل و عکس العمل سیستم رو هم حفظ کرد؟چون تو این ترموستات ها مثلا سنسور رو در مجاورت شعله قرار میدی دما بصورت متوالی و بدون مکث همراه با سرعت گرم شدن سنسور بالا میره ؟اینجاست که ادم شک میکنه که ایا از روش نمونه برداری و معدل گیری استفاده کرده یا نه
      اینم بگم که علت اینکه بنده به عملکرد این ترموستات ها پیله کردم و میخوام سیستمی شبیه به این پیاده کنم این است که طی مدت چندساله که دارم با این ترموستات ها کار میکنم (بیشتر از 100عدد خریداری و نصب شده)حتی یک مورد هم هنگ کردن و قاطی کردن از مشتری هاگزارش نشده سیستمشون بقدری پایدار و منظم کار میکنه که اصلا جایی واسه حرف نمیزاره حالا بماند که چنتا منو وبرنامه کاربردی هم داره
      و در مورد تایمر که چطوری میشه یک پین یا عمل خاصی رو در طول روند طبیعی برنامه کنترل کرد اگه برنامه ای دارین که از اون روش استفاده شده ممنون میشم که بزارین تا استفاده کنم راستش چون هنوز در حال یادگیری هستم هنوز نمیتونم کاری رو که مد نظرم هست پیاده سازی کنم :rolleyes: :read:
      و سوال اخر اینکه ایا عملکرد تایمر ها جدا از عملکرد برنامه هایی هست که داخلdo---loop قرار دارن؟
      ببخشید سرتون درد اوردم
      یا علی

      دیدگاه


        پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

        نوشته اصلی توسط e.kara
        سلام
        به همه دوستان
        با ارزوی تمام خوبیها
        ممنون از مهندس محمد که با این طراحی عالی و کم نظیر واقعا کوه که خوبه
        سسله جبال را جابه جا کردن
        واقعا عالیه عالیه و کامل
        مخصوصا بخش تقویم و هچ و مدارات اضافه و طراحی برد و....
        واقعا برنامه شما خوب و کامل هست
        از زحمات شما کمال تشکر و قدردارنی رو دارم و دعاگوی شما و همه دوستانم
        و بی صبرانه منتظر تست و اجرای نهایی مدار
        من هم سنسور 1xو هم 2xرا دارم و منتظر خبر شما برای تست برنامه و مدارم
        ممنون از شما
        یاعلی مدد
        سلام خدمت شما جناب ekara جان عزیز
        خواهش می کنم عزیز مدار رو با کمک شما دوستان عزیز تا به اینجا رسوندیم فعلا مونده تست pcb
        البته ناگفته نماند که چون خودم پرینتر ندارم رفتم دادم چاپ و تکثیر و رو کاغذ گلاسه پرینت گرفتم البته دردسر زیاد داره اوردم اتو کردم تو فیبر بعد زدن دیدم ای بابا من اشتباهی بر عکس پرینت گرفتم و کل قطعات باید از قسمت مسی نصب بشه
        ای بر عکس و غیر بعکس کلا مغز واسه ما نزاشته بمونه :redface:
        هیچی دیگه الانم اینجا برف داره میاد ببینم فردا چی میشه
        ان شاء الله اگر برف سنگین نباشه فردا میرم پرینت بگیرم و این دو تا برد کوچیک رو بزنم و تموم شه
        لطفا بهم بگین تنها محمد عبارت "مهندس" را حذف کنید لطفا :smile:



        اضافه شده در تاریخ :
        نوشته اصلی توسط امیر کریمی
        سلام داداش @};-
        خدمتت عرض کنم که میکروی مورد استفاده تو این ترموستات ها atmega 8 smd هستش و ولتاژ مرجعی که به پایهaref میکرو وصل هست 1.6 ولت هست پس با این حساب اگه بخوایم با دقت 10 بیت نمونه برداری کنیم به ازای هر1.56 میلی ولت یک واحد دیجیتال افزایش پیدا میکنه درسته؟پس ماهم در عمل دقت0.1 درجه رو داریم
        ودر مورد برنامه نویسی هم به نکته خوبی اشاره کردید ایا میشه با همین روش نمونه برداری و معدل گیری از نمونه ها سرعت تبدیل و عکس العمل سیستم رو هم حفظ کرد؟چون تو این ترموستات ها مثلا سنسور رو در مجاورت شعله قرار میدی دما بصورت متوالی و بدون مکث همراه با سرعت گرم شدن سنسور بالا میره ؟اینجاست که ادم شک میکنه که ایا از روش نمونه برداری و معدل گیری استفاده کرده یا نه
        اینم بگم که علت اینکه بنده به عملکرد این ترموستات ها پیله کردم و میخوام سیستمی شبیه به این پیاده کنم این است که طی مدت چندساله که دارم با این ترموستات ها کار میکنم (بیشتر از 100عدد خریداری و نصب شده)حتی یک مورد هم هنگ کردن و قاطی کردن از مشتری هاگزارش نشده سیستمشون بقدری پایدار و منظم کار میکنه که اصلا جایی واسه حرف نمیزاره حالا بماند که چنتا منو وبرنامه کاربردی هم داره
        و در مورد تایمر که چطوری میشه یک پین یا عمل خاصی رو در طول روند طبیعی برنامه کنترل کرد اگه برنامه ای دارین که از اون روش استفاده شده ممنون میشم که بزارین تا استفاده کنم راستش چون هنوز در حال یادگیری هستم هنوز نمیتونم کاری رو که مد نظرم هست پیاده سازی کنم :rolleyes: :read:
        و سوال اخر اینکه ایا عملکرد تایمر ها جدا از عملکرد برنامه هایی هست که داخلdo---loop قرار دارن؟
        ببخشید سرتون درد اوردم
        یا علی
        سلام امیر جان
        امیر جان گفتی که ولتاز رفرنس رو 1.6 ولت قرار داده امیر جان هر چه این ولتاژ رفرنس کم باشه دقت بالا هست ولی محدودیت اندازه گیری داریم فرضا دمای 0 تا 50 درجه رو اندازه می گیری چون adc ما بیشتر از 10 بیت نیست و نهایتا می تونه تا مقدار 1024 در خودش جای بده که با تقسیم این مقدار به دمای نهایی می رسیم

        اما برای نمونه گیری بیشتر و در نهایت بدست آوردن میانگین اصلا وقت نمی خواد که نیاز به زمان بیشتری برای محاسبه اش باشه
        شما می تونید با دستور for این کارو انجام بدید که وقتی می خوای سنسور رو بخونی یه ارایه 50 تایی تعریف می کنی و هر بار که adc رو می خونی داخل هر یک از این ارایه ها ذخیره می کنی و در اخر این ارایه ها رو با هم جمع می کنی البته با ایجاد تابع جمع می کنی و در نهایتش این میانگین رو تقسیم بر 50 می کنی که دقتش خوب هست حالا ولتاز رفرنس 1.6 اگر نتونی پیدا کنی یا از همون اینترنال استفاده کن یا همون 5 ولت هم قرار بدین با نمونه گیری مشکلی پیش نمیاد و دهم درجه رو هم از سنسور می خونی

        اما استفاده از تایمر ها و پرش به برچسب ربطی به do loop نداره اگر از اینتراپت استفاده کنی و کلیدی که به اینتراپت وصله اگر این کلید زده بشه میره به برچسبش برای اجرای دستوراتی و تایمر هم مثل همینه منتها تایمر شمارش می کنه بعد از زمان خاصی پرش می کنه به برچسب خودش و دستورات رو اجرا می کنه و به کلید ربطی نداره تایمر و برچسب دستور wait نمیشناسن مثلا اگر در داخل do loop شما یک ثانیه تاخیر داشته باشی چون کلید شما به اینتراپت وصله با زدن کلید بلافاصله میره به برچسب و اینطور نیست که شما بگین چون من wait گذاشتم تاخیر در اجرای دستورات برچسب داشته باشه

        ولی یه پیشنهادم اینه که تایمر و اینتراپت رو فعلا بی خیال شو چون برای اندازه گیری دمای سنسور و قرار دادن کلید بدون اینها شدنی هست و می توان همون دستورات رو در داخل do loop نوشت ولی همونطور که گفتم به جای wait از متغیر استفاده کن
        برد جوجه کشی:
        مطالعه پست 1 (حتما مطالعه کنید)


        مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

        دانلود

        توجه:
        این برد نیمه صنعتی و خانگی هست...
        برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

        آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

        دیدگاه


          پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

          سلام داداش @};-
          :applause: :applause: :applause:
          داداش دستت دردنکنه واقعا از توضیحات ساده و کاملت استفاده کردم خیلی خیلی ازت متشکرم
          عرض شود که در مورد ولتاژ رفرنس مشکلی ندارم چون الان مداری که رو برد بورد بستم درش از ams1117 با ولتاژ1.2 ولت استفاده کردم که نهایت دمای اندازه گیری 120 درجه و دقت 1.17 میلی ولت رو میده که خداروشکر مشکل دقت رو ندارم باهاش
          و درمورد نمونه گیری هم که فرمودی پس با این حساب بدون اتلاف زمان میشه انجام داد حتما ازش استفاده میکنم و نتیجه رو میگم چون الان که مدار رو بستم عدد اعشاری یکم پرش داره البته شایدم از نویز باشه چون روی برد بورد هستش
          و در اخر اینکه واقعا دستت درد نکنه عملکرد تایمر و اینتراپت رو ساده برام توضیح دادی
          حال درمورد فرمایش اخرت که فرمودی میتونم بدون استفاده از تایمر و اینتراپت از متغیر استفاده کنم راستش به دلیل اطلاعات کم متوجه نشدم اگه مثالی در این باره هست ممنون میشم بفرمایین؟
          یعنی چجوری از wait استفاده نکنم؟
          واقعا شرمنده که اذیتت میکنم داداش
          جا داره با زبون مشترکمون یه عرض ارادتی هم بهت بکنم :agree:
          داداش محمد الرین اغریماسین چوخ اقا سان

          دیدگاه


            پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

            نوشته اصلی توسط امیر کریمی
            سلام داداش @};-
            :applause: :applause: :applause:
            داداش دستت دردنکنه واقعا از توضیحات ساده و کاملت استفاده کردم خیلی خیلی ازت متشکرم
            عرض شود که در مورد ولتاژ رفرنس مشکلی ندارم چون الان مداری که رو برد بورد بستم درش از ams1117 با ولتاژ1.2 ولت استفاده کردم که نهایت دمای اندازه گیری 120 درجه و دقت 1.17 میلی ولت رو میده که خداروشکر مشکل دقت رو ندارم باهاش
            و درمورد نمونه گیری هم که فرمودی پس با این حساب بدون اتلاف زمان میشه انجام داد حتما ازش استفاده میکنم و نتیجه رو میگم چون الان که مدار رو بستم عدد اعشاری یکم پرش داره البته شایدم از نویز باشه چون روی برد بورد هستش
            و در اخر اینکه واقعا دستت درد نکنه عملکرد تایمر و اینتراپت رو ساده برام توضیح دادی
            حال درمورد فرمایش اخرت که فرمودی میتونم بدون استفاده از تایمر و اینتراپت از متغیر استفاده کنم راستش به دلیل اطلاعات کم متوجه نشدم اگه مثالی در این باره هست ممنون میشم بفرمایین؟
            یعنی چجوری از wait استفاده نکنم؟
            واقعا شرمنده که اذیتت میکنم داداش
            جا داره با زبون مشترکمون یه عرض ارادتی هم بهت بکنم :agree:
            داداش محمد الرین اغریماسین چوخ اقا سان
            علیکم السلام داداش :redface:
            در مورد پرش دما اول اینکه باید از یه ولتاژ ثابت 5 ولت استفاده کنید و در تغذیه هم از 100 نانو گرفته و 10 میکرو 470 میکرو 16 ولت قرار بدین ولی حتما از ولتاژ کاملا صاف استفاده کن برای همین باید از پل دیود و خروجیشم همین خازن هایی که گفتم قرار بدی و بعدا هم که رله اضافه خواهد شد باید یه 1000 میکرو هم بزاری تا تغییرات لحظه ای ولتاژ تو adc و خود مکیرو تاثیری نداشته باشه

            اما کار دیگه ای هم که می تونین همین پرش رو مهار کنید همین نمونه گیری 50 یا حتی 100 تایی و میانگیری هست که اگر پرش هم باشه ( اگر اصول برد رو رعایت کنید پرشی در کار نخواهد بود) در حد دهم خواهد بود مثلا 1 دهم ولی با صدبار نمونه گیری فکر کنم پرش بره به صدم و دیگه معلم نشه البته تو دهم درجه هم فکر نکنم با نمونه گیری 50 تایی معلوم باشه

            اما در رابطه با همین wait که چجوری هم تاخیر داشته باشیم هم سرعت اینکه ما نیاز داریم تا اطلاعات یا نوشته ها به مدت هر 0.5 ثانیه بروز بشه خوب مسلما نمیشه با همون سرعتی که ما نمونه گیری می کنیم اطلاعات رو هم چاپ کنیم البته مانعی نداره و مشکلی به وجود نمیاد ولی باید این رو هم مدنظر داشته باشید که اگر شما خروجی رله قرار دهید با همین سرعت زیاد و باز و بسته شدن زیاد رله دیگه در مدتی کوتاه از کار می افته برای رفع این مشکل که هم سرعت باشه هم تاخیر میام یه متغیر از نوع word یا long تعریف می کنم البته متغیر word بهتره و می تونه تا 65535 تا بشماره
            خوب یه متغیر از نوع word تعریف کردیم
            حال می رسه که ما یه سرعتی هم داخل do loop تعیین کنیم برای همین من از پایین یه خط بالای دستور loop می نویسم waitms 10
            خوب تا اینجا میکرو دستورات رو با سرعت زیاد اجرا می کنه و بعد اینکه تموم شد می رسه به این تاخیر خیلی کوچک و بعد از این دوباره شروع به چک کردن می کنه ولی این 10 میلی ثانیه که ما قرار دادیم خیی زمان کوچکی هست و اگر رله به هر صورت با این سرعت باز و بسته بشه ممکنه خراب شه
            چاره اینه که ما میام اون متغییری که تعریف کردیم با دستور incr می شماریم
            فرض کن مثلا می خوایم فاصله زمانی قطع و وصل رله 0.5 ثانیه باشه پس تاخیری که در اخر برنامه قرار دادیم می شنیم با همین تاخیر محاسبه می کنیم که برنامه چند بار اجرا بشه 0.5 ثانیه زمان میگذره
            پس دیگه باید متوجه بشین ولی اینجا شم بگم که 500 میلی رو تقسیم بر 10 میلی می کنیم و حاصلش می شه 50
            یعنی بعد اینکه متغیر ما از صفر میشماره و به 50 میرسه در واقع 0.5 ثانیه گذشته و یه دستور شرطی می ذاریم که اگر متغیر من 50 شد رله رو لطف کن اپدیت کن :rolleyes: و بعد این هم دوباره متغیرمون رو داخل همین شرط صفر می کنیم تا از اول بشماره
            اما نکته ای هم که اینجا هست و زیاد به چشم نمیاد همون سرعت اجرای دستورات هست که اینم بگم ولی من هیچ وقت از این مورد در برنامه همین دستگاه استفاده نکردم چون لزومی نداشت و بی جهت حجم برنامه میکرو افزایش پیدا می کرد اینکه هر دوستور تو avr فکر کنم نیاز به دو کلاک داشته باشه البته نه دستوراتی که در بسکام می نویسیم دستوراتی که به زبان مادری یعنی اسمبلی تبدیل میشن مثلا شاید شما یه خط در بسکام بنویسید ولی در واقعیت به زبان مادری 10 خط باشه!!!

            خوب اگر بخوای می تونی زمان این قسمتم حساب کنی مثلا اگر دستورات خیلی زیاد باشن ممکنه حدود 100 میلی هم برای اجرای دستورات تلف بشه که می تونی اونم با محاسبه حلش کنی ولی به نظر من نیازی نیست به حرحال اینم یه نکته بود که گفتم این بحث کلاک رو هم از دیتاشیت می تونید استخراج کنید مثلا یه میکرو تنها به یک کلاک دستور رو اجرا می کنه ولی یکی دیگه با دو کلاک که مزیت اون تک کلاک به مراتب بیشتر و سرعتش هم بیشتر هست

            هر چی سوال دارین بپرسید اگر بلد باشم جواب می دم و اینکه
            خواهش الیرم داداش بو نسوزده شرمنده المه من هدفیم سیزین چیمین برادر لر کمک المخ ده


            اضافه شده در تاریخ :
            بچه ها الان تا اینجا تقریبا میشه گفت بیشتر از 20 سانت برف باریده oo:

            و همچنان دارد میبارد :applause: :wow:

            الحمدالله خدا رو شکر بلکه این دریاچه ما هم نجات پیدا کنه :agree:

            اقا پیشاپیش یه اطلاعیه بدم که دبستان و راهنمایی سری صبح و بعد از ظهر تعطیل هستند ولی دبیرستانی ها شماها برید شما روزگارتون رو پشت سر گذاشتید

            عکس العمل دبستنای ها>>>>>>>>>>>> >>>> :wow:

            و همینطور عکس العمل دبیرستانی ها >>>>>>>>>>>>&g t;>>>>>>>> :angry:
            برد جوجه کشی:
            مطالعه پست 1 (حتما مطالعه کنید)


            مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

            دانلود

            توجه:
            این برد نیمه صنعتی و خانگی هست...
            برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

            آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

            دیدگاه


              پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

              سلام داداش
              واقعا دستت درد نکنه کلی استفاده کردم چون مطالب رو خیلی واضح و مثالی توضیح میدی دستت طلا :agree:
              این ترفندی که فرمودی واقعا عالی بود و تا حالا به فکرم نرسیده بود که بجای اینکه بیام کل برنامه رو معطل یدونهwait کنم بیام متغیر تعریف کنم و اونو داخل برنامه بشمارم و در زمان دلخواهم مثلا همین وضعت رله رو اپدیت کنه
              حالا داداش چنتا سوال :question:
              من اگه بخوام شستی برای تنظیم دما اضافه کنم اونارو باید داخل do-loop که با سرعت10 میلی ثانیه هی تکرار میشه استفاده کنم یا جای دیگری؟ مثلا دستور شرطی واسه افزایش مقدار متغیری که به عنوان دمای تنظیم شده هستش که در اون دما رله رو کنترل کنه
              راستی بنظرت صفحه lcd رو از چند میلی ثانیه یکبار اپدیت کنم بهتره؟
              خیلی ممنون از راهنمایی هات داداش

              دیدگاه


                پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

                نوشته اصلی توسط امیر کریمی
                سلام داداش
                واقعا دستت درد نکنه کلی استفاده کردم چون مطالب رو خیلی واضح و مثالی توضیح میدی دستت طلا :agree:
                این ترفندی که فرمودی واقعا عالی بود و تا حالا به فکرم نرسیده بود که بجای اینکه بیام کل برنامه رو معطل یدونهwait کنم بیام متغیر تعریف کنم و اونو داخل برنامه بشمارم و در زمان دلخواهم مثلا همین وضعت رله رو اپدیت کنه
                حالا داداش چنتا سوال :question:
                من اگه بخوام شستی برای تنظیم دما اضافه کنم اونارو باید داخل do-loop که با سرعت10 میلی ثانیه هی تکرار میشه استفاده کنم یا جای دیگری؟ مثلا دستور شرطی واسه افزایش مقدار متغیری که به عنوان دمای تنظیم شده هستش که در اون دما رله رو کنترل کنه
                راستی بنظرت صفحه lcd رو از چند میلی ثانیه یکبار اپدیت کنم بهتره؟
                خیلی ممنون از راهنمایی هات داداش
                سلام
                بله شما هر تعداد کلید که می خواین قرار بدید باید تو داخل do loop تعریف کنید با سرعت 10 میلی ثانیه یا بیشتر یا کمتر که بستگی به خودتون داره سرعت چک کردن برنامه
                صفحه ال سی دی باید هماهنگ با رله باشه یعنی زمانی که دما خونده میشه و متغیری که به رله نسبت دادیم تا رله رو پدیت کنه اونموقع باید ال سی دی رو هم اپدیت کنه تا کاربر ببینه که به عنوان مثال دما افزایش یافت و رله خاموش شد

                ولی یه نکته اینکه شما می تونید برنامه رو تو برچسب ها هم بنویسید مثلا یه برچسب تعریف کنید که اگر کلید اینتر من زده شد برو برچسب lable2 (با دستور goto lable2 ) بعد اینکه اومد برچسب شما می تونید منوی تنظیم رو تو این قسمت بنویسید و بعد از اتمام تنظیم باید برگردی به اون برچسبی که در حالت عادی باید اجرا شه و دما و رطوبت و عمل چرخش انجام بشه برای همین این دستوراتی که باید در حالت عادی اجرا بشه اینم داخل مثل یک برچسب به اسم main قرار می دیم و بعد از تنظیمات با همون دستور بالا به این برچسب بر می گردیم

                اما برای افزایش و کاهش دما یا رطوبت شما دو روش پیش رو دارید روشی که با نگه داشتن کلید متغیر کم شه و این کاهش مقدار تا وقتی ادامه داشته باشه که شما دستتون رو از روی شستی بردارید اما روش دوم هم اینه که شما کلید رو که می زنید یک واحد از مقدار کم بشه و تمام و برای کاهش مجدد باید دست از روی شستی برداشته بشه و دوباره زده بشه این روش بیشتر برای رفتن از منویی به منوی دیگه کاربرد داره
                برد جوجه کشی:
                مطالعه پست 1 (حتما مطالعه کنید)


                مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

                دانلود

                توجه:
                این برد نیمه صنعتی و خانگی هست...
                برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

                آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

                دیدگاه


                  پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

                  نوشته اصلی توسط mohammad...
                  سلام
                  بله شما هر تعداد کلید که می خواین قرار بدید باید تو داخل do loop تعریف کنید با سرعت 10 میلی ثانیه یا بیشتر یا کمتر که بستگی به خودتون داره سرعت چک کردن برنامه
                  صفحه ال سی دی باید هماهنگ با رله باشه یعنی زمانی که دما خونده میشه و متغیری که به رله نسبت دادیم تا رله رو پدیت کنه اونموقع باید ال سی دی رو هم اپدیت کنه تا کاربر ببینه که به عنوان مثال دما افزایش یافت و رله خاموش شد

                  ولی یه نکته اینکه شما می تونید برنامه رو تو برچسب ها هم بنویسید مثلا یه برچسب تعریف کنید که اگر کلید اینتر من زده شد برو برچسب lable2 (با دستور goto lable2 ) بعد اینکه اومد برچسب شما می تونید منوی تنظیم رو تو این قسمت بنویسید و بعد از اتمام تنظیم باید برگردی به اون برچسبی که در حالت عادی باید اجرا شه و دما و رطوبت و عمل چرخش انجام بشه برای همین این دستوراتی که باید در حالت عادی اجرا بشه اینم داخل مثل یک برچسب به اسم main قرار می دیم و بعد از تنظیمات با همون دستور بالا به این برچسب بر می گردیم

                  اما برای افزایش و کاهش دما یا رطوبت شما دو روش پیش رو دارید روشی که با نگه داشتن کلید متغیر کم شه و این کاهش مقدار تا وقتی ادامه داشته باشه که شما دستتون رو از روی شستی بردارید اما روش دوم هم اینه که شما کلید رو که می زنید یک واحد از مقدار کم بشه و تمام و برای کاهش مجدد باید دست از روی شستی برداشته بشه و دوباره زده بشه این روش بیشتر برای رفتن از منویی به منوی دیگه کاربرد داره
                  داداش خیلی ممنون همه فرمایشاتت رو دوسه باری خوندم وکلی استفاده کردم الانم دارم طبق اطلاعاتی که بهم دادی برنامه رو مینویسم به محض اینکه تموم شد و جواب گرفتم نتیجه رو اینجا میزارم تا همه دوستان شاهد این باشن که با کمکت تونستم برنامه رو به نتیجه برسونم و همگی بهت افتخار میکنیم =D>
                  راستی داداش همونطور که قبلا عرض کرده بودم بنده نمیخوام تو این سیستم از دو بازه حداقل و حداکثر دما استفاده کنم من میخوام یه دمارو ثبت کنم مثلا37.7 بعد وقتی دما به0.4کمتر یعنی37.3 رسید رله روشن و وقتی به 37.7 رسید خاموش بشه بنظرت سخته اینجوری برنامه نویسیش کرد؟
                  و نکته دوم اینکه چجوری مقدار اولیه دمارو وارد حافظه ایپرام میکرو کنم؟مثلا یه متغیری در حافظه ایپرام ایجاد کردیم برای اینکه این متغییر همون لحظه استارت یه عددی داخلش باشه باید چیکار کنیم؟
                  ممنون از کمکت

                  دیدگاه


                    پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

                    نوشته اصلی توسط امیر کریمی
                    داداش خیلی ممنون همه فرمایشاتت رو دوسه باری خوندم وکلی استفاده کردم الانم دارم طبق اطلاعاتی که بهم دادی برنامه رو مینویسم به محض اینکه تموم شد و جواب گرفتم نتیجه رو اینجا میزارم تا همه دوستان شاهد این باشن که با کمکت تونستم برنامه رو به نتیجه برسونم و همگی بهت افتخار میکنیم =D>
                    راستی داداش همونطور که قبلا عرض کرده بودم بنده نمیخوام تو این سیستم از دو بازه حداقل و حداکثر دما استفاده کنم من میخوام یه دمارو ثبت کنم مثلا37.7 بعد وقتی دما به0.4کمتر یعنی37.3 رسید رله روشن و وقتی به 37.7 رسید خاموش بشه بنظرت سخته اینجوری برنامه نویسیش کرد؟
                    و نکته دوم اینکه چجوری مقدار اولیه دمارو وارد حافظه ایپرام میکرو کنم؟مثلا یه متغیری در حافظه ایپرام ایجاد کردیم برای اینکه این متغییر همون لحظه استارت یه عددی داخلش باشه باید چیکار کنیم؟
                    ممنون از کمکت
                    خواهش می کنم داداش امیدوارم که با این نکته هایی که می گم تونسته باشم تا کمکت کنم :smile:
                    امیر جان ببین فرض کنیم شما یه منوی وارد کردن دمای مورد نظر به اسم lable2 برنامه نویسی کردید با زدن کلید میره به این منو و می خوای که دما رو تنظیم کنی و تو میکرو ذخیره کنی برای ذخیره در ایپرام میکرو دو راه وجود دارد یکی اینکه خودت این متغیر معمولی که تعریف می کنید با دستور writeeeprom بنویسی و در یک ادرس مشخص تو حافظه ایپرام ذخیره کنی اما اون متغیر اگر از نوع بایت باشه نیاز به یک بایت از نوع حافظه ایپرام داره ولی اگر از نوع word یا integer باشه نیاز به دو بایت هست و اگر هم از نوع single باشه نیاز به چهار بایت هست که باید رعایت کنی مثلا اگر دو متغیر از نوع بایت و single رو بخوای تو حافظه ایپرام ذخیره کنی خوب می نویسی که برای متغیر بایت
                    [code=c]WRITEEEPROM var , address[/code]
                    که در دستور بالا var اسم متغیر هست و ادرس هم که مشخصه همون ادرس ذخیره حافظه هست خوب اگر متغیر بایت رو تو ادرس یک ذخیره کنید یک بایت اشغال می کنه به صورت زیر (بر فرض نام متغیر بایتمون هست a)

                    [code=c]WRITEEEPROM a , 1[/code]

                    و همینطور هم فرض کنیم نام متغیر دومیمون که از نوع single هست باش temp که می نویسی

                    [code=c]WRITEEEPROM temp , 2[/code]

                    خوب صبر کن هنوز تموم نشده :rolleyes: همینطور فرض کن یه متغیر دیگه باز هم از نوع بایت دارین و می خوای تو حافظه ذخیره کنید خوب اینجا نباید تو ادرس 3 و 4 و 5 ذخیره کنید که از خانه 2 تا 5 متعلق به متغیر single هست و باید از ادرس 6 به بعد متغیر رو ذخیره کنید بعد اینکه متغیر رو ذخیره کردید باید به مدت 4 یا 5 میلی ثانیه تاخیر ایجاد کنی تا داده تو ایپرام نوشته بشه چون ایپرام میکرو کند هست که باید رعایت شود

                    حالا این متغیر ها رو ذخیره کردید تموم شد می خوام تو برچسب اصلیمون این متغیر ها رو از حافظه بخونیم یعنی این دستورات رو بالای دستور do قرار میدیم (با دستور زیر)
                    [code=c]READEEPROM var , address[/code] که برای خواندن متغیر a از نوع بایتت که قبلا ذخیره کردید اسم متغیر و اون خانه ای که ذخیره کردید رو میدید که برای a ادرس یک هست و برای b از نوع single ادرس 2 هست و برای اون متغیر اخری هم ادرس 6 البته تو خوندن نیازی به استفاده از تاخیر نیست

                    اما روش دوم که روش راحتی هست اینه که شما هنگام تعریف یک متغیر همونجا متغیر رو تعریف می کنید که از نوع ایپرام هست یا نه مثلا می نویسید

                    [code=c]dim a as Eram byte[/code]

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

                    حال اگر متغیر a رو برابر 10 کنیم مقدارش 10 میشه و همون لحظه هم ذخیره میشه اما یه مشکلی هست که نمیشه این متغیر رو دائم تغییرش داد چون هر بار که مقدارش عوض می شه یا اپدیت میشه مستقیم تو حافظه می نویسه که اگر روند این نوشتن زیاد باشه بعد مدتی حافظه ایپرام طبق دیتاشیت از کار می افته برای همین نیاز داری که تو این روش برای جلوگیری از این مشکل هر متغیری که از نوع ایپرام تعریف می کنی یه متغیر معمولی هم از همون نوع تعریف کنید
                    من متغیر a رو از نوع ایپرام تعریف کردم و b رو هم معمولی تعریف کردم حالا میام تو منوی تنظیم دما از متغیر معمولی استفاده می کنم یعنی وقتی که با دکمه دما رو تغییر دادم و تموم شد حالا می خوام اینتر رو بزنم برگردم به منوی اصلی که شما قبل از goto lable1 می نویسی
                    [code=c]a=b[/code]
                    با این روش از خراب شدن ایپرام جلوگیری کردیم ولی باید تو برچسب اصلی یعنی lable1 بالای do بنویسی

                    [code=c]b=a[/code]
                    و از متغیر معمولی استفاده کنی و متغیری از نوع ایپرام رو هیچوقت مستقیم به کار نگیرین

                    اما مزیت روش اول اینه که شما مجبور به تعریف کردن متغیر کمکی و در نهایت اشغال کردن حافظه sram میکرو نیستین ولی اگر در روش دوم برای هر متغیر ایپرام متغیر معمولی هم تعریف کنی در برنامه نویسی های پیشرفته می بینی که حافظه sram کم اوردین و مجبورین بعضی از متغیر ها رو حذف کنید یا از یه میکرو با sram بیشتر استفاده کنید

                    اما عیب روش اول هم اینه که هم حجم حافظه flash یعنی همون محیطی که برنامه رو می نویسی میبره بالا هم یکم وقتگیر هست و هم حال خراب کن

                    در صورتی که از روش اول استفاده کرید بعد اتمام تمام کدهای بسکام باید شما بگین که من از این حافظه ها برای متغیر هام استفاده کردم تا بسکام هنگام کامپایل کردن کنار فایل هگز یه فایل هم با نام eep بهتون بده که هنگام پروگرام باید مثل حافظه فلش فایل eep رو هم به ایپرام بریزید

                    اگر دستور زیر رو برای روش اول استفاده نکنید یا یادتون بره فایل eep رو نخواهد داد
                    دستور مشخص کردن خانه های استفاده شده در روش اول(من همون سه متغیری که تعریف کردم برای همونا خانهها رو فراخوانی می کنم)

                    [code=c]$eeprom
                    Data 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7
                    $data
                    [/code]

                    برای دفعه اولی که تو متغیر ایپرام چیزی نوشته نشده باشه مقدار متغییر ماکزیمم هست که با دانستن این می تونی اینو تشخیص بدین و شرطی رو اجرا کنید مثلا می دونید که دمای مورد تنظیم شما 0 تا 100 هست که باید این متغیر ایپرام رو بعد اینکه می خونم مقدارش بین این عدد یعنی صفر تا صد باشه در غیر این صورت یعنی اگر بیشتر باشه میام مقدار متغیر ایپرام رو می کنم مثلا 37 درجه که در روش اول بعد تغییر دادن مقدار write می کنم و برای روش دوم هم مقدار متغیر ایپرام رو برابر با 37 می کنم فقط یادتون باشه که برای هر دو روش بعد اینکه رایت میشه یه تاخیر 5 میلی قرار بدید

                    ببخشید یکم طولانی شد :surprised: دیگه چاره ای نداشتم :rolleyes:








                    برد جوجه کشی:
                    مطالعه پست 1 (حتما مطالعه کنید)


                    مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

                    دانلود

                    توجه:
                    این برد نیمه صنعتی و خانگی هست...
                    برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

                    آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

                    دیدگاه


                      پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

                      سلام داداش
                      دیشب تا ساعت 3.30 داشتم برنامه رو مینوشتم #:Sو خداروشکر با اطلاعاتی که در اختیارم گذاشتی به نتیجه خوبی رسیدم که بزودی برنامه همراه با شبیه سازی رو میزارم
                      و اما باز هم فرمایشاتت طبق معمول واضح و مفید بود دمت گرم :agree:
                      محمد جان خدمتت عرض کنم که بنده از روش دوم ذخیره داده ها تو eeprom استفاده کردم یعنی یه متغیر از نوع single در eram تعریف کردم و همچنین یه متغیر معمولی(single) جداگانه برای بکار گیری از این متغیر ایپرام
                      نحوه برنامه هم به این شکل طراحی کردم که کل سیستم سه تا شستی تنظیم داره (up-down-set) که با زدن دکمه set و نگه داشتن اون در حد چند میلی ثانیه وارد menu تنظیم دما میشم و در اونجا حلقه بی نهایت ایجاد کردم و داخل حلقه با سرعت چند میلی ثانیه سه تا کلید (up-down-set)چک میشن و تو ال سی دی وضعیت اپدیت میشه و میتونم به سرعت دمارو کم یا زیاد کنم بعد که دمای مورد نظرم رو تنظیم کردم دوباره چند میلی ثانیهset رو نگه میدارم در این حالت اول متغیر که تنظیم کردم داخل ایپرام ذخیره میشه و بلافاصله به برنامه اصلی برمیگرده تو برنامه اصلی هم اطلاعات متغییر ایپرام رو داخل یه متغیر معمولی میریزم و اونو نمایش میدم حالا داداش روند کار صحیح هست یا خیر؟
                      و اینکه چون من از روش دوم ذخیره داده ها تو ایپرام استفاده کردم حال چطوری میتونم کدeep رو موقع کامپایل کردن استخراج کنم؟کدی که لطف کردی گذاشتی فقط واسه روش اول هست؟
                      و در اخر اینکه فقط نتونستم تو برنامه اینجور حالت رو ایجاد کنم :sad:
                      میخوام یه دمارو ثبت کنم مثلا37.7 بعد وقتی دما به0.4کمتر یعنی37.3 رسید رله روشن و وقتی به 37.7 رسید خاموش بشه
                      ممنون از لطفت داداش

                      دیدگاه


                        پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

                        نوشته اصلی توسط امیر کریمی
                        سلام داداش
                        دیشب تا ساعت 3.30 داشتم برنامه رو مینوشتم #:Sو خداروشکر با اطلاعاتی که در اختیارم گذاشتی به نتیجه خوبی رسیدم که بزودی برنامه همراه با شبیه سازی رو میزارم
                        و اما باز هم فرمایشاتت طبق معمول واضح و مفید بود دمت گرم :agree:
                        محمد جان خدمتت عرض کنم که بنده از روش دوم ذخیره داده ها تو eeprom استفاده کردم یعنی یه متغیر از نوع single در eram تعریف کردم و همچنین یه متغیر معمولی(single) جداگانه برای بکار گیری از این متغیر ایپرام
                        نحوه برنامه هم به این شکل طراحی کردم که کل سیستم سه تا شستی تنظیم داره (up-down-set) که با زدن دکمه set و نگه داشتن اون در حد چند میلی ثانیه وارد menu تنظیم دما میشم و در اونجا حلقه بی نهایت ایجاد کردم و داخل حلقه با سرعت چند میلی ثانیه سه تا کلید (up-down-set)چک میشن و تو ال سی دی وضعیت اپدیت میشه و میتونم به سرعت دمارو کم یا زیاد کنم بعد که دمای مورد نظرم رو تنظیم کردم دوباره چند میلی ثانیهset رو نگه میدارم در این حالت اول متغیر که تنظیم کردم داخل ایپرام ذخیره میشه و بلافاصله به برنامه اصلی برمیگرده تو برنامه اصلی هم اطلاعات متغییر ایپرام رو داخل یه متغیر معمولی میریزم و اونو نمایش میدم حالا داداش روند کار صحیح هست یا خیر؟
                        و اینکه چون من از روش دوم ذخیره داده ها تو ایپرام استفاده کردم حال چطوری میتونم کدeep رو موقع کامپایل کردن استخراج کنم؟کدی که لطف کردی گذاشتی فقط واسه روش اول هست؟
                        و در اخر اینکه فقط نتونستم تو برنامه اینجور حالت رو ایجاد کنم :sad:ممنون از لطفت داداش
                        سلام
                        بله ظاهرا درست هست و اونطور که گفتم اگر برنامه نویسی کرده باشی باید درست باشه
                        برای روش دوم فایل eep نمی خواد و همون فلش رو کامپایل کنی کافیه

                        برای اینکه چک کنی تا دما 0.3 اومد پایین رله روشن شه باید اون متغیری دمایی که تو منوی تنظیم سیو کردی و در برنامه اصلی داخل متغیر کمکی ریختی حالا میای یه کتغیر جدید هم تعریف می کنی و میگی که از temp به مقدار 0.3 کم بشه با دستور
                        [code=c]var=temp-0.3[/code]
                        حال می تونی دمای خونده شده از سنسور رو با متغیر var چک کنی و رله رو روشن کنی برای خاموش کردن رله هم بدین صورت یه کتغیر دیگه تعریف کن و با temp رو با 0.3 جمع کن که اگر بیشتر از اون شد رله رو خاموش کنه
                        برد جوجه کشی:
                        مطالعه پست 1 (حتما مطالعه کنید)


                        مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

                        دانلود

                        توجه:
                        این برد نیمه صنعتی و خانگی هست...
                        برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

                        آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

                        دیدگاه


                          پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

                          نوشته اصلی توسط mohammad...
                          سلام
                          بله ظاهرا درست هست و اونطور که گفتم اگر برنامه نویسی کرده باشی باید درست باشه
                          برای روش دوم فایل eep نمی خواد و همون فلش رو کامپایل کنی کافیه

                          برای اینکه چک کنی تا دما 0.3 اومد پایین رله روشن شه باید اون متغیری دمایی که تو منوی تنظیم سیو کردی و در برنامه اصلی داخل متغیر کمکی ریختی حالا میای یه کتغیر جدید هم تعریف می کنی و میگی که از temp به مقدار 0.3 کم بشه با دستور
                          [code=c]var=temp-0.3[/code]
                          حال می تونی دمای خونده شده از سنسور رو با متغیر var چک کنی و رله رو روشن کنی برای خاموش کردن رله هم بدین صورت یه متغیر دیگه تعریف کن و با temp رو با 0.3 جمع کن که اگر بیشتر از اون شد رله رو خاموش کنه
                          سلام داداش @};-
                          ایول واقعا عالی بود خیلی اقایی
                          نکاتی رو که فرمودی رو تو برنامه لحاظ میکنم و برنامه همراه با شبیه سازی رو اینجا میزارم
                          خیلی ممنون داداش ببخشید اگه اذیتت کردم

                          دیدگاه


                            پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

                            نوشته اصلی توسط امیر کریمی
                            سلام داداش @};-
                            ایول واقعا عالی بود خیلی اقایی
                            نکاتی رو که فرمودی رو تو برنامه لحاظ میکنم و برنامه همراه با شبیه سازی رو اینجا میزارم
                            خیلی ممنون داداش ببخشید اگه اذیتت کردم
                            سلام امیر جان
                            خواهش می کنم امیدوارم که تونسته باشم کمکی کرده باشم
                            برد جوجه کشی:
                            مطالعه پست 1 (حتما مطالعه کنید)


                            مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

                            دانلود

                            توجه:
                            این برد نیمه صنعتی و خانگی هست...
                            برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

                            آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

                            دیدگاه


                              پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

                              سلام به همه دوستان و تبریک پیشا پیش شب یلدا
                              و تشکر از تمام زحمات دوستانی که دارن برای جلو بردن این پروژه تلاش میکنن @};-
                              دوستان خسته نباشید
                              مواظب اعمالمان باشیم

                              کسی نمیداند

                              آخرین خداحافظی اش چه وقتیه ؟

                              دیدگاه


                                پاسخ : اونایی که دنبال دستگاه جوجه کشی می گردن بیان تو

                                سلام بر آقا محمد
                                یک سئوال داشتم. شما با اون سنسور sht20 کار عملی کردین؟ تونستین راش بندازین؟ اگه پاسخ مثبت هست آیا سنسور را خودتون لحیم کردین یا روی برد آماده خریدین؟
                                من 2 تا گرفتم و خودم رو برد لحیم کردم. با ایکسمگا کار می کنم. لعنتی از بس سنسور مزخرفی هست هیچ جوری راه نمی افته.
                                در زیر این نقاب چیزی بیشتر از گوشت هست. در زیر این نقاب یک ایده هست و ایده ها ضدگلوله هستند.

                                1-به اندازه ی باورهای هر کسی ؛ با او حرف بزن …. بیشتر که بگویی ، تو را احمق فرض خواهد کرد …!!!
                                2-تنها دو گروه نمى توانند افکار خود را عوض کنند: دیوانگان تیمارستان و مردگان گورستان.
                                3-آدم ها مثل عکس ها هستند: زیاد بزرگشون کنی ، کیفیتشون میاد پایین!

                                دیدگاه

                                لطفا صبر کنید...
                                X