AnalogPHMeter Arduino Library Kurulumu ve Kullanımı - Turkish Tutorial

in utopian-io •  7 years ago  (edited)

This is a Turkish tutorial of an open source Arduino library, which is meant for turning your Arduino into a “Analog pH Meter”. I will show you how to install the library to Arduino Ide and make an example Project of a pH meter calibrator with the library, throughout this tutorial while giving information about pH scale and explaining why calibrating pH meters are cruicial.

Merhaba, bu yazıda Arduino mikrokontrolörünüze “Analog pH Metre” olma özelliği ekleyen, açık kaynak bir pH Metre kütüphanesinden bahsedeceğim. Yazı boyunca pH ölçü biriminin kısa bir özetini, neden pH metrelerin kalibre edilmesi gerektiğini, pH Metre kütüphanesinin kurulumunu pH metre kalibrasyon aleti örnek projesini ve proje kodlarını görebilirsiniz.

prof_ph_metre.png
Profesyonel kullanım için olan bir pH metre.


pH Nedir? pH Metre Kalibrasyonu Neden Önemlidir?

pH yani “power of hydrogen” 1909 yılında Danimarkalı kimyager Soren Peder Lauritz Sorensen tarafından tanımlanmış, hidrojen iyonunun aktivitesi üzerinden çözeltinin nötr, asidik veya bazik olmasını tanımlayan bir ölçü birimidir. Çözeltideki hidrojen iyonu (H+) ve hidroksit iyonunun (OH-) derişimine bağlı olarak pH birimi belirlenir.

ph_hidrojen_iyon.gif
Hidrojen iyon derişimi - pH değişimini gösteren grafik

Bir çözeltinin veya maddenin hidrojen iyonu derişimi hidroksit iyonu derişiminden fazla işe o çözelti veya madde asidik (pH değeri 7-), tam tersine hidroksit iyonu derişimi hidrojen iyonu derişiminden fazla ise o çözelti veya madde baziktir (pH değeri 7+). Bu madde veya çözeltinin hidrojen iyonları hidroksit iyonlarına eşitse nötrdür (pH değeri 7). pH değeri logaritmik olarak ölçülür. Yani bir çözeltinin 1 pH’lık değişimi lineer olarak 10 katlık bir değişime denk gelir.

ph_degerleri.jpg

pH Metreler ilk kullanımdan once ve kullanım süreleri boyunca düzenli olarak kalibre edilmelidirler. Kalibrasyon işlemi pH metrenin doğru değerleri göstermesi açısından kritik bir öneme sahiptir. pH metrelerde pH ölçümünün yapılmasını sağlayan elektrotlar zamanla başka bileşiklerle kaplanır veya aşınır. Bu aşınma sonucu pH metrenin gösterdiği değerler gerçek pH değerinden sapar. En ufak pH değişimlerinin bile önemli olduğu alanlarda çalışılıyorsa, pH metreler mutlaka düzenli olarak kalibre edilmelidir.

ph_kalibrasyon.jpg
pH metre kalibrasyon çözeltileri. Genellikle 4, 7 ve 9.21 pH değerlerine sahip olurlar.


Analog PH Meter Kütüphanesinin Kullanımı

1. https://github.com/frdteknikelektro/AnalogPHMeter adresinden kütüphaneyi indirin.

indir.png

2. Arduino programını açıp sırasıyla Sketch->Include Library->Add .ZIP Library seçeneklerini seçin.

ekle.png

3. AnalogPHMeter-develop.zip dosyasını seçin ve Open'a tıklayın.


Analog PH Meter Kütüphanesinin Kullanımı

1. Yeni bir sketch açın ve "pH_Kalibre" olarak kaydedin.

2. Kullanacağımız kütüphanelerimizi sketch’imize eklemek için, kodun en başına, #include <AnalogPHMeter.h> ve #include <EEPROM.h> yazın. İlk kütüphane pH metrenin, ikinci kütüphane Arduino gibi birçok mikrokontrolörde bulunan EEPROM hafıza çipinin kütüphanesidir. Bu kütüphane Arduino IDE’si ile yüklü gelmektedir.

3. Analog pH metremizi tanımlayıp, Arduino’daki Analog 0 pinine bağlayan kodu ekleyin. İsterseniz pH metrenizi bağladığınız pini değiştirebilirsiniz, bağladığınız pin analog olduğu sürece çalışacaktır. Ardından kalibrasyon sırasında okuyacağımız ve Arduino’nun hafızasına verinin değişkenini tanımlayın.

1.PNG

4. void setup() fonksiyonunun içine, 9600 baud hızında seri haberleşmeyi başlatacak kodu yazın ve kalibrasyon verilerini kaydedecek olan komutları yazın.

2.PNG

5. Kalibrasyon verilerini kaydedecek kodu yazdıktan sonra, kullanıcının ekranda göreceği ve uygulayacağı komut listesini ekrana yansıtan (print eden) komutları ekleyin. Komutların sonuna delay eklerseniz, komutlar ekrana yansıdığında takip etmesi daha kolay olur. Delay süresini okuma hızınıza göre değiştirebilirsiniz.

3.PNG

6. void loop() fonksiyonunun içine, kalibrasyon için alınacak pH ölçümlerini ekrana yansıtan kodu sonuna okunma kolaylığı sağlaması için delay komutu ekleyerek yazın.

4.PNG

7. Bir if koşulu yaratın ve bu koşulu seri bağlantıdan cevap gelirse çalışacak şekilde tanımlayın. Kullanıcının basması gereken tuş için bir karakter yaratın ve bu karakteri kullanıcı (klavye) inputuna atayın. İlk yazdığınız if koşulunun içine 5 adet if-else komutu ekleyin ve her if-else komutunun içine sırasıyla basılan tuşlara göre kütüphane fonksiyonlarını yerine getiren kodları yazın. İlk üç if komutunun içine sırasıyla 7, 4 ve 10 pH ölçüm değerlerini tanımlayan kütüphane fonksiyonlarını, komut tuşunu ekleyerek yazın. Sonraki if komutuna kalibrasyon verisini hafızadan silen komutu yine komut tuşuyla birlikte yazın. Son if koşuluna ise kalibrasyon verisini kaydeden EEPROM kütüphanesi fonksiyonunu yazın ve void loop() fonksiyonu tırnağını kapatın.

5.PNG


Bu yazımda Arduino mikrokontrolörü için " frdteknikelektro" adlı GitHub kullanıcısı tarafından yazılmış " AnalogPHMeter" kütüphanesinin kurulumu, pH ölçü birimi ve pH metre kalibrasyonu hakkında bilgi vererek, kütüphane kullanımını örnekle anlattım. Umuyorum ki vermiş olduğum bilgileri beğenirsiniz, okuduğunuz için teşekkürler. Başka yazılarda görüşmek dileğiyle.

GitHub: https://github.com/frdteknikelektro/AnalogPHMeter

Örnek projenin kaynak kodu:

#include <AnalogPHMeter.h>
#include <EEPROM.h>

AnalogPHMeter pHSensor(A0);              // pH metreyi "Analog 0" pinine atar.
double pHCalibrationValueAddress = 0;    // Kalibrasyon verisini hafızaya kaydetmek için tanımlanan değişken.

void setup() {
  
  Serial.begin(9600);     // 9600 baud rate'de seri haberleşmeyi başlatır.

  struct PHCalibrationValue pHCalibrationValue;           // Kalibrasyon verisini hafızaya kaydedilmesini sağlar.
  EEPROM.get(pHCalibrationValueAddress, pHCalibrationValue);
  pHSensor.initialize(pHCalibrationValue);

  Serial.println("Analog pH metre kalibrasyon işlemi");         // User komutlarını ekrana yansıtır.
  Serial.println("Yapılacak işlemler:");
  Serial.println(" - pH metrenizi 7 pH değerine sahip solüsyona daldırın");
  Serial.println(" - 3 saniye bekleyin.");
  Serial.println(" - Kalibrasyonu tamamlamak için 'y' tuşuna basın.");
  
  Serial.println(" - 4 veya 10 pH değerinde solüsyonlar ile kalibrasyon yapmak için,");
  Serial.println("   4 pH için 'a', 10 pH için 'd' tuşuna basın.");
  
  Serial.println("Kalibrasyon verilerini kaydetmek için 's' tuşuna basın.");
  Serial.println("Kalibrasyon verilerini sıfırlamak için 'c' tuşuna basın.");
  delay(1000);
}

void loop() {
                    
    Serial.println(pHSensor.singleReading().getpH());   // pH ölçümlerini ekrana yansıtır.
    delay(1000)


  if (Serial.available()) {
    char c = Serial.read();
                     
    if (c == 'y') {                         // Basılan tuşlara göre kalibrasyon işlemini
      pHSensor.calibrationMid(7.000f);      // gerçekleştiren kütüphane fonksiyonları.
      
    } else if (c == 'a') {
      pHSensor.calibrationLow(4.000f);
      
    } else if (c == 'd') {
      pHSensor.calibrationHigh(10.000f);
      
    } else if (c == 'c') {
      pHSensor.calibrationClear();        // Kalibrasyon verisini hafızadan temizler.
      
   } else if (c == 's') {   
     EEPROM.put(pHCalibrationValueAddress, pHSensor.getCalibrationValue()); // Kalibrasyon verisini kaydeder.
   }
 }
}



Posted on Utopian.io - Rewarding Open Source Contributors

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Harika bilgiler teşekkür ederiz artık pH ne demek biliyoruz.

Güzel yorumunuz için ben teşekkür ederim.

The contribution has been approved.

[utopian moderator]

Hey @drencolha I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • This is your first accepted contribution here in Utopian. Welcome!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

You got a 20.00% upvote from @votebuster courtesy of @drencolha!

You got a 0.63% upvote from @upme requested by: @drencolha.
Send at least 2.5 SBD to @upme with a post link in the memo field to receive upvote next round.
To support our activity, please vote for my master @suggeelson, as a STEEM Witness

You got a 1.83% upvote from @allaz courtesy of @drencolha!