راه اندازی سنسور pH به شماره E-201-C و ماژول Logo_pHsensor v1.1

1395/05/27 -> Update:1395/07/21

در این مقاله تصمیم داریم سنسور pH (پی هاش یا پی اچ) به شماره E-201-C را به وسیله میکروکنترلر ATmega8 از خانواده AVR و کامپایلر Bascom راه اندازی نماییم. pH یک کمیت لگاریتمی است که میزان اسیدی یا بازی بودن محلول ها را مشخص می کند. برای اندازه گیری pH روشهای مختلفی وجود دارد؛ از جمله تست محلول به وسیله کاغذ تورنسل یا لیتموس و یا استفاده از فنل فتالئین. اما برای نمایش میزان pH بصورت دیجیتال به روشی نیاز داریم تا این مقدار را به ولتاژ تبدیل نماییم. برای همین منظور میتوان از سنسورهای pH استفاده کرد. سنسورهای pH که متداول ترین آنها E-201-C می باشد از یک گوی شیشه ای تشکیل شده که داخل آن یک محلول شیمیایی و یک سیم قرار دارد و این گوی به یک لوله (احتمالا) شیشه ای متصل می باشد که سیم از طریق آن از انتهای سنسور خارج می شود. (شبیه لوله و گوی دماسنج) همچنین در اطراف این لوله یک جدار دیگر قرار دارد که درون آن نیز یک محلول دیگر و یک سیم قرار گرفته است و این سیم هم از انتهای سنسور خارج می شود. هر دو این سیمها به وسیله یک کابل با فیش BNC در اختیار کاربر قرار می گیرند.

برای آشنایی با نحوه عملکرد شیمیایی و الکتروشیمیایی این سنسور می توانید به این مقاله یا (فایل PDF ذخیره شده در سرور) مراجعه کنید.

تنها چیزی که برای ما مهم است اینست که هرگاه نوک این سنسور (گوی شیشه ای) در داخل محصول اسیدی یا قلیایی قرار گیرد خروجی این سنسور متناسب با pH محلول یک ولتاژ بسیار ضعیفی تولید می کند که پس از تقویت می توان آنرا به ADC میکرو تحویل داد و نتیجه را بر روی LCD مشاهده نمود. اما این ولتاز فوق العاده ضعیف بوده و تقویت آن فقط از عهده Op Amp های حساس امپدانس بالا و یا برخی از ترانزیستورهای FET بر می آید. ما برای تقویت این سنسور از ماژولی به نام Logo_pHsensor v1.1 استفاده کرده ایم که می توانید آن را از این آدرس تهیه کنید. این ماژول دارای یک سوکت BNC بوده و براحتی به سنسور متصل می شود. همچنین تغذیه آن 5 ولت بوده و خروجی Po آن (که مربوط به pH است) بین 0 تا 5 ولت تغییر می کند.

از جمله نکات مهم اینست که خروجی این ماژول بصورت معکوس بوده و هر چه قدر عدد بیشتری را نمایش دهد به معنای pH کم تر و خاصیت اسیدی بیشتر است. این عدد پس از دریافت از ADC باید با فرمولی شبیه به W = 1023 - W معکوس شود. نکته دیگر وجود یک پتانسیومتر مولتی ترن برای کالیبراسیون pH می باشد که بر روی برد ماژول (در کنار سوکت BNC) قرار گرفته است. پتانسیومتر دیگر برای تنظیم صفر شدن پایه Do پس از بیشتر شدن pH از یک مقدار خاص است. (بدون نیاز به میکرو). با استفاده از این مکانیزم مثلا می توانید پتانسیومتر دوم را طوری تنظیم کنید که اگر مثلا pH از 7.0 بیشتر شد، LED قرمز روی ماژول روشن شده و خروجی Do نیز صفر شود و مثلا یک آلارم را روشن کرده و یا پمپ مایع قلیایی را راه اندازی نماید. خروجی To هم مربوط به سنسور دمای روی برد (ترمیستور) می باشد که دمای محیط را بصورت آنالوگ به خروجی ارسال می کند (برای محاسبات صحیح pH باید دما را نیز در فرمول ها دخالت داد). در شکل زیر خروجی های ماژول pH به شماره Logo_pHsensor v1.1 نوشته شده است:

V+ = +5v
G = Gnd
G = Gnd
Po = pH out Analog 0-5v
Do = relay - see above text --^
To = Temp out - Analog




کمی از علم شیمی:

یکی از ویژگیهایی که محلول های مختلف را از هم جدا می کند خاصیت اسیدی و یا قلیایی بودن آنهاست، همچنین یک محلول مشخص ممکن است در طول عمر خود به تدریج خاصیت اسیدی و یا بازی بودن خود را از دست بدهد (مثلا در دستگاه هیدروپونیک). به همین روی برای تعیین این خاصیت کمیتی به نام pH توسط متخصص بیوشیمی دانمارکی سورن سورنسن Soren Sorensen در سال 1909 ایجاد شد. pH، مخفف potential of hydrogen می باشد. pH کمیتی لگاریتمی برای بیان خاصیت اسیدی یا قلیایی بودن مواد است. این کمیت بین 0 تا 14 متغیر بوده و اسیدی ترین محلول با pH=0 و قلیایی ترین محلول با pH=14 مشخص می شود. pH آب خالص برابر با 7.0 بوده و در واقع خنثی است. اندازه گیری مداوم pH در برخی از محیط ها مثل آکواریوم، دستگاه کشت هیدروپونیک و صنایع غذایی و شیمیایی اهمیت فراوانی دارد. در شکل زیر بازه ی pH همراه با نمونه های واقعی مشاهده می شود:


منبع عکس
شماتیک پروژه راه اندازی سنسور pH:

در شکل زیر نقشه ارتباط دهی سنسور و ماژول pH به میکروکنترلر ATmega8 نمایش داده شده است:


برنامه بسکام/بیسکام (BASCOM) سنسور pH:
'PH E-201-C By Behnam Zakizadeh
'www.avr64.com
'Date: 1395/04/23 [2016]
'Rev 1.1 @ 1395/07/20 [2016]
'Ref: https://forum.arduino.cc/index.php?topic=336012.0

$regfile = "m8adef.dat"
$crystal = 1000000
$hwstack = 64
$swstack = 64
$framesize = 64

'fusebits: Lock, Low, High, Extend(no)
$prog &HFF , &HA1 , &HD8 , &H00

'A2D
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Enable Adc
Start Adc

'LCD
Config Lcdpin = Pin , Rs = Portb.5 , = Portb.4 , _
 Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0
Config Lcd = 16 * 2
Cursor Off Noblink
Cls

Dim As Word , Ph As Single , As Byte , Sum As Dword
Dim Tmp1 As Single , Vout As Single , Ph_step As Single

Do
   Sum = 0
   For = To 100
      = Getadc(5)
      Sum = Sum + W
   Next I
   Sum = Sum / 100

   Vout = Sum * 5
   Vout = Vout / 1024

   'ph_step=[vout@ph7-vout@ph4]/[7-4]
   'ph=[7-(2.5-vout)/ph_step]

   Ph_step = -0.186                                         'Note: 0.186 is my -
                                                            ' ph_step, yours -
                                                            ' may different!
   Tmp1 = 2.5 - Vout
   Tmp1 = Tmp1 / Ph_step
   Ph = - Tmp1

   If Ph < Then Ph = 0

   Home
   Lcd "pH= " ; Fusing(ph , "#.&") ; Spc(8)
   Waitms 250

Loop
End

کالیبراسیون سنسور pH:

یکی از مراحل مهم در راه اندازی سنسور پی اچ (پی هاش) E-201-C و ماژول Logo_pHsensor v1.1 مرحله کالیبراسیون این مجموعه می باشد. برای کالیبراسیون بایستی ابتدا سنسور pH را از سوکت BNC ماژول جدا کرده و دو سر سوکت BNC ماژول Logo_pHsensor v1.1 را اتصال کوتاه نمایید. سپس تغذیه ماژول را متصل نموده و با یک اهم متر دقیق ولتاژ پایه خروجی ماژول یعنی Po را اندازه گیری کنید. در همین حال پتانسیومتر مولتی ترن کنار فیش BNC را طوری تنظیم نمایید که ولتاژ 2.5 ولت در خروجی پایه Po داشته باشید. در این حالت کار تنظیم ماژول به پایان رسیده است و می توانید پتانسیومتر مولتی ترن کنار فیش BNC را لاک بزنید. حال اتصال کوتاه دوسر فیش BNC را باز کرده و سنسور pH را به فیش BNC ماژول متصل کنید. سپس سنسور pH را داخل محلول استاندارد با pH=4 قرار داده و حدود یک دقیقه صبر کنید. سپس ولتاژ پایه خروجی ماژول یعنی Po را مجددا اندازه گیری کرده و با نام vout@ph4 یادداشت کنید. پس از انجام این مراحل ما یک ولتاژ برای pH=7 داریم و یک ولتاژ برای pH=4. پی هاش 7 با همان اتصال کوتاه کردن ماژول بدست می آید چرا که یک سنسور سالم بایستی در pH=7 صفر ولت در خروجی داشته باشد. pH=4 هم با یک محلول استاندارد بدست آمده و ولتاژ آن را بدست آورده ایم. به طور مثال در کالیبراسیونی که ما برای آزمایش این سنسور انجام دادیم ولتاژ خروجی Po برای pH=4 برابر با 3.06 ولت بود. (توجه داشته باشید که اگر محلول استاندارد با pH=4 در اختیار ندارید می توانید از محلول استاندارد با هر pHای استفاده نمایید). پس از بدست آوردن ولتاژ بایستی ph_step را بدست آوریم. منظور از ph_step تغییرات ولتاژ بین دو pH مختلف است. برای بدست آوردن این مقدار از فرمول زیر استفاده می کنیم:

ph_step=(vout@ph7-vout@ph4)/(7-4)

در این فرمول vout@ph7 برابر با عدد ثابت 2.5 است که به معنای 2.5 ولت در pH=7 می باشد. vout@ph4 نیز همانطوریکه از نام آن پیداست به منای ولتاژ خروجی در pH=4 بوده و در نمونه آزمایشی ما برابر با عدد 3.06 می باشد. دو عدد 4 و 7 نیز pH های تست هستند که عدد 7 همیشه ثابت بوده و عدد 4 بسته به محلول استاندارد ما تغییر می کند. مثلا اگر از محلول تست pH=4 استفاده کرده باشیم بایستی این عدد برابر 4 باشد و اگر از محلول pH=9 استفاده کرده باشیم این عدد برابر 9 خواهد بود. در این قسمت اعداد را در فرمول جایگزاری کرده و ph_step را برای ماژول و سنسور خود عدد 0.186- بدست آورده ایم:

-0.186=(2.5-3.06)/(3)

پس از بدست آوردن ph_step کافیست آن را در مقابل عبارت Ph_step در خط 45 برنامه بنویسید. مقدار pH واقعی به وسیله فرمول زیر توسط برنامه محاسبه و با دقت یک دهم اعشار بر روی نمایشگر LCD نشان داده می شود:

ph=[7-(2.5-vout)/ph_step]

در این فرمول اعداد 7 و 2.5 ثابت بوده و متغیر vout ولتاژ دریافت شده از ماژول pH می باشد. متغیر pH حاوی پی اچ واقعی با دقت 6 رقم اعشار بوده که پس از فرمت بندی با استفاده از دستور Fusing با دقت یک رقم اعشار بر روی نمایشگر کریستال مایع نوشته می شود.

منبع: https://forum.arduino.cc/index.php?topic=336012.0


دانلود رایگان سورس و شماتیک و PDF راه اندازی سنسور pH


© 2009-2016 AVR64.com