اطلاعیه

Collapse
No announcement yet.

[پروژه] پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

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

    پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

    نوشته اصلی توسط pumper
    preampbe :32 clk
    every databit :4 clk

    کد:
    128=(24*4)+32
    درسته ؟
    پس اون 128 تای دیگه که فرمودید از کجا میاد؟
    با سلام

    اخه برادر چرا گیر این تعداد کلاک و زمان و فرکانس و ... هستید
    100 بار هر بار هم یه جور توی این تاپیک خود بنده توضیح دادم که نیازی به اینها نیست
    بیست و چهار بیت داریم که ضربدر چهار (هربیت چهار کلاک هست) بعلاوه سی و دو کلاک استارت سرجمع میشه 128 کلاک"دیگه ساده تر از این نمیشه"

    در الگوریتمی که توضیح دادم نیازی به داشتن هیچ یک از پارامترهای فوق نیست

    فقط کافیه مقدار زمان یک و صفر بودن هر بیت رو با هم مقایسه کنید همین

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

    به همین سادگی :nice:
    تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
    به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.

    دیدگاه


      پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

      بله جناب پلی استار با هاتون موافقم من هم با الگوریتم مشابه برنامه جدید نوشتم منتها به جای این که 3 بار چک بشه یک بار چک کردم و خیلی خوب جواب داد تو این 1 هفته هم تقریبا خطایی نداشته حالا به نظرتون می تونم با اطمینان از این استفاده کنم؟ ضمنا بردم هم بدون اشمیت تریگر تقریباً توی فضای باز 80 متر بود با اشمیت چقدر تغییر میکنه لزومی داره برای افزایش برد این کار رو انجام بدم؟.


      فقط یه نکته هست که فکر می کنم توی دیتا شیت اشتباه شده باشه که 256 نوشته شده در صورتی که باید 128 باشه.
      اسمم بابا برقیه می دونین کارم چیه دلم می خواد همه جا که با کمک شما
      مصرف برق کم بشه تا برقمون قطع نشه
      مصرف بی رویه کار خیلی بدیه موقع پخش کارتون برق تلویزیون
      اگه یه دفعه بره حوصله مون سر می ره
      هرگز نشه فراموش لامپ اضافی خاموش

      دیدگاه


        پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرن&#1

        نوشته اصلی توسط mohsen_Sir
        بله جناب پلی استار با هاتون موافقم من هم با الگوریتم مشابه برنامه جدید نوشتم منتها به جای این که 3 بار چک بشه یک بار چک کردم و خیلی خوب جواب داد تو این 1 هفته هم تقریبا خطایی نداشته حالا به نظرتون می تونم با اطمینان از این استفاده کنم؟ ضمنا بردم هم بدون اشمیت تریگر تقریباً توی فضای باز 80 متر بود با اشمیت چقدر تغییر میکنه لزومی داره برای افزایش برد این کار رو انجام بدم؟.


        فقط یه نکته هست که فکر می کنم توی دیتا شیت اشتباه شده باشه که 256 نوشته شده در صورتی که باید 128 باشه.
        با سلام

        بنده هادی اسدی هستم و polestar به معنی ستاره قطبی هست که در انگلیسی به معنی هادی و راهنما استفاده میشه

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

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

        در مورد این نکته اخر هم باید عرض کنم پست شماره 628 یعنی دو پست قبلی بنده ویرایش شده
        به همین سادگی :nice:
        تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
        به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.

        دیدگاه


          پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

          همین بسکام هم به سختی یاد گرفتیم
          راستی من یه مطلب تو این زمینه پیدا کردم نمیدونم درسته یا نه . میشه یه نگاه بندازید لطفا:
          :eek: :eek: :eek: :rolleyes: :rolleyes: :read: :read:[img][/img]

          » حتما از کریستال 8 مگ برای avr استفاده کنید . برای pic از کریستال 16مگ

          در این پروژه یک گیرنده ریموت 3 رله میسازیم
          برای اینکار نیاز به یکعدد ریموت کنترل بتا که ask ]ستند و در فرکانس 433 کار میکنند
          یک عدد ماژول گیرنده ask433 یا pcr433
          روش کلی به این صورت هست که ماژول گیرنده کدهای ارسالی ریموت را دریافت میکنه و تبدیل به پالس میکنه و ما اون پالسها را پردازش میکنیم

          همانطور که دوستان در تاپیکهای avr اشاره کردن اکثر ریموتهای لرن از آی سی EV1527 استفاده میکنند که این آی سی 24 بیت کد ارسال میکنه
          که 20 کد مربوط به سریال ریموت کنترل هست و 4 کد آخر مربوط به کلید ریموت کنترل
          این 24 بیت که مجموعه ایی از صفر و یک هست به صورت خاصی ارسال میشود :
          یکها پالسی به طول مثلا 3 ms
          صفرها پالسی به طول 1 ms

          یعنی طول پالسهای یک 3 برابر صفر هست

          وقتی کلیدی را فشار میدهیم اول پالس با سطح یک به مدت 3 ms سپس پالسی به طول 31 برابر صفرها اما با سطح صفر میفرسته یعنی 31ms بعدش کدهای صفر و یک را ارسال میکنه پس اول PREMBLE بعد هم 24 کد

          پس روش کار به این صورت هست :

          اول منتظر میمونه یک بشه بعدش تا صفر شد طول پالس را اندازه میگیریم هر وقت پالسی اومد که طولش 31ms بود یعنی ریموت داره کد ارسال میکنه بعد از اون تا 24 پالس را ذخیره میکنیم که مربوط به کدهای ریموت هستند .

          چون باید اندازه گیری دقیق باشه پایه دیتای گیرنده را به تایمر 1 میکرو میدیم توسط اون اندازه میگیریم .

          با کریستال 16 MEG و استفاده از تایمر یک این مقادیر به دست میاد :

          PRIMBLE : اگر بین 4500 تا 6500 بود پس میفهمیم که کلید زده شده
          یکها : بین 300 تا 800
          صفرها : بین 50 تا 300

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


          حالا میریم سراغ برنامه نویسی :

          راه اندازی تایمر 1 :

          t1con.0=0: tmr1h=0 :tmr1l=0
          t1con=%00110000


          حلا در قسمت اصلی برنامه منتظر میمونیم که پایه متصل به ماژول گیرنده هر وقت 1 شد ما عرض پالس را با تایمر 1 اندازه بگیریم اگر مقدار مورد نظر بود عمل کنه فرض کنیم اسم پورتی که دیتای گیرنده وصل هست RF باشه :
          if rf=1 then
          t1con=%00110000: tmr1h=0 :tmr1l=0 :t1con=%00110001 ;shoro
          while rf=1
          v2.byte1=tmr1h : v2.byte0=tmr1l
          if v2>1000 then goto badesh1
          wend
          :badesh1

          برای اینکه قابل فهم باشه توضیح میدم بعدش ادامه برنامه :
          دستور IF منتظر میمونه که پالس بیاد سپس تایمر 1 را روشن و مقدارش را صفر میکنه سپس وارد حلقه میشه و تا وقتی یک هست در حلقه میمونه تایمر 1 هم که در حال اندازهگیری هست که در V ذخیره میشه
          اما اگر بر اثر نویز یا هر چیز دیگه این پایه مدت زیادی 1 بمونه داخل این حلقه گرفتار میشه برای همین داخل حلقه مقدار V را اندازه میگیریم اگر از مقدار مورد نظر ما بیشتر شد خارج بشه
          حالا ادامه برنامه :
          t1con=%00110000: tmr1h=0 :tmr1l=0 :t1con=%00110001 ;shoro
          while rf=0
          s2.byte1=tmr1h : s2.byte0=tmr1l
          if s2>6500 then goto badesh2
          wend
          badesh2:
          t1con=%00110000 ;payan

          s2.byte1=tmr1h : s2.byte0=tmr1l
          if s2>4500 then
          if s2<6500 then

          goto daryaft_kod
          endif
          endif
          goto main
          دوباره تایمر 1 صفر میشه و روشن میشه و مدت زمانی که پایه صفر هست را میشماره داخل حلقه اگر از مقدار مورد نظر بیشتر شد برای گرفتار نشدن خارج میشه اگر هم مقدار مورد نظر درست
          بود که خود به خد از حلقه خارج میشه چون پالس به صفر و یک تغییر میکنه
          بعد هم تایمر1 را خاموش میکنیم گناه داره http://www.eca.ir/forum2/Smileys/phpbb/1.gif
          بعد هم مقادیر تایمر را در s2 ذخیره میکنیم

          حالا اگر این s2 بین مقادیر 4500 تا 6500 بود پش پیش کد ارسال شده باید بلافاصله 24 تا بعدی را بخونیم
          اما زیر برنامه دریافت کدها :

          اول 34 بیت را دریافت میکنیم که همشون سطح 1 دارند با عرضهای مختلف اونها که 3ms (بین 300 تا 800)هستند یک هستند و اونها که 1 ms (بین 100 تا 300)هستند صفر هستند و هر چی غیر از اینها باشه غلطه خارج میشه
          بعدش هم برای اینکه حافظه الکی پر نشه اونها که بین 300 تا 800 هستند را جاش 1 ذخیره میکنیم اونها هم که بین 100 تا 300 هستند جاش صفر میزاریم
          حالا بریم توضیح زیر برنامه :

          :daryaft_kod
          j=0

          while j<code


          if rf=1 then
          t1con=%00110000: tmr1h=0 :tmr1l=0 :t1con=%00110001
          while rf=1
          s2.byte1=tmr1h : s2.byte0=tmr1l
          if s2>850 then goto main
          wend
          :
          t1con=%00110000
          j=j+1
          s2.byte1=tmr1h : s2.byte0=tmr1l
          s[j]=s2
          tmr1h=0 :tmr1l=0 :t1con=%00110001
          endif
          wend
          tmr1h=0 :tmr1l=0 :t1con=%00110000

          for i=1 to code
          if s>=300 and s<=800 then
          s=1
          else

          if s>=100 and s<300 then
          s=0
          else
          tmr1h=0 :tmr1l=0 :t1con=%00110000
          j=0


          goto main

          endif
          endif

          next i

          توسط حلقه while j تا 24 کد را میخونه و ذخیره میکنه سپس خارج میشه
          منتظر میمونه 1 بشه تایمر روشن وارد حلقه میشه اگر بیشتر از مقدار مورد نظر بود برای اینکه توی حلقه گیر نکنه خارج میشه اگر مجاز بود که از حلق میاد بیرون و مقدار تایمر در یک آرایه ذخیره میشه


          به همین ترتیب هر 24 تا در یک آرایه 24 تائی ذخیره میشوند

          سپس توسط حلقه for اونها که بین 100 تا 300 بودن بهشون 0 مقدار میدیم و اونها که بین 300 تا 800 بودن بهشون 1 میدیم
          هر چی هم خارج این مقادیر باشه یعنی اشتباه از برنامه خارج میشه

          خوب حالا ما کدها را داریم باید 20 تا بیت اول را ذخیره کنیم و 4 تا بیت آخر مشخص میکنه که کدوم کلید زده شده
          :applause:


          دیدگاه


            پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

            گیرنده ای که استفاده کردم pcr1a هست وریموت هم همین ریموتهای دزدگیر ماشین. فرکانس هم 315 هست

            بورد گیرنده خیلی کمه و در حد نیم متر هست! که با اضافه کردن یه سیم به عنوان انتن (حدود 20-30 سانت سیم) بوردش تا حدود 1.5تا 2 متر افزایش پیدا میکنه...

            دوستان چیکار کنم تا بوردش حداقل 30 متری بشه؟

            فرستنده های رموت بوردشون خوبه و روی یه دزدگیر ماشین فاصله زیاد رو داده میتونن بفرستن. پس همه چیز برمیگرده به گیرنده من...

            ممنونم
            http://ceworld.ir/images/ads/dornablogcom_ads.gif

            دیدگاه


              پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

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

              دیدگاه


                پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

                نوشته اصلی توسط saifi
                POLESTARسلام با تشکر از پرژه جالبتون فقط یک راهنمایی در مورد رله های خروجی این پرژه داشتم به این صورت که در سورس برنامه ایا میشه تایمری برای هر رله تعریف کرد؟ اگه جواب مثبته لطف کنید راهنمایی برسونید برنامه الحاقی رو هم تو سایت بزارید که نورالنور میشه. بازم از لطفتون ممنون
                با سلام
                بله میشه تعریف کرد
                متغیری به نام d_time وجود داره که ریست شدن رله را کنترل میکنه
                میتونید با تنظیم این متغیر ریست شدن رله را به تاخیر بندازید
                http://imenbazar.com

                دیدگاه


                  پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرن&#1

                  همه ی تاپیک رو یکجا خوندم
                  خیلی پر حاشیه بود و خیلی گیج کننده
                  گفتم همرو روشن کنم
                  به همین خاطر این پروژه رو میزارم که همون لرنینگه چهارکاناله
                  بدون باگ- با قابلیت انتخاب حالت لحظه ای یا دائم به صورت مجزا برای هرکانال توسط همان شاسی لرنینگ
                  دانلود -فایل هگز - PCb-لیست قطعات-و توضیحات مدار PDF
                  مدار کاملا تست شده هستش و هیییچ گونه مشکل و باگی نداره
                  http://s2.picofile.com/file/79052037...ntrol.rar.html

                  باشد ک رستگار شویم..
                  مدت زمانی که صرف ایجاد تاپیک و منتظر پاسخ هستید را صرف سرچ کنید...

                  دیدگاه


                    پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

                    خیلی بهتر می شد لینک منبع رو هم قرار می دادید. :mrgreen:
                    البته باگ داره...
                    کد:
                    http://yazdkit.com/4-channel-learning-remote-control-attiny2313-4970.html
                    اسمم بابا برقیه می دونین کارم چیه دلم می خواد همه جا که با کمک شما
                    مصرف برق کم بشه تا برقمون قطع نشه
                    مصرف بی رویه کار خیلی بدیه موقع پخش کارتون برق تلویزیون
                    اگه یه دفعه بره حوصله مون سر می ره
                    هرگز نشه فراموش لامپ اضافی خاموش

                    دیدگاه


                      پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

                      نوشته اصلی توسط محمد مهدی نایبی
                      خیلی بهتر می شد لینک منبع رو هم قرار می دادید. :mrgreen:
                      البته باگ داره...
                      کد:
                      http://yazdkit.com/4-channel-learning-remote-control-attiny2313-4970.html
                      میشه باگش رو به منم بگی
                      مدت زمانی که صرف ایجاد تاپیک و منتظر پاسخ هستید را صرف سرچ کنید...

                      دیدگاه


                        پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

                        نوشته اصلی توسط nimaaryamehr
                        میشه باگش رو به منم بگی
                        نه نمیشه :biggrin: :mrgreen: :mrgreen: :mrgreen:
                        شوخی کردم
                        بعضی وقتا بازی در میاره تو محیطای نویزی .البته دقیق یادم نیست باگای دیگش ولی چون خوب کار نمی کرد تصمیم گرفتم خودم بنویسمش.
                        اسمم بابا برقیه می دونین کارم چیه دلم می خواد همه جا که با کمک شما
                        مصرف برق کم بشه تا برقمون قطع نشه
                        مصرف بی رویه کار خیلی بدیه موقع پخش کارتون برق تلویزیون
                        اگه یه دفعه بره حوصله مون سر می ره
                        هرگز نشه فراموش لامپ اضافی خاموش

                        دیدگاه


                          پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

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

                          دیدگاه


                            پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

                            نوشته اصلی توسط nimaaryamehr
                            والا من که استفاده میکنم بدون هیچ مشکلی کار میکنه
                            فقط ریموتم از سری Eveنیست فقط 2تا کانالش کار میکنه
                            آره آفرین مشکل منم همین بود الان یادم اومد.کلا با یه سری ریموتا سا میشه با eve هم فکنم ست نشد.بعد کد رو درست نمیگیره.مثلاً اشتباها کد رو همش رو 1 میگیره وقتی میزنی کار میکنه آدم فکر میکنه سالمه و خوب کار میکنه ولی بعضی ریموت ها رو میزنی می بینی بدون این که لرنش کنی بازم باهاشون ستته و کار میکنه :nice: :nice:
                            اسمم بابا برقیه می دونین کارم چیه دلم می خواد همه جا که با کمک شما
                            مصرف برق کم بشه تا برقمون قطع نشه
                            مصرف بی رویه کار خیلی بدیه موقع پخش کارتون برق تلویزیون
                            اگه یه دفعه بره حوصله مون سر می ره
                            هرگز نشه فراموش لامپ اضافی خاموش

                            دیدگاه


                              پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

                              عزیزم من یه ریموت eV گرفتم کاملا درسته هر4تا کانالش هم کار میکنه
                              تابحال هم با مشکلات شما مواجه نشدم
                              من بیشتر از قابلیت انتخاب لحظه ای و دائم این برنامه خوشم میاد واسه همین به برنام های دیگه ترجیهش میدم
                              حالا شما هم اگه برنامه ای داری ممنون میشم واسم پ خ کنی ببینم چطوریه!
                              tnx

                              باشد ک رستگار شویم....
                              مدت زمانی که صرف ایجاد تاپیک و منتظر پاسخ هستید را صرف سرچ کنید...

                              دیدگاه


                                پاسخ : پروژه کامل ریموت 4 کاناله رادیویی ASK لرنینگ

                                با سلام خدمت دوستان عزیز
                                راستش من خواستم با استفاده از اطلاعاتی که از این تاپیک بدست اوردم و زبان c دست و پا شکسته ای که بلدم یه برنامه ای واسه لرن فقط یکی از کلیدای ریموت بنویسم ولی ظاهرا این برنامم فقط استارت بیت رو درست تشخیص میده ، یه توضیح واسه برنامم اینکه من از ایتراپت تایمر صفر استفاده چون بعدا میخوام رو تاینی 13 بیارمش .کلاک تایمر همون کلاک سیستم و 8 هستش و آی سی هم مگا8 . اینم کدم :
                                iinterrupt [TIM0_OVF] void timer0_ovf_isr(void)
                                {
                                i++ ;

                                }
                                LOOP1:
                                while (!PINB.0)
                                delay_us(10);
                                if ( PINB.0 == 1 )
                                {i = 0 ;
                                while (PINB.0)
                                {if (i>300) goto LOOP1 ;};
                                B = i ;
                                D = B*30 ;
                                E = B*40 ;
                                while (!PINB.0)
                                {if (i > E) goto LOOP1 ; };
                                C = i ;
                                if (C > D)
                                {
                                PORTC.0=1 ;
                                j = 0 ;
                                while ( j <24 )
                                {
                                i = 0 ;
                                while ( PINB.0)
                                delay_us(10);
                                F = i ;
                                while (!PINB.0)
                                delay_us(10);
                                G = i ;
                                H=G/F ;
                                // if ( H>30) goto LOOP1 ; :angry: :angry: :angry: :angry:
                                if ( H<2 )
                                {code1[j] = 1 ;}
                                else
                                { code1[j] = 0 ;};
                                if (code1[j] != code[j])
                                {goto LOOP1;}
                                j++ ;
                                };
                                PORTC.2 = 1 ;
                                delay_ms(100) ;
                                PORTC=0x00 ;
                                delay_ms(100) ;
                                }
                                }
                                }
                                من فک میکردم این برنامه درست کار میکنه تا وقتی که دیدم اون شرط if ( H>30) goto LOOP1 ; :angry: :angry: رو میزارم برنامه از اون قسمت خارج میشه و این یعنی بازم بیت استارت رو خونده ! نمیدونم بخاطر عملیات رجیستری هسنش که برنامه طولانی میشه و تا بیاد کدها رو بخونه برنامه تموم شده یا چیز دیگه ای هست.
                                ممنون میشم راهنماییم کتین :biggrin:

                                دیدگاه

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