اطلاعیه

Collapse
No announcement yet.

مشکل با فرمان count در pic

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل با فرمان count در pic

    سلام به همه ی دوستان
    می بخشید یه مشکلی داشتم
    اول بگم که من با نرم افزار پروتئوس کار می کنم
    مشکلی که برم پیش اوومده اینه که دستور Count اذیتم می کنه
    برنامه اینطوره که فرمان count تعداد پالس رو در متغیر X ذخیره کنه و ال سی دی مقدار متغیر رو در هر 10 میلی ثانیه نمایش بده
    من از سیگنال ژنراتور خود نرم افزار استفاده کردم برای تولید پالس
    ولی مقدار x روی ال سی دی همش صفره
    یعنی هر کاری می کنم صفر رو نشون میده
    لطف کنید اگه میشه راهنمایی بفرمایید
    از راهنماییتون پیشاپیش خیلی خیلی ممونم

    #2
    پاسخ : مشکل با فرمان count در pic

    سلام مجدد خدمت شما دوست بسیار بسیار عزیزم که منت گذاشتید و جواب دادید
    والا من یه نیم ساعت پیش داشتم ور می رفتم با این پروتئوس مشکل مرتفع شد خدا رو شکر
    می دونید دیدم موقعی که می خوایم کارکرد مدار رو ببینیم پینی که باید پالس روش انداخته بشه چراغ کنارش همش آبی مونده .منطقا باید از پالس پیروی می کرد و هی خاموش روشن می شد
    این بود که ولتاژ پیک موج پالس رو توی سیگنال ژنراتور به 10 ولت رسوندم و خوشبختانه متوجه شدم که کار کرد
    ولی راستشو بخواین یه چیزی باز گیجم کرده
    روی اسیلوسکوپ که داشتم موج خروجی از سیگنالژنراتور رو نگاه می کردم دیدم که پیک ولتاژ پالسم رو نصف نشون میده
    یعنی وقتی من ولتاژ رو به 10 رسوندم اسکوپ 5 نشون میداد
    در این زمینه میشه یه راهنمایی بفرمایید اخه فکر نمی کردم که میکرو کنترل با 10 ولت بتونه کار کنه
    باز هم ممنونم از توجهتون

    دیدگاه


      #3
      پاسخ : مشکل با فرمان count در pic

      خواهش می کنم .
      من یه حدسی میزنم . اینکه شما سیگنال ژنراتور رو تو حالت تولید موج به صورت دو قطبی قرار داید (bipolar) . که تو این حالت دامنهء انتخابی به صورت پیک تا پیک در نظر گرفته میشه و سیگنال هم دارای هر دو قسمت منفی و مثبت خواهد بود . به همین دلیل اگه پیک مثبت رو بخواین اندازه بگیرید ، تو حالت 5 ولتی مقدار 2.5 ولت به دست میاد .
      حالا واسه اینکه بتونید به میکرو اعمال کنید باید موج رو به صورت تک قطبی یا unipolar تنظیم کنید . تو این حالت همون 5 ولت کافی هست تا میکرو عمل شمارش رو انجام بده . دلیل این کار هم اینه که میکرو فقط پالس مثبت رو می تونه بشمره نه منفی (البته تو حالت مستقیم و بدون مدارات جانبی) .
      یه راه دیگه هم این هست که از منبع کلاک استفاده کنید و تو پروتئوس و قسمت سرچ قطعات clock رو سرچ کنید و از اون استفاده کنید . پالس مربعی تک قطبی با فرکانس متغیر بهتون میده که به صورت مستقیم میشه به میکرو متصل کرد .
      و البته یه مورد دیگه اینکه تو پروتئوس می تونید ولتاژ رو بالا ببرید و میکرو هم در ظاهر کار کنه . اما تو عمل اینگونه نیست و سریعا آی سی می سوزه .

      این برنامه ای هست که واسه شمارش پالس میشه ازش استفاده کرد :
      DEFINE OSC 20
      DEFINE LCD_DREG PORTB
      DEFINE LCD_DBIT 4
      DEFINE LCD_RSREG PORTB
      DEFINE LCD_RSBIT 2
      DEFINE LCD_EREG PORTB
      DEFINE LCD_EBIT 3
      DEFINE LCD_BITS 4
      DEFINE LCD_LINES 2
      TRISB=$01
      W VAR WORD
      X VAR WORD
      CLEAR

      MAIN:
      COUNT PORTB.0,10,W
      X=X+W
      LCDOUT $FE,1,"X : ",DEC X
      GOTO MAIN

      END



      البته 10 میلی ثانیه زمان خوبی نیست ، چون lcd به سرعت رفرش میشه و یه حالت چشمک زن به وجود میاد . و البته مقدار اندازه گیری شده هم دقیق نیست (در فرکانس های متوسط و بالا) . دلیلش هم اینه که یه مدت زمانی برای نمایش اطلاعات صرف میشه که تو اون مدت که کم هم نیست ، عمل شمارش انجام نمیشه و به همین دلیل مقدار نهایی دارای خطا هست .
      بهتر هست از تایمر های میکرو استفاده کنید .
      موفق باشید .
      به دلیل رعایت نکردن قوانین ، امضا ویرایش شد.

      دیدگاه


        #4
        پاسخ : مشکل با فرمان count در pic

        آقا واقعا ممنونم دقیقا اشتباهم همین بود دمت گرم
        می بخشید من هی سوال می پرسم ولی می خواستم یه چیز در مورد یه مدار که مربوط به همین دستوره بپرسم
        من هدفم از استفاده از این دستور اینه که دور یه موتور رو بسنجم
        یعنی در واقعا یه دور موتور یا همون تاکومتر برای اتومبیل که بتونه دور رو به صورت دیجیتالی بهم نشون بده
        می بخشید شما مدار پیشنهادیتون در زمنیه ی قسمت تولید پالس چیه
        من می خوام هم تعدا پالس ها رو داشته باشم و هم طول رو و زیرشون برام مهمه
        چون می خوام یه چیزای ابتکاری هم بهش اضافه کنم
        هر چی با این ترانزیستور ها ور رفتم وقتی بهشون پالس مربعی درست حسابی میدم از اوون طرف یه موج ظربه ای بهم میدن
        اگه میشه راهنماییم کن دوست خوبم که:
        1- فرکانس و طول پالسها دست نخوره
        2- ولتاژ هم همینطور یعنی چیزی که می خوام بدم به PIC باید 5 ولت باشه دیگه ، با تغییر دور زیاد نشه
        واقعا ممنونت می شم
        تا اینجا هم واقعا ازت متشکرم

        دیدگاه


          #5
          پاسخ : مشکل با فرمان count در pic

          خواهش می کنم .
          راستش من درست منظورتون رو متوجه نشدم ، اما در همین حد که فهمیدم می تونم بگم که برای تولید پالس می تونید از ماژول ccp و در حالت pwm استفاده کنید . که موج هایی که میسازه می تونه زمان فعال بودن متفوتی + فرکانس ثابت رو داشته باشه و از طرفی نیازی به نظارت cpu نداره . تراشه ای مثل pic16f876 یا pic16f628a این ماژول رو دارن .
          در مورد تغییر شکل پالس هم باید علاوه بر درست بایاس شدن ترانزیستور و محدود شدن ولتاژ ورودی ، خود ترانزیستور هم درست انتخاب شده باشه که بتونه در فرکانسی که مد نظر شما هست عمل کنه .
          البته در مورد مدارات آنالوگ اطلاع زیادی ندارم و واسه همین کمک خاصی نمی تونم کنم .
          به دلیل رعایت نکردن قوانین ، امضا ویرایش شد.

          دیدگاه


            #6
            پاسخ : مشکل با فرمان count در pic

            نوشته اصلی توسط irmicro
            خواهش می کنم .
            راستش من درست منظورتون رو متوجه نشدم ، اما در همین حد که فهمیدم می تونم بگم که برای تولید پالس می تونید از ماژول ccp و در حالت pwm استفاده کنید . که موج هایی که میسازه می تونه زمان فعال بودن متفوتی + فرکانس ثابت رو داشته باشه و از طرفی نیازی به نظارت cpu نداره . تراشه ای مثل pic16f876 یا pic16f628a این ماژول رو دارن .
            در مورد تغییر شکل پالس هم باید علاوه بر درست بایاس شدن ترانزیستور و محدود شدن ولتاژ ورودی ، خود ترانزیستور هم درست انتخاب شده باشه که بتونه در فرکانسی که مد نظر شما هست عمل کنه .
            البته در مورد مدارات آنالوگ اطلاع زیادی ندارم و واسه همین کمک خاصی نمی تونم کنم .
            این چه حرفیه دوست من ... همین که منت گذاشتی و به سوالات ابتدایی من جواب دادی و حتی مدارش رو با برنامش برام گذاشتی آخر کمک بود.
            من منظورم از ایجاد پالس این بود که یه آهن ربا روی یه محور در حال چرخش نصب کنیم و یه بوبین رو در مقابلش بذاریم که با حرکت آهن ربا از جلوی بوبین و القا جریان یه پالس به ما بده ... و شما هم می دونی که با بالارفتن دور موتور پیک موج هم بالامیره و باید یه جوری باشه که هم در دورهای پایین پیک موج 5 باشه و هم در ماکزیمم دور.
            فکر کنم همونطور که شما گفتی استفاده از مدار آمپیلیفایر متناسب با ولتاژ و فرکانس راه حلش باشه.
            راستش من فکر کردم که یه رگولاتور 5 ولت بذارم سر راه بوبین ولی خوب وقتی که ولتآز در دورهای پایین از مینیمم تعیین شده برای رگولاتر پایین تر بره مشکل ایجاد می شه.
            از همه ی کمک ها و راهنمایی هات صمیمانه ممنونم.

            دیدگاه


              #7
              پاسخ : مشکل با فرمان count در pic

              اگه اشتباه نکنم شیفت انکودر ها همین کارو واست انجام میدن .
              از ترانزیستورهای نوری هم می تونی استفاده کنی ، مشابه با عملکرد موس های غلطتکی قدیمی .
              به دلیل رعایت نکردن قوانین ، امضا ویرایش شد.

              دیدگاه


                #8
                پاسخ : مشکل با فرمان count در pic

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

                دیدگاه


                  #9
                  پاسخ : مشکل با فرمان count در pic

                  چیز خاصی واسه این کار به فکرم نمی رسه oo:
                  به دلیل رعایت نکردن قوانین ، امضا ویرایش شد.

                  دیدگاه

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