Seçilmiş

Atolye

Teknoloji

Ev & Dekorasyon

Mutfak

Oyun

Outdoor

Sanat

Arduino Pil Kapasite Ölçer

Tanıtım: Nedir Bu?

Arduino ile yaptığımız bu pil ölçer li-ion ve li-po pillerin kapasitelerini ölçüp bizlere mAh cinsinden bildiriyor. Kimilerimizin zaten bildiği, kimilerimizin de şimdi öğrendiği bu pil çeşitlerinden li-ion piller, eski laptop pillerinden toplanabilir. Tabii kalan pil ömürleri bizler için önemli. Onun için sizlere böyle bir proje hazırladım. Umarım beğenirsiniz.

1. Adım: Malzemeler

  • 4x20 LCD
  • Potensiyometre
  • Wattlı bir direnç
  • Ölçülecek pil
  • Jumper Kablolar
  • Arduino
  • 1 Adet LCD Arka Işık için direnç. (400-600ohm arası idealdir herhalde)

2. Adım: Lcd Bağlantıları

 * LCD RS pin --> digital pin 12
 * LCD Enable pin --> digital pin 11
 * LCD D4 pin --> digital pin 5
 * LCD D5 pin --> digital pin 4
 * LCD D6 pin --> digital pin 3
 * LCD D7 pin --> digital pin 2
 * LCD R/W pin --> ground
 * LCD VSS pin --> ground
 * LCD VCC pin --> 5V
 * VO pinine Potensiyometre


Kodu değiştirerek pin yerlerini de değiştirebilirsiniz. Ben arduino'nun sitesinde verilen bağlantılara göre bağladım.

Düzenleme: Yoğun istek üzerine şema eklenmiştir.

3. Adım: Muhtelif Bağlantılar

Direncinizi, Breadboard'ın sağ tarafında kalan güç pinlerine bağlayın. Ardından sağ taraftaki ve sol taraftaki GND şeritlerini birbirine bağlayın. 

Voltaj ölçümü yapabilmek için sağ taraftaki güç hattının + kısmına Analog 0 pinini, - kısmına Arduino'nun GND pinini bağlayın.

Sol güç hattının + pinine Arduino'nun +5v pinini bağlayın.

4. Adım: Pilinizi Hazırlayın

Pilinizi 4.2-4.3 seviyelerine kadar şarj edin. Breadboardda kolaylık sağlaması için ucuna bir parça bakır tel de takabilirsiniz. 

5. Adım: Yazılım

Yazılımı yazarken bir takım matematik yetmezliği yaşadım :). Şu anda bir sıkıntı görünmüyor.

#define direnc 19//direnç değeri ohm olarak
#define minvoltaj 3.4F //testin devam edeceği min. voltaj
#define aralik 5 //test için referans aralığı (10sn)
#define pilreferans 4.0F //ortalama pil referans
#define pilmaks 4.3F //pil tam dolu voltajı

#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(20,4);
  lcd.setCursor(15,0);
  lcd.print("R="+(String)direnc);
  lcd.setCursor(7,2);
  lcd.print("neyaptik.com");
}

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;
      lcd.setCursor(0, 0);
      lcd.print("Voltaj="+(String)voltaj+"V");
      lcd.setCursor(0, 1);
      lcd.print("I:"+(String)(int)akim+"mA");
      lcd.setCursor(11, 1);
      lcd.print("Q:"+(String)(int)toplam+"mAh");
      lcd.setCursor(0, 3);
      int yuzde=map(voltaj*10,minvoltaj*10,pilmaks*10, 0, 100);
      lcd.print("Pil:" + (String)yuzde + "% ");
      lcd.setCursor(9,3);
      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.setCursor(0, 0);  
      lcd.print("Pil Bulunamadi!");
      delay(1000);
      lcd.setCursor(0, 0);  
      lcd.print("               ");
      delay(1000);
    }
    else if (voltaj<pilreferans)
  {
      lcd.setCursor(0, 0);  
      lcd.print("Voltaj Dusuk!");
      delay(1000);
      lcd.setCursor(0, 0);  
      lcd.print("             ");
      delay(1000);
  }
  }

6. Adım: Test Zamanı!

Şu anda test ediyorum. Sonuçları kısa zamanda atarım. 

Düzenleme: Test bitti, 19 ohm kullanmamdan dolayı uzun sürdü. 900mAh yazılı pili ufak farkla doğru hesapladı :). Gayet başarılı

Yorumlar.

5434 Görüntülenme

2 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