Bundan önceki projemizde Arduino kullanarak nasıl gerilim ölçebileceğimizden bahsetmiş, zaten Arduino giriş/çıkışlarının gerilime duyarlı olduğundan bahsetmiştik. Ama buradaki sıkıntı 0-5 volt arası ölçüm yapılabilmesi idi ve bunu aşmak için ‘gerilim bölücü’ devre kullanmıştık. Burada ana fikir; seri bağlı dirençlerin üzerinden aynı akım geçmesi ve dirençlerin uçlarındaki gerilimin direnç değerleri ile orantılı olmasıydı. Burada yine aynı mantığı kullanıyoruz. Burada kullanacağımız seri dirençlerden birini biz seçiyoruz, diğeri ölçmek istediğimiz direnç. Aynı matematiksel denklemde geçen sefer Arduino’ya hesap ettirdiğimiz giriş gerilimi bu sefer +5 volt hattına bağlayıp direnci Arduino’ya hesaplattırmak.
Burada RA direncinin üst ucu direkt olarak +5 volt hattına bağlanıyor. E o zaman neden A0 girişi ile ölçüm yapıyoruz? Bunun nedeni hassas ölçüm yapabilmek. Yazdığım kodda A0 ve A1 ölçümlerini de seri ekranda yazdırdığımda maalesef her seferinde 1023 değeri okunmuyor! (bilerek koddan silmedim) Özellikle LCD ekran da Arduino üzerinden beslendiğinde okunan değer daha da farklı olabiliyor. Sanırım artık mantığı anlıyorsunuz: Çift ölçüm yap ve olabildiğince hataları azalt! O yüzden ölçmek istediğimiz direncin üst ve alt uçlarından çift ölçüm yaptık, ve kod yazarken de yukarıdaki formülde bulunan VAB yerine 1023 değil, okunan değeri yazdık:
float vUst = analogRead(ust);
float vAlt = analogRead(alt);
rOlculen = rSabit *((vUst / vAlt)-1);
A1 bacağından ölçülen değer (vAlt) yukarıdaki denkleme göre 0 olmamalı. Zaten vAlt değerinin 0 olması devreden akım geçmemesi (açık devre), yani ölçülecek direnç bağlanmadığı anlamına gelir ki bunu kodda tüm komut satırlarının çalışabilmesi için vAlt > 0 şartı (… if (vAlt > 0 ){ … ) eklenip aksi durumda ‘ölçüm yapınız’ (… else Serial.println(“Olcum Yapiniz “); …)uyarısı eklendi.
Bir başka eklenti de ölçülen değer 1000 den daha büyük olduğunda değeri 1000’e bölüp, birimi ‘kOhm’ şeklinde değiştirerek yazdırmak oldu.
rOlculen = rOlculen /1000;
Serial.print(“R = “);
Serial.print(rOlculen);
Serial.print(” kOhm”);
Ölçülen değerler gayet başarılı bence. Çünkü elimdeki (adı sanı olan da dahil) multimetrelerin hepsi değişik değer gösteriyor. Ayrıca dirençler de maalesef üzerlerinde belirtilen tolerans değerinin çok uzağında! Eğer bu proje bir multimetre’ye dönüşecekse devrede kullanılan sabit direnç; komütatör ile değişebilen direnç değerlerine dönüştürülebilir. Ama bence o olmadan da gayet başarılı ölçümler alındı.
Bakalım Arduino ile daha neler ölçebileceğiz!…
Devre Şeması: