Obsah:

Kontrola baterie s teplotou a výběrem baterie: 23 kroků (s obrázky)
Kontrola baterie s teplotou a výběrem baterie: 23 kroků (s obrázky)

Video: Kontrola baterie s teplotou a výběrem baterie: 23 kroků (s obrázky)

Video: Kontrola baterie s teplotou a výběrem baterie: 23 kroků (s obrázky)
Video: Jak odemknout fabii bez klíčů rukama za 2 vteřiny 2024, Červenec
Anonim
Image
Image
Změnit ze základního projektu
Změnit ze základního projektu

Tester kapacity baterie.

S tímto zařízením můžete zkontrolovat kapacitu baterie 18650, kyseliny a dalších (největší baterie, kterou jsem testoval, je to 6v Acid battery 4, 2A). Výsledek testu je v miliampérech/hodiny.

Vytvořil jsem toto zařízení, protože potřebuji zkontrolovat kapacitu falešné porcelánové baterie.

Z důvodu bezpečnosti jsem pomocí termistoru dodal teplotu napájecího odporu a baterie, aby se předešlo příliš vysokému zahřátí, pomocí tohoto triku mohu zkontrolovat 6v kyselinovou baterii bez vypálení desky (v cyklu vybíjení nějakou dobu přejděte na horký napájecí odpor a zařízení počkejte 20 sekund na snížení teploty).

Vybral jsem malý mikrořadič atmega328 kompatibilní nano (eBay).

Veškerý kód je zde.

Krok 1: Přechod ze základního projektu

Ukradl jsem myšlenku z projektu OpenGreenEnergy a předělal jsem desku, abych přidal funkce, takže teď začnu být obecnější.

v0.1

  • VCC Arduina se nyní automaticky vypočítá;
  • Přidána proměnná pro pohodlnější změnu nastavení.
  • Přidáno procento vybíjení
  • Přidána teplota baterie a výkonového rezistoru

v0.2

  • Přidána možnost výběru baterie
  • Byla vytvořena prototypová deska (viz schéma) s obrazovkou, tlačítkem a reproduktorem mimo desku, protože v budoucnu bych chtěl vytvořit balíček.
  • Přidána správa teplotního limitu výkonového rezistoru, takže mohu blokovat proces, když teplota stoupne nad 70 ° (přes tuto teplotu silový odpor snižuje výkon).

v0.3

Již brzy deska z této služby

Krok 2: V0.2 rady

V0.2 rady
V0.2 rady

Ve v0.2 na podporu různých typů baterií jsem vytvořil strukturu, která musí být vyplněna názvem baterie, minimálním a maximálním napětím (potřebuji pomoc s jeho naplněním: P).

// Struktura baterie typestruct BatteryType {char name [10]; float maxVolt; float minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes [BATTERY_TYPE_NUMBER] = {{"18650", 4.3, 2.9}, {"17550", 4.3, 2.9}, {"14500", 4.3, 2.75}, {"6v Acid", 6,50, 5,91 }};

Nyní používám sadu 10k odporů pro dělič napětí ke čtení dvojnásobné teploty analogového vstupu. Pokud chcete změnit podporu napětí, musíte tuto hodnotu změnit (dále vysvětlete lépe):

// Odpor napětí baterie

#define BAT_RES_VALUE_GND 10.0 #define BAT_RES_VALUE_VCC 10.0 // Napěťový odpor výkonového rezistoru #define RES_RES_VALUE_GND 10.0 #define RES_RES_VALUE_VCC 10.0

Pokud termistor nepoužíváte, nastavte na hodnotu false:

#define USING_BATTERY_TERMISTOR true

#define USING_RESISTO_TERMISTOR true

Pokud používáte jiný displej i2c, musíte tuto metodu přepsat:

void draw (void)

V projektu najdete mračná schémata, fotografie a další.

Krok 3: Breadboard: I2c Character Display Controller Expanded

Breadboard: I2c Character Display Controller Expanded
Breadboard: I2c Character Display Controller Expanded

Použil jsem obecný znakový displej a postavil jsem řadič i2c a používal ho s vlastní knihovnou.

Pokud ale chcete, můžete si vzít běžný ovladač i2c (méně než 1 €) se standardní knihovnou, kód zůstává stejný. Veškerý kód zobrazení je ve funkci kreslení, takže to můžete změnit, aniž byste změnili další věci.

Lepší vysvětlení zde.

Krok 4: Breadboard: Zobrazení znaků s integrovaným I2c

Breadboard: Zobrazení znaků s integrovaným I2c
Breadboard: Zobrazení znaků s integrovaným I2c

Rozbaleno stejné schéma bez i2c řízeného.

Krok 5: Realizace

Pro měření napětí používáme princip Dělič napětí (více informací na Wikipedii).

Jednoduše řečeno, tento kód je multiplikačním faktorem pro měření napětí baterie.

batResValueGnd / (batResValueVolt + batResValueGnd)

Za a před analogový čtecí vodič jsem vložil 2 odpory hodnoty batResValueVolt a batResValueGnd.

batVolt = (sample1 / (1023.0 - ((BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)) * 1023.0))) * vcc;

sample1 je průměrná analogová hodnota;

vcc referenční napětí Arduino;

1023.0 je referenční maximální hodnota analogového čtení (analogové čtení Arduino se pohybuje od 0 do 1023).

Chcete -li získat proud, potřebujete napětí po a před napájecím odporem.

Když máte změřené napětí po a před výkonovým odporem, můžete vypočítat miliampér, který spotřebovává baterii.

MOSFET slouží ke spuštění a zastavení vybíjení baterie z výkonového rezistoru.

Z bezpečnostních důvodů jsem vložil 2 termistory pro sledování teploty baterie a napájecího rezistoru.

Krok 6: Rozšiřitelnost

Rozšiřitelnost
Rozšiřitelnost
Rozšiřitelnost
Rozšiřitelnost

Snažím se vykrmit prototyp desky, který je rozšiřitelný, ale prozatím používám pouze minimální sadu pinů (v budoucnu přidám LED a další tlačítka).

Pokud chcete podpůrné napětí větší než 10v, musíte podle vzorce změnit hodnotu odporu baterie a odpor

(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)

ve schématu Napájecí napětí rezistoru

Napájecí napětí odporu GND 1/2/(Napájecí napětí odporu 2/2 + Napájecí napětí odporu GND 1/2)

Pink pájí dolů

Krok 7: Seznam dílů

Vlastnosti typu dílu Částka

  • 2 šroubová svorka 5 mm Šroubová svorkovnice pro montáž na desku plošných spojů 8A 250V LW SZUS (eBay)
  • 1 klon Arduino Pro Mini (kompatibilní Nano) (eBay)
  • 1 základní FET P-Channel IRF744N nebo IRLZ44N (eBay)
  • 11 10kΩ odporový odpor 10kΩ (eBay)
  • 2 teplotní senzor (termistor) 10 kΩ; (eBay)
  • * Obecný mužský záhlaví forma ♂ (muž); (eBay)
  • * Obecný ženský záhlaví forma ♀ (žena); (eBay)
  • 1 deska PerfBoard Prototype board 24x18 (eBay)
  • 10R, 10W

    silový odpor (eBay) Našel jsem ten svůj ve staré crt televizi.

Krok 8: Deska: Reset, tlačítkem Gnd E vyberte baterii

Deska: Reset, Gnd E Tlačítko pro výběr baterie
Deska: Reset, Gnd E Tlačítko pro výběr baterie

V levé části kolíků najdete tlačítko a bzučák.

Používám 3 tlačítka:

  1. jeden pro změnu typu baterie;
  2. jeden zahájí vybíjení vybrané baterie;
  3. pak pomocí resetovacího kolíku restartuji vše a aktivuji novou operaci.

Všechny kolíky jsou již staženy dolů, takže je musíte aktivovat pomocí VCC

Reset se aktivuje pomocí GND

Pink pájí dolů

Krok 9: Deska: I2c a napájecí kolíky

Deska: I2c a napájecí piny
Deska: I2c a napájecí piny

Na základně vidíte VCC, GND a SDA, SCL pro zobrazení (a další do budoucna).

Pink pájí dolů

Krok 10: Deska: Termistor a měřicí napětí

Deska: Termistor a měřicí napětí
Deska: Termistor a měřicí napětí

Vpravo jsou kolíky pro čtení hodnoty termistoru, jeden pro termistor pro odporový odpor a druhý pro (samčí/samičí kolíky k připojení) termistor baterie.

Pak existují analogové piny, které měří diferenciální napětí po a před výkonovým odporem.

Pink pájí dolů

Krok 11: Deska: Rezistor k měřicímu napětí

Deska: Rezistor k měřicímu napětí
Deska: Rezistor k měřicímu napětí
Deska: Rezistor k měřicímu napětí
Deska: Rezistor k měřicímu napětí

Zde vidíte odpor, který umožňuje podporovat napětí dvojnásobné než arduino pin (10v), musíte to změnit, aby podporovalo větší napětí.

Pink pájí dolů

Krok 12: Pájení Krok: Všechny kolíky

Krok pájení: Všechny kolíky
Krok pájení: Všechny kolíky
Krok pájení: Všechny kolíky
Krok pájení: Všechny kolíky

Nejprve přidám všechny piny a pájím to.

Krok 13: Pájecí kroky: Pulldown odpor a termistor

Pájecí kroky: Pulldown odpor a termistor
Pájecí kroky: Pulldown odpor a termistor
Pájecí kroky: Pulldown odpor a termistor
Pájecí kroky: Pulldown odpor a termistor

Poté přidám veškerý pulldown rezistor (pro tlačítka) a konektor i2c (displej).

Potom termistor s výkonovým odporem Je to velmi důležité, protože kyselá baterie je příliš horká.

Krok 14: Pájecí kroky: MOSFET, odpor ke kontrole napětí

Kroky pájení: MOSFET, odolnost vůči kontrolnímu napětí
Kroky pájení: MOSFET, odolnost vůči kontrolnímu napětí
Kroky pájení: MOSFET, odolnost vůči kontrolnímu napětí
Kroky pájení: MOSFET, odolnost vůči kontrolnímu napětí

Nyní musíme vložit mosfet k aktivaci vybíjení a odporu ke kontrole napětí.

2 odpor pro napětí před výkonovým odporem 2 odpor pro napětí za výkonovým odporem, když máte toto napětí, můžete vypočítat spotřebu miliampéra.

Krok 15: Kód

Mikrokontrolér je kompatibilní s nano, takže musíte nastavit IDE pro nahrání Arduino Nano.

Aby fungoval, musíte si stáhnout kód z mého úložiště github.

Poté musíte přidat 3 knihovny:

  1. Wire: standardní arduino knihovna pro protokol i2c;
  2. Knihovna termistorů odsud ne knihovna, kterou najdete v arduino IDE, ale moje verze;
  3. LiquidCrystal_i2c: pokud používáte rozšířenou/vlastní verzi adaptéru i2c (moje verze), musíte si knihovnu stáhnout odtud, pokud používáte standardní komponentu, můžete knihovnu převzít z arduino IDE, ale vše je lépe vysvětleno zde.

Netestuji LCD se standardní knihovnou, zdá se mi, že jsou zaměnitelné, ale pokud se vyskytne nějaký problém, kontaktujte mě.

Krok 16: Výsledek po sestavení

Image
Image
Výsledek po sestavení
Výsledek po sestavení
Výsledek po sestavení
Výsledek po sestavení

Základní deska je na fotografii, pak ji můžeme vyzkoušet.

Krok 17: Nejprve vyberte typ baterie

Nejprve vyberte Typ baterie
Nejprve vyberte Typ baterie

Jak je popsáno, máme mapu hodnoty s konfigurací baterie.

// Struktura baterie typestruct BatteryType {char name [10]; float maxVolt; float minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes [BATTERY_TYPE_NUMBER] = {{"18650", 4.3, 2.9}, {"17550", 4.3, 2.9}, {"14500", 4.3, 2.75}, {"6v Acid", 6,50, 5,91 }};

Krok 18: Začněte vybíjet

Začněte vybíjet
Začněte vybíjet
Začněte vybíjet
Začněte vybíjet

Kliknutím na druhé tlačítko zahájíte vybíjení.

Na displeji vidíte aktuální miliampér, miliampér/hodiny, procento vybití, napětí baterie a teplotu napájecího rezistoru a baterie.

Krok 19: Výjimky: Baterie odstraněna

Image
Image
Výjimky: Teplotní upozornění
Výjimky: Teplotní upozornění

Pokud odeberete proces vybíjení baterie, který se pozastaví, po opětovném vložení se restartuje na poslední hodnotě.

Krok 20: Výjimky: Teplotní upozornění

Výjimky: Teplotní upozornění
Výjimky: Teplotní upozornění
Výjimky: Teplotní upozornění
Výjimky: Teplotní upozornění
Výjimky: Teplotní upozornění
Výjimky: Teplotní upozornění

Pokud se teplota (baterie nebo napájecí odpor) zahřeje, proces vybíjení se pozastaví.

#define BATTERY_MAX_TEMP 50

#define RESISTANCE_MAX_TEMP 69 // 70 ° on datasheet (Derating odpory) #define TEMP_TO_REMOVE_ON_MAX_TEMP 20

Výchozí hodnota pro maximální teplotu je 50 ° pro baterii a 69 pro výkonový odpor.

Jak vidíte na komentáři, výkonový odpor je ovlivněn snížením výkonu při překročení 70 °.

Pokud je vyvolána výstraha, začněte TEMP_TO_REMOVE_ON_MAX_TEMP sekundy pauzy, aby se snížila teplota.

Krok 21: Otestujte proud

Testovací proud
Testovací proud

Výsledek testu proudu je dobrý.

Krok 22: Balíček

Díky oddělené složce je výsledek balíčku snadno realizovatelný.

V krabici je třeba udělat obdélník pro LCD, otvory pro tlačítka a externí zásuvku pro napájení z napájecího zdroje.

Tlačítko nepotřebuje stahovací odpor, protože jsem ho přidal již na palubu.

Když mám trochu času, vytvořím a zveřejním.

Doporučuje: