
Obsah:
- Krok 1: Přechod ze základního projektu
- Krok 2: V0.2 rady
- Krok 3: Breadboard: I2c Character Display Controller Expanded
- Krok 4: Breadboard: Zobrazení znaků s integrovaným I2c
- Krok 5: Realizace
- Krok 6: Rozšiřitelnost
- Krok 7: Seznam dílů
- Krok 8: Deska: Reset, tlačítkem Gnd E vyberte baterii
- Krok 9: Deska: I2c a napájecí kolíky
- Krok 10: Deska: Termistor a měřicí napětí
- Krok 11: Deska: Rezistor k měřicímu napětí
- Krok 12: Pájení Krok: Všechny kolíky
- Krok 13: Pájecí kroky: Pulldown odpor a termistor
- Krok 14: Pájecí kroky: MOSFET, odpor ke kontrole napětí
- Krok 15: Kód
- Krok 16: Výsledek po sestavení
- Krok 17: Nejprve vyberte typ baterie
- Krok 18: Začněte vybíjet
- Krok 19: Výjimky: Baterie odstraněna
- Krok 20: Výjimky: Teplotní upozornění
- Krok 21: Otestujte proud
- Krok 22: Balíček
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38



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

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

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

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


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

V levé části kolíků najdete tlačítko a bzučák.
Používám 3 tlačítka:
- jeden pro změnu typu baterie;
- jeden zahájí vybíjení vybrané baterie;
- 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

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í

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í


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


Nejprve přidám všechny piny a pájím to.
Krok 13: 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í


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:
- Wire: standardní arduino knihovna pro protokol i2c;
- Knihovna termistorů odsud ne knihovna, kterou najdete v arduino IDE, ale moje verze;
- 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í




Základní deska je na fotografii, pak ji můžeme vyzkoušet.
Krok 17: 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


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



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í



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

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:
Automatické IR dálkové ovládání na bázi Arduina řízené teplotou: 7 kroků

Automatické IR dálkové ovládání na bázi Arduina řízené teplotou: Hej, co se děje, lidi! Akarsh zde od CETech. Unaveni probouzením uprostřed zdravého spánku jen proto, že je vaše pokojová teplota příliš nízká nebo příliš vysoká kvůli vašemu Dumb AC. Pak je tento projekt pro vás. V tomto projektu připravíme náš
Přístupový bod (AP) ESP8266 NodeMCU pro webový server se snímačem teploty DT11 a teplotou a vlhkostí tisku v prohlížeči: 5 kroků

Přístupový bod (AP) ESP8266 NodeMCU pro webový server se snímačem teploty DT11 a teplotou a vlhkostí tisku v prohlížeči: Ahoj kluci, ve většině projektů používáme ESP8266 a ve většině projektů používáme ESP8266 jako webový server, takže k datům lze přistupovat na jakékoli zařízení přes WiFi přístupem na webový server hostovaný ESP8266, ale jediným problémem je, že potřebujeme funkční router pro
Relé řízené teplotou ESP8266: 9 kroků (s obrázky)

Relé řízené teplotou ESP8266: Můj přítel je vědec, který dělá experimenty, které jsou velmi citlivé na teplotu a vlhkost vzduchu. Místnost inkubátoru má malý keramický ohřívač, ale termostat ohřívače nebyl dostatečně přesný, dokázal udržet pouze teplotu
Hudební spektrum s digitálními hodinami a teplotou: 9 kroků (s obrázky)

Hudební spektrum s digitálními hodinami a teplotou: Jsme tu opět s projektem, který se vám bude líbit. Pokud rádi posloucháte hudbu a máte rádi vizualitu, tento projekt je pro vás. DIGITÁLNÍ HODINY HUDEBNÍ SPEKTRUM ELEKTRONICKÁ SADA S TEPLOTNÍM ZOBRAZENÍM Jedná se o elektronickou sadu. Když dokončíte pr
Odesílá sms s teplotou na čas: 5 kroků (s obrázky)

Zasílá sms s temperaturou včas: Cílem je získat SMS s temperaturou z domu mých otců. Nic efektního, jen rychlé skládání dílů dohromady. Díly jsou: Geekcreit ® Rozšiřující deska ATmega328P Nano V3 kompatibilní s ArduinoDIY NANO IO Shield V1.O pro ArduinoDS130