اطلاعیه

Collapse
No announcement yet.

استفاده ار ADC

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

    استفاده ار ADC

    سلام و خسته نباشید دوستان .من یک کاربر مبتدی هستم و میخواستم یک پروژه ای رو درست کنم که به مشکل برخوردم .. من میخوام سطح ولتاژ 5 دستگاه را به طور مداوم بررسی کنم و درصورت تغییر سطح منطقی آن ، میکرو واکنش مورد نظر را نشان بدهد . و میدانم در این خصوص به ADC برای سنس کردن تغییرات ولتاژ و از timer counter برای دستور چک کردن ژایه ها باید استفاده کنم . ولی مشکل اینجاست که نمی دانم چطور باید به میکرو دستور بدم که مثلا در این خط از برنامه ADCW پایه 40 رو چک کنه و در جای دیگه ADCW پایه 39 . یعنی میخوام بدونم چطور باید مشخص کنم که در یک لحظه تغییرات یک پایه مشخص چک شود. ممنون میشم کمکم کنید...در ضمن برنامه رو بازبان c++ نوشتم.

    #2
    پاسخ : استفاده ار ADC

    شما هر 5 تا ورودیتو با یک مقاومت سری کن و بده به 5 تا پایه میکرو. بعد 5 دیود مثلا 4148 بردار و کاتدشونو وصل کن به همه ورودیات. سر آند رو هم وصل کن به پایه وقفه میکرو.
    حالا هر وقت سطح منطقی توی یکی از ورودیات بشه صفر، دیود روشن میشه و یک وقفه خارجی خواهید داشت. توی تابع وقفه هم بیا چک کن ببین کدوم پایه صفره. اینطوری نیازی به دائم چک کردن پایه های میکرو نیست.
    ---------
    .
    .
    ...........

    دیدگاه


      #3
      پاسخ : استفاده ار ADC

      از چه میکرویی استفاده میکنین؟
      راهی که دوستمون گفت راه بدی نیست ولی راه قشنگتری هم هست ....
      تیم کاوش در مسابقات بین المللی ایران اپن 2016.نمایشی.مین یاب.
      علم را باید در آزمایشگاه یاد گرفت نه در دانشگاه!

      دیدگاه


        #4
        پاسخ : استفاده ار ADC

        نوشته اصلی توسط pars_paya
        از چه میکرویی استفاده میکنین؟
        راهی که دوستمون گفت راه بدی نیست ولی راه قشنگتری هم هست ....
        سلام . از ATMega16A استفاده میکنم...ممنون از راهنماییتون ولی من با بیس برنامه مشکل ندارم ، فقط نمیدونم چطور باید ADCW ها را معرفی کنم.مثلا وقتی میخوام ADCW مربوط به ژایه صفر رو معرفی کنم باید چی بگم و ADCW های دیگه.
        اصلا اجازه بدید سوالم رو یک جور دیگه بگم
        ،میخواستم بدونم تو زبان C++ وقتی چند پایه ADC رو مورد استفاده قرار دادم.چطوری باید به میکرو بگم که در لحظه مورد نظر پایه 1 ADC و در لحظه دیگه پایه ی دیگه ای رو بخونه و بهم بگه،در اصل من نمیدونم چطور باید به میکرو دستور بدم که کدوم پایه ی ADC رو چک کنه ....امیدوارم تونسته باشم منظورم رو خوب برسونم

        دیدگاه


          #5
          پاسخ : استفاده ار ADC

          سلام
          این جوری که من متوجه شدم نیازی به مبدل آنالگ به دیجیتال نیست. نیازی هم به وقفه نیست.
          چون گفتی منطقی پس کافیه اون سطح ولتاژهارو به میکروت وصل کنی و پین هاشو به صورت ورودی تعریف کنی و اونارو توی حلقه ی while بخوهنی و هر کدوم که یک نبود رو یک پایه ی دیگه که به عنوان خروجی تعریف شده نشون بده :nice:
          (=*_^=)

          دیدگاه


            #6
            پاسخ : استفاده ار ADC

            راستش انقدر زمان خورده بود به این تاپیک که کلا یادم رفته بود داستان چیه :icon_razz:
            تغییرات شما در چه حدیه؟؟
            مثلا بین 2.5 تا 5 ولت میگنجه؟
            اگه آره که حرف دوستمون قبوله ..
            اگه نه باید با همون ADC بخونیش...
            برنامه ش هم ساده س..
            نمیدونم الان بحث سر چیه دقیقا ؟؟؟؟؟؟
            من بیسیک کد میزنم ، اگه بدردتون میخوره بگین بذارم....
            تیم کاوش در مسابقات بین المللی ایران اپن 2016.نمایشی.مین یاب.
            علم را باید در آزمایشگاه یاد گرفت نه در دانشگاه!

            دیدگاه


              #7
              پاسخ : استفاده ار ADC

              نوشته اصلی توسط patriotrnj

              اصلا اجازه بدید سوالم رو یک جور دیگه بگم
              ،میخواستم بدونم تو زبان C++ وقتی چند پایه ADC رو مورد استفاده قرار دادم.چطوری باید به میکرو بگم که در لحظه مورد نظر پایه 1 ADC و در لحظه دیگه پایه ی دیگه ای رو بخونه و بهم بگه،در اصل من نمیدونم چطور باید به میکرو دستور بدم که کدوم پایه ی ADC رو چک کنه ....امیدوارم تونسته باشم منظورم رو خوب برسونم
              برای اینکه در لحظه مورد نظر پایه 1 ADC رو بخونید اول یک متغیر تعریف بکنید و بعد دستور زیر رو بنویسید:
              کد:
              int a=0;
               a=read_adc(1);
              حال در زمان دیگری اگر خواستید مثلا از ADC6 استفاده بکنید باز یک متغیر تعریف بکنید و بجای (1)عدد ADC مورد نظر را بنویسید.
              کد:
              int b=0;
              b=read_adc(6);
              البته لازم بذکر است که این متغییر ها بدلخواه بوده و حتی می توانید یکسان در نظر گرفنه شده و یا اصلا نباشد.
              موفق باشید.
              - تو همانی که می اندیشی، هرگاه به این اندیشیدی که تو یک عقابی؟ پس به دنبال رویاهایت برو و به یاوه های مرغ و خروس های اطرافت فکر نکن.

              - یک تصمیم می تواند دریچه های زندگی ما را به روی اندوه یا شادی ، سعادت یا تنگدستی ، مصاحبت یا تنهایی ، و عمری طولانی یا مرگی زودرس باز کند

              دیدگاه

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