Spisu treści:

Sprawdzanie baterii z temperaturą i wyborem baterii: 23 kroki (ze zdjęciami)
Sprawdzanie baterii z temperaturą i wyborem baterii: 23 kroki (ze zdjęciami)

Wideo: Sprawdzanie baterii z temperaturą i wyborem baterii: 23 kroki (ze zdjęciami)

Wideo: Sprawdzanie baterii z temperaturą i wyborem baterii: 23 kroki (ze zdjęciami)
Wideo: Bezużyteczne ustawienia telefonu które mocno rozladowują baterię. 2024, Listopad
Anonim
Image
Image
Zmień z projektu podstawowego
Zmień z projektu podstawowego

Tester pojemności baterii.

Za pomocą tego urządzenia możesz sprawdzić pojemność akumulatora 18650, kwasu i innych (największy testowany akumulator to 6v Acid Battery 4, 2A). Wynik testu podano w miliamperach/godzinę.

Tworzę to urządzenie, ponieważ potrzebuję go, aby sprawdzić pojemność fałszywej baterii chińskiej.

Dla bezpieczeństwa dodałem za pomocą termistora temperaturę rezystancji zasilania i akumulatora, aby nie przegrzał się, tym trikiem mogę sprawdzić akumulator kwasowy 6v bez odpalania płytki (w cyklu rozładowania jakiś czas przejść do gorącego rezystora mocy a urządzenie czeka 20 sekund, aby obniżyć temperaturę).

Wybrałem mały mikrokontroler kompatybilny z atmega328 nano (eBay).

Cały kod jest tutaj.

Krok 1: Zmień z projektu podstawowego

Ukradłem pomysł z projektu OpenGreenEnergy i przerobiłem tablicę, aby dodać funkcje, więc teraz stań się bardziej ogólny.

v0.1

  • VCC Arduino jest teraz obliczane automatycznie;
  • Dodano zmienną pozwalającą na wygodniejszą zmianę ustawień.
  • Dodano procent rozładowania
  • Dodano temperaturę akumulatora i rezystora mocy

v0.2

  • Dodano możliwość wyboru baterii
  • Stworzyłem płytkę prototypową (patrz schemat), z ekranem, przyciskiem i głośnikiem poza płytką, ponieważ w przyszłości chciałbym stworzyć pakiet.
  • Dodano zarządzanie limitem temperatury do rezystora mocy, dzięki czemu mogę zablokować proces, gdy temperatura wzrośnie powyżej 70° (powyżej tej temperatury rezystor mocy obniża się).

v0.3

Już wkrótce płyta z tej usługi

Krok 2: V0.2 płyty

V0.2 Zarządu
V0.2 Zarządu

W wersji 0.2 do obsługi różnych typów baterii stworzyłem strukturę, która musi być wypełniona nazwą baterii, napięciem minimalnym i maksymalnym (potrzebuję pomocy, aby to wypełnić:P).

// Struktura baterii typestruct BatteryType { char name[10]; pływak maxVolt; pływak 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 } };

Teraz używam zestawu rezystorów 10k dla dzielnika napięcia do odczytu podwójnej temperatury wejścia analogowego. Jeśli chcesz zmienić obsługę napięcia, musisz zmienić tę wartość (wyjaśnij lepiej dalej):

// Rezystancja napięcia akumulatora

#define BAT_RES_VALUE_GND 10.0 #define BAT_RES_VALUE_VCC 10.0 // Rezystancja napięciowa rezystora mocy #define RES_RES_VALUE_GND 10.0 #define RES_RES_VALUE_VCC 10.0

Jeśli nie używasz termistora, ustaw to na false:

#define USING_BATTERY_TERMISTOR prawda

#define USING_RESISTO_TERMISTOR prawda

Jeśli używasz innego wyświetlacza i2c, musisz przepisać tę metodę:

nieważne remis (nieważne)

W projekcie można znaleźć schematy fryzowania, zdjęcia i nie tylko.

Krok 3: Płytka prototypowa: Rozbudowany kontroler wyświetlacza znaków I2c

Płytka prototypowa: Rozszerzony kontroler wyświetlacza znaków I2c
Płytka prototypowa: Rozszerzony kontroler wyświetlacza znaków I2c

Użyłem ogólnego wyświetlania znaków i zbudowałem kontroler i2c i użyłem go z moją niestandardową biblioteką.

Ale jeśli chcesz, możesz wziąć normalny kontroler i2c (mniej niż 1 €) ze standardową biblioteką, kod pozostaje ten sam. Cały kod wyświetlacza jest w funkcji rysowania, więc możesz to zmienić bez zmiany innych rzeczy.

Lepiej wyjaśnij tutaj.

Krok 4: Płytka do krojenia chleba: wyświetlacz znaków ze zintegrowanym I2c

Płytka do krojenia chleba: wyświetlacz znaków ze zintegrowanym I2c
Płytka do krojenia chleba: wyświetlacz znaków ze zintegrowanym I2c

Ten sam schemat bez rozwinięcia kontrolowanego przez i2c.

Krok 5: Realizacja

Do pomiaru napięcia używamy zasady dzielnika napięcia (więcej informacji na Wikipedii).

W prostych słowach ten kod jest mnożnikiem do pomiaru napięcia baterii.

batResValueGnd / (batResValueVolt + batResValueGnd)

Wstawiłem 2 rezystancje batResValueVolt i batResValueGnd za i przed analogowym przewodem odczytu.

batVolt = (próbka1 / (1023.0 - ((BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)) * 1023.0))) * vcc;

sample1 to średnie odczyty analogowe;

napięcie odniesienia Vcc Arduino;

1023.0 to maksymalna wartość odniesienia odczytu analogowego (odczyt analogowy Arduino przechodzi od 0 do 1023).

Aby uzyskać prąd, potrzebujesz napięcia za i przed rezystorem mocy.

Gdy zmierzysz napięcie za i przed rezystorem mocy, możesz obliczyć miliamper, który zużywa baterię.

MOSFET służy do uruchamiania i zatrzymywania rozładowania akumulatora z rezystora mocy.

Dla bezpieczeństwa wstawiłem 2 termistory do monitorowania temperatury akumulatora i rezystora mocy.

Krok 6: Rozszerzalność

Rozciągliwość
Rozciągliwość
Rozciągliwość
Rozciągliwość

Staram się stworzyć prototypową płytkę, która jest rozszerzalna, ale na razie używam tylko minimalnego zestawu pinów (w przyszłości dodam diody i inne przyciski).

Jeśli chcesz, aby napięcie wsparcia było większe niż 10 V, musisz zmienić wartość rezystora baterii i rezystancję zgodnie ze wzorem

(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)

w schemacie Napięcie zasilania rezystora

Napięcie zasilania rezystora GND 1/2 / (Napięcie zasilania rezystora 2/2 + Napięcie zasilania rezystora GND 1/2)

Różowy to lutowanie w dół

Krok 7: Lista części

Właściwości typu części ilościowej

  • 2 5mm zacisk śrubowy do montażu na płytce drukowanej listwa zaciskowa śrubowa 8A 250V LW SZUS (eBay)
  • 1 klon Arduino Pro Mini (kompatybilny z Nano) (eBay)
  • 1 podstawowy kanał P FET IRF744N lub IRLZ44N (eBay)
  • 11 10kΩ Rezystor rezystora 10kΩ (eBay)
  • 2 Czujnik temperatury (termistor) 10kΩ; (eBay)
  • * Ogólny męski nagłówek ♂ (męski); (eBay)
  • * Ogólny żeński nagłówek ♀ (żeński); (eBay)
  • 1 płyta PerfBoard Płyta prototypowa 24x18 (eBay)
  • 10R, 10W

    rezystor mocy (eBay) Mój znajduje się w starym telewizorze crt.

Krok 8: Tablica: Reset, przycisk Gnd E, aby wybrać baterię

Tablica: Reset, przycisk Gnd E, aby wybrać baterię
Tablica: Reset, przycisk Gnd E, aby wybrać baterię

W lewej części kołków znajduje się przycisk i brzęczyk.

Używam 3 przycisków:

  1. jeden do zmiany typu baterii;
  2. jeden do rozpoczęcia rozładowywania wybranej baterii;
  3. następnie używam pinu resetowania, aby zrestartować wszystko i aktywować nową operację.

Wszystkie piny są już ściągnięte, więc musisz aktywować za pomocą VCC

Reset aktywowany z GND

Różowy to lutowanie w dół

Krok 9: Płytka: I2c i piny zasilania

Płytka: I2c i piny zasilania
Płytka: I2c i piny zasilania

Do bazy można zobaczyć VCC, GND i SDA, SCL do wyświetlania (i inne w przyszłości).

Różowy to lutowanie w dół

Krok 10: Płytka: termistor i napięcie pomiarowe

Płytka: termistor i napięcie pomiarowe
Płytka: termistor i napięcie pomiarowe

Po prawej stronie znajdują się piny do odczytu wartości termistora, jeden dla termistora rezystora zasilania, a drugi dla (męskie/żeńskie piny do podłączenia) termistora akumulatora.

Następnie są piny analogowe, które mierzą napięcie różnicowe za i przed rezystorem mocy.

Różowy to lutowanie w dół

Krok 11: Płytka: rezystor do pomiaru napięcia

Płytka: Rezystor do pomiaru napięcia
Płytka: Rezystor do pomiaru napięcia
Płytka: Rezystor do pomiaru napięcia
Płytka: Rezystor do pomiaru napięcia

Tutaj możesz zobaczyć rezystor, który pozwala na obsługę napięcia podwójnego niż pin arduino (10v), musisz to zmienić, aby obsługiwać większe napięcie.

Różowy to lutowanie w dół

Krok 12: Krok lutowania: Wszystkie szpilki

Krok lutowania: wszystkie szpilki
Krok lutowania: wszystkie szpilki
Krok lutowania: wszystkie szpilki
Krok lutowania: wszystkie szpilki

Na początek dodaję wszystkie piny i lutuję.

Krok 13: Kroki lutowania: rezystor ściągający i termistor

Kroki lutowania: rezystor ściągający i termistor
Kroki lutowania: rezystor ściągający i termistor
Kroki lutowania: rezystor ściągający i termistor
Kroki lutowania: rezystor ściągający i termistor

Następnie dodaję wszystkie rezystory ściągające (dla przycisków) oraz złącze i2c (wyświetlacz).

Następnie termistor opornika mocy To bardzo ważne, gdy akumulator kwasowy jest zbyt gorący.

Krok 14: Kroki lutowania: MOSFET, odporność na sprawdzenie napięcia

Kroki lutowania: MOSFET, odporność na sprawdzanie napięcia
Kroki lutowania: MOSFET, odporność na sprawdzanie napięcia
Kroki lutowania: MOSFET, odporność na sprawdzanie napięcia
Kroki lutowania: MOSFET, odporność na sprawdzanie napięcia

Teraz musimy włożyć mosfet, aby aktywować rozładowywanie i rezystancję, aby sprawdzić napięcie.

2 rezystancja napięcia przed rezystorem mocy 2 rezystancja napięcia za rezystorem mocy, gdy masz to napięcie, możesz obliczyć zużycie miliamperów.

Krok 15: Kod

Mikrokontroler jest kompatybilny z nano, więc musisz ustawić swoje IDE, aby wgrać Arduino Nano.

Do pracy musisz pobrać kod z mojego repozytorium github.

Następnie musisz dodać 3 biblioteki:

  1. Przewód: standardowa biblioteka arduino dla protokołu i2c;
  2. Termistor Library stąd nie biblioteka, którą można znaleźć w arduino IDE, ale moja wersja;
  3. LiquidCrystal_i2c: jeśli używasz rozszerzonej/niestandardowej wersji adaptera i2c (moja wersja), musisz pobrać bibliotekę stąd, jeśli używasz standardowego komponentu, możesz pobrać bibliotekę z arduino IDE, ale wszystko jest lepiej wyjaśnione tutaj.

LCD nie testuję ze standardową biblioteką, wydaje mi się, że są one zamienne, ale w razie problemów proszę o kontakt.

Krok 16: Wynik po złożeniu

Image
Image
Wynik po złożeniu
Wynik po złożeniu
Wynik po złożeniu
Wynik po złożeniu

Płyta bazowa jest na zdjęciu, wtedy możemy ją przetestować.

Krok 17: Najpierw wybierz typ baterii

Najpierw wybierz typ baterii
Najpierw wybierz typ baterii

Zgodnie z opisem mamy mapę wartości z konfiguracją baterii.

// Struktura baterii typestruct BatteryType { char name[10]; pływak maxVolt; pływak 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: Rozpocznij rozładowywanie

Rozpocznij rozładowywanie
Rozpocznij rozładowywanie
Rozpocznij rozładowywanie
Rozpocznij rozładowywanie

Kliknięcie drugiego przycisku rozpoczyna rozładowywanie.

Na wyświetlaczu można zobaczyć prąd w miliamperach, miliamper/godzinę, procent rozładowania, napięcie akumulatora oraz temperaturę rezystora mocy i akumulatora.

Krok 19: Wyjątki: wyjęta bateria

Image
Image
Wyjątki: Alarm temperatury
Wyjątki: Alarm temperatury

Jeśli usuniesz proces rozładowywania baterii, zostanie zatrzymany, po ponownym włożeniu go uruchom ponownie z ostatnią wartością.

Krok 20: Wyjątki: Alarm temperatury

Wyjątki: Alarm temperatury
Wyjątki: Alarm temperatury
Wyjątki: Alarm temperatury
Wyjątki: Alarm temperatury
Wyjątki: Alarm temperatury
Wyjątki: Alarm temperatury

Jeśli temperatura (akumulatora lub rezystora mocy) wzrośnie, proces rozładowania zostanie wstrzymany.

#define BATTERY_MAX_TEMP 50

#define RESISTANCE_MAX_TEMP 69 // 70° w arkuszu danych (rezystory obniżające) #define TEMP_TO_REMOVE_ON_MAX_TEMP 20

Domyślna wartość maksymalnej temperatury to 50° dla akumulatora i 69 dla rezystora mocy.

Jak widać w komentarzu, na rezystorze mocy wpływa obniżenie wartości znamionowych przy przekroczeniu 70°.

Jeśli alarm zostanie zgłoszony, zacznij TEMP_TO_REMOVE_ON_MAX_TEMP sekund pauzy, aby ustawić niską temperaturę.

Krok 21: Test natężenia

Natężenie testowe
Natężenie testowe

Wynik testu natężenia jest dobry.

Krok 22: Pakiet

Dzięki odseparowanemu komponentowi wynik pakietu jest prosty do zrealizowania.

W pudełku należy wykonać prostokąt na LCD, otwory na przyciski oraz zewnętrzną żeńską lufa do zasilania napięcia z zasilacza.

Przycisk nie potrzebuje rezystora pull-down bo dodaję go już na płycie.

Kiedy mam trochę czasu, tworzę i publikuję.

Zalecana: