اطلاعیه

Collapse
No announcement yet.

کد نویسی بسکام ADC داخلی میکرو

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

    کد نویسی بسکام ADC داخلی میکرو

    سلام
    یه پروژه ای هست میخوام وقتی ولتاژADC از 0 تا 2 ولت شد یه رله روشن بشه و وقتی از 2 ولت تا 4 ولت بود اون رله خاموش بشه ویک رله دیگه روشن بشه
    یه کد نوشتم که فقط تو پروتئوس عمل میکنه
    ممنون میشم اگر لطف کنید راهنمایی کنید.

    #2
    پاسخ : کد نویسی بسکام ADC داخلی میکرو

    نوشته اصلی توسط rezashoja نمایش پست ها
    سلام
    یه پروژه ای هست میخوام وقتی ولتاژADC از 0 تا 2 ولت شد یه رله روشن بشه و وقتی از 2 ولت تا 4 ولت بود اون رله خاموش بشه ویک رله دیگه روشن بشه
    یه کد نوشتم که فقط تو پروتئوس عمل میکنه
    ممنون میشم اگر لطف کنید راهنمایی کنید.
    سلام
    اگه کدی که نوشتید رو قرار بدین بهتر میشه راهنمایی کرد
    ولتاژ رفرنس رو چی انتخاب کردید؟
    پایه های avcc و gnd مربوط به adc رو متصل کردین؟

    دیدگاه


      #3
      پاسخ : کد نویسی بسکام ADC داخلی میکرو

      بفرما دوست عزیز
      کد:
      $regfile = "m32def.dat"
      $crystal = 1000000
      Config Portd = Output
      Config Adc = Single , Prescaler = Auto , Reference = Avcc
      Dim W As Long
      Dim Ad As Single
      Start Adc
         Do
        W = Getadc(7)
      
      Ad = W * 4.8828125
      If Ad >= 0 And Ad < 2000 Then
      Toggle Pind.0
      End If
      If Ad >= 2001 And Ad < 4000 Then
      Toggle Pind.1
      End If
      Loop
      End

      دیدگاه


        #4
        پاسخ : کد نویسی بسکام ADC داخلی میکرو

        toggle مناسب نیست اینجا از دستور set وreset استفاده کن

        دیدگاه


          #5
          پاسخ : کد نویسی بسکام ADC داخلی میکرو

          فرقی نمیکنه
          در عمل قاطی داره

          دیدگاه


            #6
            پاسخ : کد نویسی بسکام ADC داخلی میکرو

            نوشته اصلی توسط rezashoja نمایش پست ها
            ولی تو پروتئوس تو همش جواب گرفتم
            مهندس ببخشی من اگه پرت و پلا میگم
            آخه آخرین بار 5 سال پیش با Bascome کد نوشتم!
            (الان پوشه Bas رو باز کردم برنامه های آنالوگ رو نگاه کردم، دیدم همین شکلی بودن!)
            ولی موقعی میگی توی پروتئوس جواب گرفتی، به احتمال زیاد ایراد از سخت افزارته!
            من موقع دیباگ، 8 تا LED وصل میکردم به یه پورت اضافه ، بعد بعضی مقادیر رو مانیتور میکردم
            اگه سخت افزارتون جواب میده پین هفت رو یه بار وصل کن به Vcc و مقدار آنالوگش رو بخون
            ویه بار وصل کن به گراند و مقدار آنالوگش رو بخون ببین درست جواب میده یانه؟
            و از تغذیه AVcc و گراندش هم مطمئن شو!
            جدیدترین ویرایش توسط ubub; ۱۸:۴۵ ۱۳۹۶/۱۱/۱۰. دلیل: تصحیح
            ◙◙◙◙◙ میخوام به دوستان یه کتاب معرفی کنم! وقت کردید، بخونید - اسمش هست قرآن، سال نشر 10، نویسنده: خدا . ◙◙◙◙◙

            دیدگاه


              #7
              پاسخ : کد نویسی بسکام ADC داخلی میکرو

              نوشته اصلی توسط rezashoja نمایش پست ها
              فرقی نمیکنه
              TOGGLEبا ست ریست فرق داره. از این کلید های فشاری دیدی فشار میدن روشن میشه دوباره فشار میدن خاموش میشه به اونا میگن توگل. هر وقت دستور توگل را اجر میکنی انگار اون دکمه رو یک بار فشار دادی اگه روشن باشه خاموش میشه اگر خاموش باشه روشن میشه

              Ad = W * 4.8828125
              If Ad >= 0 And Ad < 2000 Then
              Toggle Pind.0
              End If

              تا زمانی که شرط ad مساوی و بزرگتر از صفر و کوچکتر از 2000 یرقرار است PIND.0 چشمک بزند( خاموش روشن شود)

              دیدگاه


                #8
                پاسخ : کد نویسی بسکام ADC داخلی میکرو

                مهندس جان من ده باراین برنامه رو چرخوندم
                هم از set و reset استفاده کردم هم از Toggle (منظورم از فرقی نمیکنه این بود)
                ازAlias استفاده کردم
                از sub استفاده کردم
                از waitms استفاده کردم
                هم پورت رو بعنوان خروجی قرار دادم هم پین رو
                ضریب AD رو توی sub ریختم
                ولی نشد که نشد
                یه جای این برنامه میلنگه
                ولی تو پروتئوس تو همش جواب گرفتم

                دیدگاه


                  #9
                  پاسخ : کد نویسی بسکام ADC داخلی میکرو

                  من نمیدونم سخت افزارت چیه ولی فرض میگیرم هیچ نمایشگری نداری
                  کلن ADC را بی خیال شو و یک پین را ورودی کن که وقتی های یا لو میکنی عدد ربجستر AD تغییر کنه مثلا با های بشه 1000و با لو بشه 2500
                  اینجوری نصف برنامتو راه بنداز . و بعدا ریجستر AD را به ریجستر انالوگ لینک کن اول هم تو سیمولیشن تست کن

                  دیدگاه


                    #10
                    پاسخ : کد نویسی بسکام ADC داخلی میکرو

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

                    دلیل: ادغام دو پست برای جلوگیری از اسپم

                    برادر مثال من دو تا ولتاژ ورودی بود
                    در اصل مد نظر من 8 تا ولتاژه
                    مثل ولتمتری که با بارگراف نمایش بده
                    عملکردی شبیه آی سی LM3914

                    دیدگاه


                      #11
                      پاسخ : کد نویسی بسکام ADC داخلی میکرو

                      نوشته اصلی توسط rezashoja نمایش پست ها
                      باور کن همش رو رعایت کردمسر گیجه گرفتم دیگه

                      دلیل: ادغام دو پست برای جلوگیری از اسپم

                      برادر مثال من دو تا ولتاژ ورودی بود
                      در اصل مد نظر من 8 تا ولتاژه
                      مثل ولتمتری که با بارگراف نمایش بده
                      عملکردی شبیه آی سی LM3914
                      رفرنس بزار اینترنال و ولتاژ ورودی رو از 2.5 ولت بیشتر نده ، تست کن ببین خروجی چطوره؟
                      خود عدد adc هم نمایش بده ، ضرب نکن

                      یه چیزی رو الان متوجه شدم!
                      چرا pind رو ست و ریست میکنید؟؟
                      شما باید portd رو ست و ریست کنید
                      جدیدترین ویرایش توسط M3R-E; ۲۲:۳۶ ۱۳۹۶/۱۱/۱۰.

                      دیدگاه


                        #12
                        پاسخ : کد نویسی بسکام ADC داخلی میکرو

                        درود بر شما
                        نکته شما به جا بود..ولی من باز با ست و ریست پورت به نتیجه نرسیدم
                        در کل مشکل از برنامه بود
                        و از هیچ دستوری نباید استفاده میشد به جز دستور زیر!!!!
                        Portd = &B00000001

                        دیدگاه


                          #13
                          پاسخ : کد نویسی بسکام ADC داخلی میکرو

                          نوشته اصلی توسط rezashoja نمایش پست ها
                          نکته شما به جا بود..ولی من باز با ست و ریست پورت به نتیجه نرسیدم
                          در کل مشکل از برنامه بود
                          و از هیچ دستوری نباید استفاده میشد به جز دستور زیر!!!!
                          Portd = &B00000001
                          درود
                          از هیچ دستور که نه مثلا اگر مینوشتی set portd.0 فقط پین 0 از پورت d یک میشد بفیش دست نمیخورد اینجوری همه پین پورت را به جز پین 0 پورت را صفر میکنی این روش هم امتحان کن
                          حداکتر مقدار adc برای 5 ولت ورودی عدد 1024هست اینم تو برنامت در نظر بگیر. همینکه پی کارو میگیری خیلی خوبه

                          دیدگاه

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