نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

آموزش جامع AVR جلسه ۲۲ Analog Comparator

به نام خدا : سلام خدمت داشای گلمون، چند وقتی بود مطلبی از آموزش AVR ، تو سایت نزاشته بودیم، تو انمن ECA یکی سوالی کرد و ما هم جوگیر شدیم laugh گفتیم میریم دیتاشیت رو میخونیم و پروژه انجام میدیم و… و میایم تو یه مطلب قرار میدیم آموزشش رو(البته جوگیری که برا شوخی گفتم، برا کمک به اون طرف و کمک به دانش خودم این کارو کردم، مشکل ما اینه که از تموم ابعاد به مسئله نگاه نمیکنیم، یه بعدش یاد گرفتن طرف و یاد دادن توسط ما هستش که سودی در ظاهر برا ما نداره، اما اولا خودت بحث رو یاد میگیری، و اگه بتونی به دیگران هم یاد بدی یعنی کامل یاد گرفتی، چون در حین یاد دادن جاهایی که مشکل داری رو متوجه میشی و میتونی بری سوال بپرسی و…، در ضمن اگه طرف یاد بگیره دعات میکنه، اگه یاد بگیره به نفع کشور هستش، اگه جواب سوالای دوستان رو بدی تجربه خودت زیاد میشه و…. اینو برا کسایی گفتم که چیزیو بلدن ولی یاد نمیدن و دیگران رو کمک نمیکنن.)، تو این مطلب از سری مطالب آموزش جامع AVR میخوام به بحث مقایسه گر آنالوگ در AVR بپردازم و این که چی هستش و کجا ها میتونه کاربرد داشته باشه و در آخر یه چند تا پروژه AVR در این موضوع میزارم که تموم حالات و ریجستر های این بحث رو شامل میشه و ترجمه دیتاشیت این قسمت(تو زیحات ریجستر ها و عملکر این مقایسه کننده) رو قرار میدم و….
آموزش جامع AVR جلسه ۲۲ Analog Comparator

آموزش جامع AVR جلسه ۲۲ Analog Comparator


داستان : چند روز پیش نمیدونم تو مسجد بودم پیش نماز سخنرانی کرد، تو خونه بودم از تلوزیون شنیدم یادم نمیاد دقیق، فقط یادم میاید که این موضوع رو تو گوشیم ذخیره کردم که بعدا برم سراغش، موضوع این بود که اهمیت ترجمه و دانستن اون چیزی که در نماز میگیم، که عین چیز laugh این کلمات رو تکرار نکنیم، حداقل معنیش رو بدونیم که داریم چی میگیم، هیچی ما هم رفتیم یاد گرفتیم و خوندیم، گفتیم لینکش رو هم برا شما بزارم و اگه خواستین برین بخونین : معنای نماز

توجه ۰ : برا ۸ میگ کردن فرکانس داخلی میکرو مطلب زیر رو بخونید(قسمت فرکانس داخلی میکرو) :
آموزش جامع AVR جلسه ۱۴ System Clock and Clock Options
توجه ۱ : برا بحث ریجستر های ADC هم باس مطلب مقابل رو بخویند : آموزش جامع میکروکنترلر AVR جلسه۲
توجه ۲ : میتونید فیلم مقابل رو هم ببینید که در همین رابطه فک کنم هستش : آموزش AVR – بخش سی و هفتم
توجه ۳ : آموزش مقاسیه گر آنالوگ به زبان بیسیک

Analog Comparator (مقایسه گر آنالوگ)

تو میکروکنترلر AVR یه واحدی داریم به نام مقایسه کننده آنالوگ، که ۲ پایه در میکروکنترلر داریم به نام های AIN0 و AIN1 که در شکل زیر میبینید :

Analog Comparator
به پایه AIN0 پایه مثبت میگن و به AIN1 پایه منفی میگن.
توجه ۴ : این که میگم ورودی + و –  منظورم این نیست که یه پایه باید ولتاژ + بدی بهش و به اون یکی پایه ولتاژ -، یه وقت این کارو نکنید که اون وقت میکروتون به رحمت ایزدی.
وقتی ولتاژ پایه AIN0 از پایه AIN1 بیشتر بشه خروجی مقایسه کننده آنالوگ(ACO) یک(۱) میشه.
توجه ۵ : این که میگم خروجی مقایسه کننده آنالوگ(ACO) منظور این نیست که یه تو میکرو یه پایه ای داریم به این نام، نه، منظور اینه که یه ریجستر داریم که بیتش اسمش ACO هستش که در موقع مورد نظر ۱ میشه.(جان داش تقصیر من نیست، دیتاشیتش این طوری نوشته pardon )
خروجی مقایسه گر میتونیه تنظیم بشه برای راه اندازی Timer/Counter1 Input Capture function
همچنین مقایسه گر میتونه یه وقفه مجزا رو اجرا کنه(که برا خودش هستش)
کاربر میتونه تعیین کنه نوع تحریک شدن و رخ دادن وقفه رو، تنظیم در یکی از حالت های Falling (یعنی ACO یک هستش و وقتی ۰ بشه)، Rising(یعنی ACO صفر هست و وقتی که ۱ بشه) و Toggle(به ازای هر تغییری) >>>> که این حالت تحریک به کمک بیت های ACIS0 و ACIS1 تعیین میشه(در ادامه و در قسمت ریجسترها توضیحش میدم)
نمودار بلوک دیاگرام مقایسه کننده آنالوگ به صورت زیر هستش(فقط گزاشتمش تا گزاشته باشم :-D)
آموزش مقایسه کننده آنالوگ در AVR

ریجستر های مقایسه کننده آنالوگ

خب دیگه بریم سراغ توضیح ریجستر ها

SFIOR(مخفف Special Function IO Register)

این ریجستر فقط ۱ بیتش بدرد مقایسه گر میخوره، و اون بیت ACME هستش.
ریجستر های مقایسه کننده آنالوگ
وقتی این بیت ۱ باشه و واحد ADC غیر فعال باشه(بیت ADEN از ریجستر ADCSRA صفر باشه مقدارش)، ADC multiplexer انتخاب میشه به عنوان پایه منفی مقایسه گر.
توضیح بیشتر : خب مگه ما ۲ تا پایه AIN0 و AIN1 نداشتیم؟ حالا اگه ADC غیر فعال باشه و بیت ها به شکل خاصی مقدار دهی شده باشن(که در ته همین مطلب توضیح میدم و جدولش رو میزارم و پروژه ای ازش هم قرار میدم، از این بابت نگران نباشید)، میتونیم تعیین کنیم که یکی از پایه های PORTA ( یا همون پایه های
ADC0-ADC7 ) به عنوان پایه AIN1 انتخاب بشه(به عنوان پایه منفی انتخاب بشه)، فعلا همین مقدار بسته بریم سراغ ریجستر بعدی و ته مطلب دوباره این قسمت رو توضیح میدم.

ACSR ( مخفف Analog Comparator Control and Status Register )

مقایسه کننده آنالوگ
بیت۷، ACD ( مخفف Analog Comparator Disable ) : با یک کردن این بیت مقایسه گر آنالوگ غیر فعال میشه(و وقتی ۰ هستش مقایسه گر فعال هستش)
اگه با مقایسه گر آنالوگ کاری ندارید، این واحد رو با ۱ کردن این بیت غیر فعال کنید تا جریان مصرفی در مد فعال و idle کاهش یابد.
وقتی میخواین این بیت رو تغییر بدین (واحد مقایسه کننده رو میخواین غیر فعال کنید)، وقفه مقایسه گر آنالوگ باید غیر فعال بشه به وسیله پاک کردن بیت ACIE از ریجستر ACSR(همین ریجستر)، در غیر این صورت حتی با تغییر این بیت(ACD) بازم میتونه وقفه رخ بده.

بیت۶، ACBG ( مخفف Analog Comparator Bandgap Select ) : وقتی این بیت رو ۱ کنید، یه ولتاژ مرجعی با نام bandgap به جای پایه AIN0 در نظر گرفته میشود، و لذا دیگه لازم نیست خودتون یه ولتاژی به این پایه AIN0 بدید، و فقط باید به AIN1 ولتاژ بدید تا با این ولتاژ مرجع(bandgap) مقایسه بشه؛ مقدار این ولتاژ رو در زیر مشاهده میکنید(بین ۱٫۱۵ تا ۱٫۴ ولت هستش تقریبا و مقدار معمولیش_تایپیکالش!_ ۱٫۲۳ ولت هستش) :
ولتاژ مرجع bandgap

بیت۵، ACO ( مخفف Analog Comparator Output ) : اینم پایه خروجی ما هستش(در قسمت توضیحات اول مطلب دربارش گفتم)، که اگه مقایسه موفق باشه این پایه ۱ میشه و البته با ۱-۲ کلاک تاخیر(ترجمه دقیق این متن رو مشکل داشتم در زیر میزارم، کسی اگه ترجمه دقیقش رو میدونه بگه)

The output of the Analog Comparator is synchronized and then directly connected to ACO

The synchronization introduces a delay of 1 – 2 clock cycles

بیت۴، ACI ( مخفف Analog Comparator Interrupt Flag ) :
این بیت پرچم وقفه هستش، یعنی هر موقع وقفه رخ بده این بیت ۱ میشه، و میتونیم نوع رخ دادن وقفه رو (همون طور که در اول مطلب گفتم) هم به کمک بیت های ACIS0 و ACIS1 تعیین کنیم(در ادامه میگم)، که وقفه کی رخ بده رو به کمک این دو بیت تعیین میکنیم.
برای فعال کردن وقفه باید بیت ACIE (از همین رجیستر) رو فعال کنیم و همین طور باید بیت l از ریجستر SREG رو یک کنیم(یا از دستور زیر استفاده کنیم) >>> فعال کردن وقفه سراسری.

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

ACI is cleared by hardware when executing the corresponding interrupt handling vector

Alternatively, ACI is cleared by writing a logic one to the flag

توجه : این بیت جایی کاربرد داره که نخواین از تابع وقفه استفاده کنید و کدی داخلش بزارید و بخواین از برنامه حذفش کنید(استفاده نکردن از تابع وقفه ربطی به غیر فعال کردن وقفه نداره، مطلب مقابل رو بخونید : آموزش جامع میکروکنترلر AVR جلسه۳ )، در ته مطلب مثال هایی گزاشتم که این موضوع رو قشنگ متوجه میشید با دیدن مثال ها.

بیت۳، ACIE ( مخفف Analog Comparator Interrupt Enable ) : وقتی این بیت ۱ باشه و وقفه سراسری هم فعال باشه، وقفه مقایسه کننده آنالوگ فعال میشه، وقتی هم که ۰ اش کنیم، وقفه مورد نظر غیر فعال میشه.

بیت۲، ACIC ( مخفف Analog Comparator Input Capture Enable ) :
اینم مربوطه به تایمر/کانتر

When written logic one, this bit enables the Input Capture function in Timer/Counter1 to be triggered by the Analog Comparator
The comparator output is in this case directly connected to the Input Capture front-end logic, making the comparator utilize the noise canceler and edge select features of the Timer/Counter1 Input Capture interrupt
When written logic zero, no connection between the Analog Comparator and the Input Capture function existsTo make the comparator trigger the Timer/Counter1 Input Capture interrupt, the TICIE1 bit in the Timer Interrupt Mask Register (TIMSK) must be set

بیت ها۰و۱، ACIS0,ACIS1 ( مخفف Analog Comparator Interrupt Mode Select ) : همون طور که قبلا گفتم، این دو بیت برا تعیین نوع و نحوه رخ دادن وقفه هستش که ۳ حالت داره، Falling (یعنی ACO یک هستش و وقتی ۰ بشه وقفه رخ میده)، Rising(یعنی ACO صفر هست و وقتی که ۱ بشه وقفه رخ میده) و Toggle(به ازای هر تغییری در AC0 وقفه رخ میده) >>> جدول تنظیمات رو هم در زیر میبینید :
آموزش AVR
توجه ۶ : وقتی این بیت ها رو تغییر میدین، وقفه مقایسه گر آنالوگ باید غیر فعال شود به وسیله بیت فعال ساز مقفه در ریجستر ACSR، در غیر این صورت وقفه میتواند رخ بدهد وقتی این بیت ها تغییر کرد.

Analog Comparator Multiplexed Input

این امکان پذیر هستش که هر کدوم از پایه های ADC7..0 رو به عنوان پایه مقایسه کننده منفی(AIN1) انتخاب کنید تا جایگزین این پایه بشه، اگه میخواین از این ویژگی استفاده کنید باید ADC رو غیر فعال کنید(ترجمه دقیق متن زیر رو هر کی میدونه بگه)

The ADC multiplexer is used to select this input, and consequently, the ADC must be switched off to utilize this feature

اگه بیت Analog Comparator Multiplexer (بیت ACME از ریجستر SFIOR) فعال باشه و ADC غیر فعال باشه(بیت ADEN از ریجستر ADCSRA)، به کمک بیت های MUX2..0 از ریجستر ADMUX میتونیم پایه مورد نظر رو انتخاب کنیم(از بین پایه های ADC0 تا ADC7) تا جایگزین پایه ورودی منفی مقایسه گر(AIN1) شود که این تعیین بیت ها و انتخاب در جدول زیر نمایش داده شده است.
 ریجستر های مقایسه کننده آنالوگ

پروژه AVR مقایسه کننده آنالوگ

پروژه ۱ : استفاده از هر دو پایه AIN0 و AIN1 و بدون استفاده از وقفه

شماتیک پروژه۱ 
پروژه AVR

پروژه ۲ : استفاده از AIN1 و تعیین ولتاژ ثابت بر روی پایه AIN0 (به کمک بیت ACBG)

شماتیک پروژه ۲ و ۳ و۴
میکروکنترلر AVR

پروژه۳ : همانند پروژه بالا هستش فقط از پرچم(Flag) وقفه استفاده کردم (شماتیک این پروژه همانند پروژه ۲ هستش)

پروژه۴ : همانند پروژه بالا هستش فقط از تابع وقفه استفاده کردم(شماتیک این پروژه همانند پروژه ۲ هستش)
توجه : این پروزه در پروتئوس شبیه سازی نمیشه، ولی در عمل کار میکنه که در ته مطلب فیلمش رو گزاشتم(بارها این اتفاق افتاده که پروتئوس درست نمیتونه شبیه سازی کنه و شما هم زیاد بهش تکیه نکنید.)

پروژه۵ : تو این پروژه از Multiplexed Input استفاده کردم(یعنی از یک از پایه های ADC به عنوان AIN1 استفاده کردم)

شماتیک پروژه ۵
پروژه AVR مقایسه کننده آنالوگ

اینم از فیلم پروژه بالا(شماره ۴)

دانلود پروژه های این مطلب + ۲ فایل PDF

خب این مطلب هم تموم شد، اگه جایی رو اشتباه گفتم بگید تا تصحیح کنم و اگه جایی رو متوجه نشدیم بگید تا توضیح بیشتر بدم، اگه چیزی رو نگفتم و جا انداختم بگید تا مطلب رو تکمیل کنم.
هزینه مطلب : خوندن دعای ندبه و اگه حسش نبود دعای سلامتی امام زمان و بازم اگه حسش نبود ۳ تا صلوات برا ظهور آقا، و من میدونمو شما اگه حس همین کار ساده رو نداشته باشین و بخواین تنبلی کنید laugh ، و دعا برا آدم شدن خودمون(چون فقط تو حرف زدن میگیم امام زمان بیا و… >>> حداقل خودمو که میدونم این طوری هستم، شما رو نمیدونم)
دعامون کنید جان داش، فعلا یا علی

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو گوگل میفرماید : إِنَّ اللّه مَعَ الساچِرین ( خداوند با سرچ کنندگان است )
ارسال دیدگاه
29

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    مهرداد

    فکر کنم این درسته. پروژه ۵
    ADCSRA &=~(1<<ADCEN)

  2. Avatar

    مهمان

    محمدعلی

    سلام عزیز دلم
    خیلی ممنون بابت اموزش خوبتون.
    بسیار استفاده کردیم.
    در پناه حق good

  3. Avatar

    مهمان

    سید

    سلام
    من سه تا سیگنال آنالوگ دارم
    چطور میشه اینا رو با هم مقایسه کرد به طوری که اونی که از نظر دامنه کوچکتره رو به عنوان خروجی بده؟
    البته بدون میکرو
    اگه مقدوره راهنمایی کنین

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      اینو سرچ کن “مدارات مقایسه گر آنالوگ”
      با اپ امپ فک کنم بشه.

      • Avatar

        مهمان

        سید

        میشه کمکم کنین با میکرو انجامش بدم
        میخوام این سه تا سیگناله آنالوگو با ADC بگیرم و دامنه هاشو باهم بسنجم ب طوری که کوچکترینو نشونم بده

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          بیاید تلگرامم
          @dmf313

  4. Avatar

    مهمان

    ناشناس

    ببخشین این خط های عمودی که شبیه OR ه بعد از رجیستر ها گذاشتین برا چیه؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      کدوم؟ این :
      SFIOR |= (0<
      مخفف عبارت زیر هستش :
      SFIOR = SFIOR | (0<

  5. Avatar

    مهمان

    شایان

    سلام دوستان من میخوام تایمر ۱ رو با مقایسه کننده آنالوگ تریگ کنم در واقع میخوام عرض یک پالس رو محاسبه کنم اگه کسی این کار رو کرده لطفا کمک کنه مرسی

    • Avatar

      مهمان

      قاسمی

      سلام میشه ۴ تا ولتاژ رو با avr مقایسه کرد با هم؟

  6. Avatar

    مهمان

    محمد صافی پور

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

  7. Avatar

    مهمان

    محمد

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

  8. Avatar

    مهمان

    نگار

    روی سوال همینه نگفته چه خطایی

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      نمیدونم – پروژه رو بنویس – اگه خطا داشت – بیا چند بار محاسبه کن و میانگین گیری کن تا خطا به زیر ۵% برسه

  9. Avatar

    مهمان

    نگار

    گفته فرکانسو با خطای کمتر از پنج درصد اندازه بگیرید

  10. Avatar

    مهمان

    نگار

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

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – خطای چی؟

  11. Avatar

    مهمان

    سمندون

    سلام .
    آموزشات خیلی عالیه اینشالا موفق باشی

  12. Avatar

    مهمان

    عرفان

    سلام آقا مهدی دستت درد نکنه خیلی خوب بود از همه بهتری laugh

  13. Avatar

    مهمان

    وحید

    سلام
    اول عذر خواهی میکنم که دارم این سوال رو اینجا می پرسم.
    من میخام با استفاده از مبدل آنالوگ به دیجیتال یه دونه فن رو کنترل کنم،حالا سوالم اینه که آیا اولا میشه؟
    خودم که فکک میکنم میشه.اگه شدنی هس میشه راهنمایی کنید که چطور دستور بدم بهش؟
    یک سری کد هم خودم نوشتم اگه میدونید وقت دارید براتون ارسال کنم تا ی نگاه بهش بندازید.امکانش هست؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      والا تا جایی که من میدونم| فن = موتور + پره |هستش حالا شما باید بحث کنترل دور موتور dC رو آموزشش رو پیدا کنید و بخونید.

  14. Avatar

    مهمان

    حامد

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

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      مثلا محاسبه فرکانس اگه اشتباه نکنم

      • Avatar

        مهمان

        ؟؟؟

        از این مطلب برای اندازه گیری مقدار خازن ها و مقاومت ها و شارژ خودکار باطری ها و….استفاده میشه
        و برای محاسبه فرکانس هم همونطور که مهدی جان گفتن میشه استفاده کرد(واحد capture )
        ممنون از توضیحاتتون

  15. Avatar

    مهمان

    هادی

    سلام مهندس
    از این فضا و مطالبی که گذاشتی بسی استفاده بردم.
    فضولی نباشه ، من باب کمک!
    The output of the Analog Comparator is synchronized and then directly connected to ACO
    The synchronization introduces a delay of 1 – ۲ clock cycles
    همون چیزی که گفته بودید درست هست ، البته منظور متن اینه که اگر ورودی تغییر کنه ، خروجی با ۱-۲ کلاک تاخیر بروز رسانی میشه. عملا بازم با حرف شما فرقی نکرد.
    ACI is cleared by hardware when executing the corresponding interrupt handling vector
    Alternatively, ACI is cleared by writing a logic one to the flag
    در مورد جمله : وقتی اینتراپت عمومیی فعال بشه ، پردازنده منابع اینتراپتی که فعال شده اند را مداوم بررسی می کند که در صورتی که اگر یکی از شرایط اینتراپت رخ داد ، به آدرس دستورات اون مد اینتراپت(همون تابع خودمون) میره و اونها رو انجام میده. در نهایت وقتی سخت افزار می خواد که از تابع خارج میشه ، تو میکرو کنترلرهای AVR اتوماتیک مقدار اون ریجستر رو ریست میشه (در اینجا میشه ACI) و بعد به ادامه کارهای دیگه میپردازه. اما تو ARM اینجوری نیست و باید کاربر خود اونو ریست کنه . حالا اگه این عمل انجام نشه ، تا قیامت میکرو مرتبا شرایط اینتراپت رو شناسایی می کنه و پشت سرهم تابع اونو انجام میده.
    ترجمه متن بالا همین بود که آره آقا ما خودمون ریستش می کنیم ، لازم نیست شما فکرت رو درگیرش کنی.(دقیقا تو گوگل ترنسیلت بزنی همین چیزی که نوشتم میاد!!!!)
    The ADC multiplexer is used to select this input, and consequently, the ADC must be switched off to utilize this feature
    توضیحی که دادید کامل هست و بحثی نیست در موردش.
    درضمن ازین حالت میشه برای وقتی که چندین ورودی رو میخوای بررسی کنی که شرط برایشون رخ داده یا نه ، استفاده بشه ، مثلا یک گیت OR هشت بیتی!
    ببخشید اگر توضیح واضحات دادم و چیزی هایی که می دونستید رو تکرار کردم.
    یاحق….

  16. Avatar

    مهمان

    امیرحسین

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

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      قربونت داش
      کوجکترین کاری که میتونم بکنم همین هستش…..

  17. Avatar

    مهمان

    علیرضا

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

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      اگه اشتب نکنم سنسور گاز(مثلا سری mq) به صورت adc هستن خروجیشون
      و ربطی به این مطلب نداره
      این مطلب مثلا برا اندازه گیری فرکانس به کار میاد(اگه اشتب نکنم)