Merhaba arkadaşlar Arduino ile çılgın projelerde olabildiğince hızlı ilerlemeye devam ediyoruz. Bu yazımızın konusu Arduino ile I2C LCD kullanarak kondansatör ölçüm cihazı nasıl yapılır öğreneceğiz. Bildiğiz üzere piyasada bir sürü kondansatör çeşidi var bazılarının üzerinde değerleri yazarken mercimek kondansatör gibi parçalarda herhangi bir şey yazmamakta değerini bilmediğimizden de kullanamamaktayız. Ama artık bu cihaz sayesinde 0.000pF>>>1000uF arası değerleri ölçebileceksiniz. Kısa bilgilendirmeden sonra isterseniz vakit kaybetmeden işe koyulalım. 🙂
İçindekiler
Lcd Kullanarak Kondansatör Ölçüm Cihazı Malzeme Listesi
1- Herhangi Bir Arduino Modeli (Ben Nano Kullanacağım)
2- I2C 16X2 LCD
3- Breadboard Ve Jumper Kablolar
Not: Tüm bu malzemeleri elektronik parça satan yerlerde bulabilirsiniz yada şu ve bu adreslerden internet üzerinden güvenle sipariş edebilirsiniz 🙂 Ayrıca eğer zamanım bol diyorsanız Çin’den de Aliexpress vasıtasıyla getirtebilirsiniz. Daha uygun fiyata gelecektir.
Arduino İle I2C Lcd Kullanarak Kondansatör Ölçüm Cihazı Devre Şeması
Not: Arduino ve I2C LCD Modülün Bağlantı Şeması , SDA = A4 ve SCL = A5‘ tir. Lakin Arduino Mega da ise I2C LCD Modülün Bağlantı Şeması SDA = 20, SCL = 21 dir.(Zaten mega kullananlar göreceklerdir ki 20. pinin yanında SDA, 21. pinin yanında SCL yazmaktadır.)
Alt tarafta çizdiğimiz devre şemasına bakarak uygun arduino modeline göre devremizi breadboard’umuza kuralım.
Yazılım
Bu modülle çalışabilmek için bir kütüphaneye ihtiyaç duyuyoruz öncelikle kütüphanemizi buradan indirip aşağıda belirtilen yoldaki klasöre rar dosyasından dan çıkarıp atın.(Daha önce atmış iseniz tekrar yapmanıza gerek kalmayacaktır. )
Rar Şifresi: donanimplus.com
Belgeler > Arduino > libraries
Kod
//DONANIM PLUS ELEKTRONİK //TASARIM TOLGA SOYTEPE //İNSTAGRAM Tolgasyp //TWİTTER TSytpp //KONDANSATOR ÖLÇÜM CİHAZI 0.000pF>>>1000uF //2018 #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); const int CIKIS_PINI = A1; const int GIRIS_PINI = A0; const float IN_STRAY_CAP_TO_GND = 24.48; const float IN_CAP_TO_GND = IN_STRAY_CAP_TO_GND; const float R_PULLUP = 34.8; const int MAX_ADC_VALUE = 1023; void setup() { pinMode(CIKIS_PINI, OUTPUT); pinMode(GIRIS_PINI, OUTPUT); lcd.begin(); lcd.setCursor(0,0); lcd.print(“KONDANSATOR OLCM”); lcd.setCursor(0,1); lcd.print(“CIHAZI V1 2018”); delay(2000); lcd.clear(); lcd.setCursor(0,0); lcd.print(“TASARIM”); lcd.setCursor(0,1); lcd.print(“TOLGA SOYTEPE”); delay(2000); } void loop() { pinMode(GIRIS_PINI, INPUT); digitalWrite(CIKIS_PINI, HIGH); int val = analogRead(GIRIS_PINI); digitalWrite(CIKIS_PINI, LOW); if (val < 1000) { pinMode(GIRIS_PINI, OUTPUT); float capacitance = (float)val * IN_CAP_TO_GND / (float)(MAX_ADC_VALUE – val);lcd.setCursor(0, 0); lcd.print(“KONDANSATR DEGER”); lcd.setCursor(0, 1); lcd.print(” “); lcd.setCursor(0, 1); lcd.print(capacitance, 3); lcd.print(“pF “); } else { pinMode(GIRIS_PINI, OUTPUT); delay(1); pinMode(CIKIS_PINI, INPUT_PULLUP); unsigned long u1 = micros(); unsigned long t; int digVal; do { digVal = digitalRead(CIKIS_PINI); unsigned long u2 = micros(); t = u2 > u1 ? u2 – u1 : u1 – u2; } while ((digVal < 1) && (t < 400000L)); pinMode(CIKIS_PINI, INPUT); val = analogRead(CIKIS_PINI); digitalWrite(GIRIS_PINI, HIGH); int dischargeTime = (int)(t / 1000L) * 5; delay(dischargeTime); pinMode(CIKIS_PINI, OUTPUT); digitalWrite(CIKIS_PINI, LOW); digitalWrite(GIRIS_PINI, LOW); float capacitance = -(float)t / R_PULLUP / log(1.0 – (float)val / (float)MAX_ADC_VALUE); lcd.setCursor(0, 0); lcd.print(“KONDANSATR DEGER”); if (capacitance > 1000.0) { lcd.setCursor(0, 1); lcd.print(” “); lcd.setCursor(0, 1); lcd.print(capacitance / 1000.0, 2); lcd.print(“uF “); } else { lcd.setCursor(0, 1); lcd.print(” “); lcd.setCursor(0, 1); lcd.print(capacitance, 2); lcd.print(“nF “); } while (millis() % 1000 != 0); } } |
Minik bir not: Arkadaşlar siteden kodu kopyalayınca tırnak işaretini farklı alıyor ve kod tam anlamıyla çalışmıyor kodun sağlıklı çalışabilmesi için kodu indirmenizi tavsiye ederim.
Projede kullanılan yazılım kodlarını buradan indirebilirsiniz 🙂
Proje Görüntüleri
Bir yazının daha sonuna geldik umarım faydalı olmuştur anlamadığınız veya kafanıza takılan yerler olursa yorumda veya kişisel sosyal medya hesaplarımdan ulaşabilirsiniz. Konu ile ilgili video en kısa sürede yazıya eklenecektir. Kolay gelsin 🙂
Selamlar. Paylaştığınız Arduino İle I2C Lcd Kullanarak Kondansatör Ölçüm Cihazını yapmak istiyorum. kodu download ettim arduino IDE ile derlemek istediğimde hata veriyor.
const int CIKIS_PINI = A1;
exit status 1
‘A1’ was not declared in this scope
bunu geçmek için ne yapmalıyım. yardımcı olabilir misiniz?
Teşekkür ederim.