Seçilmiş

Atolye

Teknoloji

Ev & Dekorasyon

Mutfak

Oyun

Outdoor

Sanat

Arduino Pil Ölçer V2

Tanıtım: Ne İşe Yarar

Eski laptoplarınızdan çıkan 18650 gibi li-ion veya rc araçlarınızda kullandığınız lipo pillerin gerçek kapasitelerini arduino yardımıyla kolayca ölçebilirsiniz. Aslında bu projenin benzerini daha önce de yapmıştım. Elime mosfet modülü geçince biraz özellik ekleyeyim dedim. Önceki sürümde 16x2 lcdler zorluk çıkarıyorması ve herkesde 20x4 lcd bulunmaması sebebiyle 16x2 lcd ile de uyumlu olarak tekrardan yazılmıştır.

1. Adım: Malzemeler

  1. Arduino
  2. 16x2 lcd ve 10k pot
  3. Mosfet Modülü veya Mosfet
  4. Wattlı direnç veya 'Dummy Load'
  5. Pil yatağı

2. Adım: Bağlantılar

Şemada önceki versiyona ait bağlantılar bulunmaktadır. Yeni versiyonda sadece direnç ile pil arasına mosfet konmuştur. Bu mosfeti tetiklemek için de digital 9 pini kullanılmıştır.

3. Adım: Pili Doldurun

Ölçüme başlayabilmek için kodda belirtildiği üzere pilin minimum 4 volt seviyesinde olması gerekmektedir. Pilinizi tam doldurup (~4.2v) ölçüme başlamanız en doğru sonucu verecektir.

4. Adım: Direnç

Elinizdeki wattlı direncin + mosfetin iç direncini hesaplayın ve kodun tepesindeki ilgili yeri düzeltin. Ben sabit bir voltaj verip V=I*R ' den hesapladım. Verdiğiniz voltaj / geçen amper bize direnci veriyor.

5. Adım: Yazılım

#define direnc 17.2F//direnç değeri ohm olarak#define minvoltaj 3.5F //testin devam edeceği min. voltaj#define aralik 5 //test için referans aralığı (5sn)#define pilreferans 4.0F //yaklaşık %75 pil referans#define pilmaks 4.3F //pil tam dolu voltajı#define mosfetPin 9 #define sayfalarArasiAralik 5//sn olarak. Aralığın katları şeklinde olmalıdır.#include <LiquidCrystal.h>LiquidCrystal lcd(12, 11, 5, 4, 3, 2);float voltaj;float akim;float toplam;int sure;unsigned long baslangic;unsigned long bitis;void setup() {  lcd.begin(16,2);  //lcd.setCursor(0,0);  //lcd.print("R="+(String)direnc);  //lcd.setCursor(7,2);  //lcd.print("neyaptik.com");  pinMode(mosfetPin,OUTPUT);}void loop() {  voltaj=analogRead(0)/1024.0*5.0;  if (voltaj>pilreferans){    baslangic=millis();    sure=0;    toplam=0;        while(voltaj>minvoltaj){      bitis=millis();      sure=(bitis-baslangic)/1000/60;      akim=voltaj/direnc*1000;      digitalWrite(mosfetPin,HIGH);            if (round((bitis-baslangic)/1000) % (sayfalarArasiAralik*2)!=0){      lcd.clear();      lcd.setCursor(0, 0);      lcd.print("V:"+(String)voltaj+"V");      lcd.setCursor(16-("R:"+(String)direnc).length(),0);      lcd.print("R:"+(String)direnc);      lcd.setCursor(0, 1);      lcd.print("Q:"+(String)(int)toplam+"mAh");      lcd.setCursor(16-("I:"+(String)(int)akim+"mA").length(), 1);      lcd.print("I:"+(String)(int)akim+"mA");      }      else{// sayfayı yenile      lcd.clear();      lcd.setCursor(0, 0);      int yuzde=map(voltaj*10,minvoltaj*10,pilmaks*10, 0, 100);      lcd.print("Pil:" + (String)yuzde + "% ");            lcd.setCursor(0,1);      lcd.print("Zaman:"+(String)sure+"dk");      }            toplam=(toplam+(akim/3600)*aralik);      voltaj=analogRead(0)/1024.0*5.0;      delay(aralik*1000);    }  }  else if(voltaj<minvoltaj){      lcd.clear();      digitalWrite(mosfetPin,LOW);      lcd.setCursor(0, 0);      if (toplam>0){        lcd.print("Olcum Bitti!");        lcd.setCursor(0,1);        lcd.print(("Q:"+(String)(int)toplam+"mAh"));      }      else{        lcd.print("Pil Bulunamadi!");      }      delay(1000);      lcd.setCursor(0, 0);        lcd.print("               ");      delay(1000);    }    else if (voltaj<pilreferans){      lcd.clear();      digitalWrite(mosfetPin,LOW);      lcd.setCursor(0, 0);        lcd.print("Pil Dolu Degil!");      delay(1000);      lcd.setCursor(0, 0);        lcd.print("               ");      delay(1000);  }}

Yorumlar.

2899 Görüntülenme

0 Favoriler


coco

Trakya Üniversitesinde İngilizce Öğretmenliği okuyorum. Hobi olarak yazılım ve elektronikle ilgileniyorum. Bu siteyi deneyimlerimi paylaşmak için kullanıyorum. Üye olup sizler de paylaşabilirsiniz.


Bir Söz

“İtiraf ederim ki, düşmanlarımız çok çalışıyor. Biz de onlardan daha çok çalışmaya mecburuz. Çalışmak demek, boşuna yorulmak, terlemek değildir. Zamanın gereklerine göre bilim ve teknik ve her türlü medeni buluşlardan azami derecede yararlanmak zorunluluğudur.”

Tagler

KENDİN YAP MÜHENDİSLİK PROJELERİ PROJE PAYLAŞIN ELEKTRİK ELEKTRONİK MÜHENDİS EVDE YAP PROJE YAP ARDUİNO YAZILIM PCB HAZIRLAMA NE YAPTIK DIY DIY YAPIMI NASIL YAPILIR DEKORASYON DIY FİKİRLERİ

Sosyal Medya

Facebook Instagram