Tek Hücreli Pil Test Cihazı

Tek hücreli pillerin popülaritesi ve kullanımı azalmış olsa da, çoğu insan hala evde AA, AAA pille çalışan birkaç cihazı vardır.

Tek hücreli pillerin popülaritesi ve kullanımı azalmış olsa da, çoğu insanın evde hala AA, AAA, C veya D hücresi kullanan birkaç cihazı var. Uzaktan kumandalar, saatler veya çocuk oyuncakları gibi piller buna örnektir. Bu piller 5V' tan çok daha az enerji taşır ve böylece Arduino ile bir hücrenin voltajını ölçebiliriz. Bu projede bir pil test cihazı oluşturacağız.

Amaç
AA'lar gibi tek hücreli piller, genellikle yeniyken yaklaşık 1,6 V değerindedir ve sonra kullanımla azaltın. Voltajı ölçeceğiz ve LED'lerle görsel olarak durumunu gözlemleyeceğiz. analogRead () 'den gelen değeri kullanacağız ve daha sonra elde edilen değeri volta çevireceğiz. Okunabilen maksimum voltaj 5 V, dolayısıyla 5'i 1.024'e (olası değerlerin sayısı) böleriz, bu da 0.0048' e eşittir. Bu nedenle, analogRead () 512 döndürürse, bu değeri 0,0048 ile çarpınca 2,4576 V elde ederiz.

Algoritma
Pil test cihazımızın çalışması için algoritma şu şekilde olacaktır:
1. Analog pin sıfırdan okuyun.
2. Voltaj değeri oluşturmak için okumayı 0,0048 ile çarpın.
3. Voltaj 1,6 V'den büyük veya eşitse, yeşil LED uyarı verecek.
4. Voltaj 1,4 V'tan yüksek ve 1,6 V'den düşükse, sarı LED uyarı verecek.
5. Voltaj 1,4 V'tan düşükse, kırmızı LED uyarı verecek.
6. Döngü sonsuz olacak.

Donanım
İşte bu projeyi oluşturmak için ihtiyacınız olan şeyler:
• Üç adet 560 Ohm direnç (R1 - R3)
• Bir 2,2 KOhm direnç (R4)
• Bir yeşil LED (LED1)
• Bir sarı LED (LED2)
• Bir kırmızı LED (LED3)
• Breadboard
• Çeşitli bağlantı telleri
• Bir Arduino ve USB kablosu

Devre Şeması
Tek hücreli pil test devresinin şeması aşağıda gösterilmektedir. Sol tarafta ki + ve - etiketli iki terminale dikkat edin. Pilin pozitifi pozitife bağlanmalı ve negatifi negatife bağlanmalıdır.

Projenin Arduino Kodu

#define newLED 2 // yeşil LED 'yeni'
#define okLED 4 // sarı LED 'kullanılabilir'
#define oldLED 6 // kırmızı LED 'eski'
int analogValue = 0;
float voltage = 0;
int ledDelay = 2000;
void setup()
{
pinMode(newLED, OUTPUT);
pinMode(okLED, OUTPUT);
pinMode(oldLED, OUTPUT);
}
void loop()
{
analogValue = analogRead(0);
voltage = 0.0048*analogValue;
if ( voltage >= 1.6 )
{
digitalWrite(newLED, HIGH);
delay(ledDelay);
digitalWrite(newLED, LOW);
}
else if ( voltage < 1.6 && voltage > 1.4 )
{
digitalWrite(okLED, HIGH);
delay(ledDelay);
digitalWrite(okLED, LOW);
}
else if ( voltage <= 1.4 )
{
digitalWrite(oldLED, HIGH);
delay(ledDelay);
digitalWrite(oldLED, LOW);
}
}



Başa Sar
Gizliliğiniz bizim için önemlidir. 6998 sayılı Kişisel Verilerin Korunması Kanunu Hakkında Bilgilendirmeye buradan ulaşabilirsiniz. tıklayın
X