Talaan ng mga Nilalaman:

Checker ng Baterya na May Temperatura at Seleksyon ng Baterya: 23 Hakbang (na may Mga Larawan)
Checker ng Baterya na May Temperatura at Seleksyon ng Baterya: 23 Hakbang (na may Mga Larawan)

Video: Checker ng Baterya na May Temperatura at Seleksyon ng Baterya: 23 Hakbang (na may Mga Larawan)

Video: Checker ng Baterya na May Temperatura at Seleksyon ng Baterya: 23 Hakbang (na may Mga Larawan)
Video: Iwas Altapresyon! Tamang Pag-Check ng Blood Pressure 2024, Nobyembre
Anonim
Image
Image
Pagbabago Mula sa Base Project
Pagbabago Mula sa Base Project

Pagsubok ng kapasidad ng baterya.

Gamit ang aparatong ito maaari mong suriin ang capcity ng 18650 na baterya, acid at iba pa (ang pinakamalaking baterya na sinubukan ko Ito ay 6v Acid na baterya 4, 2A). Ang resulta ng pagsubok ay nasa milliampere / oras.

Lumilikha ako ng aparatong ito dahil kailangan Ito upang suriin ang kapasidad pekeng baterya ng china.

Para sa kaligtasan, idinagdag ko, gamit ang isang thermistor, ang temperatura ng paglaban ng kuryente at baterya upang maiwasan ang sobrang init, sa trick na ito maaari kong suriin ang 6v Acid Battery nang hindi pinaputok ang board (sa siklo ng paglabas ng ilang oras pumunta sa mainit na resistor ng kuryente at naghihintay ang aparato ng 20 segundo upang mabawasan ang temperatura).

Pinipili ko ang maliit na micro controller na atmega328 na katugmang nano (eBay).

Narito ang lahat ng code.

Hakbang 1: Baguhin Mula sa Base Project

Ninakaw ko ang ideya mula sa proyekto ng OpenGreenEnergy, at binago ko ang board upang magdagdag ng mga tampok, kaya't ngayon ay mas naging pangkalahatan.

v0.1

  • Ang VCC ng Arduino ay awtomatikong kinakalkula ngayon;
  • Nagdagdag ng variable upang baguhin ang setting sa isang mas komportableng paraan.
  • Nagdagdag ng porsyento ng pagpapalabas
  • Nagdagdag ng temperatura ng baterya at resistor ng kuryente

v0.2

  • Nagdagdag ng posibilidad ng pagpili ng baterya
  • Nilikha ang prototype board (tingnan ang eskematiko), kasama ang screen, pindutan at speaker sa labas ng board dahil sa hinaharap nais kong lumikha ng isang pakete.
  • Idinagdag ang pamamahala ng limitasyon ng temperatura sa resistor ng kuryente upang ma-block ko ang proseso kapag ang temperatura ay tumataas nang lampas sa 70 ° (sa dereksyon ng temperatura ng resistor ng temperatura na ito).

v0.3

Malapit na isang board mula sa serbisyong ito

Hakbang 2: V0.2 ng Lupon

V0.2 ng Lupon
V0.2 ng Lupon

Sa v0.2 upang suportahan ang iba't ibang uri ng mga baterya, lumikha ako ng isang istraktura na dapat puno ng pangalan ng baterya, min boltahe at max boltahe (kailangan ko ng tulong upang punan ito: P).

// Istraktura ng typestruct ng bateryaType ng baterya {char name [10]; float maxVolt; float minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType bateryaTypes [BATTERY_TYPE_NUMBER] = {{"18650", 4.3, 2.9}, {"17550", 4.3, 2.9}, {"14500", 4.3, 2.75}, {"6v Acid", 6.50, 5.91 }};

Gumagamit ako ngayon ng isang hanay ng 10k resistors para sa voltage divider upang mabasa ang dobleng temperatura ng analog input. Kung nais mo ang suporta ng boltahe ng pagbabago, dapat mong baguhin ang halagang ito (ipaliwanag nang mas mabuti ang susunod):

// Paglaban ng boltahe ng baterya

#define BAT_RES_VALUE_GND 10.0 # tukuyin ang BAT_RES_VALUE_VCC 10.0 // Paglaban ng boltahe ng resistor ng kuryente # tukuyin ang RES_RES_VALUE_GND 10.0 # tukuyin ang RES_RES_VALUE_VCC 10.0

Kung hindi ka gumagamit ng thermistor, itakda ito sa false:

# tukuyin ang USING_BATTERY_TERMISTOR totoo

# tukuyin ang USING_RESISTO_TERMISTOR totoo

Kung gumamit ka ng ibang i2c display, dapat mong muling isulat ang pamamaraang ito:

walang bisa draw (void)

Sa proyekto, makakahanap ka ng mga nakakagulat na iskema, larawan, at marami pa.

Hakbang 3: Breadboard: Pinalawak ang I2c Character Display Controller

Breadboard: Pinalawak ang I2c Character Display Controller
Breadboard: Pinalawak ang I2c Character Display Controller

Gumamit ako ng isang pangkalahatang pagpapakita ng character, at itinayo ko ang i2c controller at ginamit ito sa aking pasadyang silid-aklatan.

Ngunit kung nais mo, maaari kang kumuha ng isang normal na i2c controller (mas mababa sa 1 €) na may isang karaniwang library, ang code ay mananatiling pareho. Ang lahat ng code ng pagpapakita ay nasa paggana ng pagguhit upang mabago mo iyon nang hindi binabago ang iba pang mga bagay.

Mas mahusay na ipinaliwanag dito.

Hakbang 4: Breadboard: Pagpapakita ng Character Sa I2c Isinama

Breadboard: Display ng Character Sa I2c Isinama
Breadboard: Display ng Character Sa I2c Isinama

Ang parehong iskema nang walang kontrol na i2c ay pinalawak.

Hakbang 5: Napagtanto

Para sa pagsukat ng boltahe ginagamit namin ang prinsipyo ng isang Voltage divider (higit pang impormasyon sa Wikipedia).

Sa mga simpleng salita, ang code na ito ay ang multiplier factor sa pagsukat ng boltahe ng baterya.

batResValueGnd / (batResValueVolt + batResValueGnd)

Ipinasok ko ang 2 resistances ng batResValueVolt at batResValueGnd na halaga pagkatapos at bago ang analog read wire.

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

ang sample1 ay ang average na analog readings;

sanggunian ng vcc Arduino boltahe;

Ang 1023.0 ay ang sangguniang maximum na halaga ng pagbasa ng analog (Arduino analog read read mula 0 hanggang 1023).

Upang makakuha ng amperage kailangan mo ng boltahe pagkatapos at bago ang resistor ng kuryente.

Kapag nasusukat mo ang boltahe pagkatapos at bago ang resistor ng kuryente maaari mong kalkulahin ang milliampere na kumokonsumo ng baterya.

Ginagamit ang MOSFET upang simulan at ihinto ang pag-alisan ng baterya mula sa resistor ng kuryente.

Para sa kaligtasan ay ipinasok ko ang 2 thermistors upang subaybayan ang baterya at temperatura ng resistor ng kuryente.

Hakbang 6: Pagkalawak

Ang pagiging malawak
Ang pagiging malawak
Ang pagiging malawak
Ang pagiging malawak

Sinusubukan kong mag-crete ng isang prototype board na extensible, ngunit sa ngayon ay gumagamit lamang ako ng kaunting hanay ng mga pin (sa hinaharap ay magdaragdag ako ng mga leds at iba pang mga pindutan).

Kung nais mo ang boltahe ng suporta na higit sa 10v dapat mong baguhin ang halaga ng risistor ng baterya at paglaban alinsunod sa pormula

(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)

sa boltahe ng lakas ng resistor ng iskema

Resistor boltahe ng kuryente GND 1/2 / (Boltahe ng kuryente ng resististor 2/2 + Boltahe ng kuryente ng resistor GND 1/2)

Ang rosas ay nasa ilalim ng paghihinang

Hakbang 7: Listahan ng Mga Bahagi

Mga Katangian ng Uri ng Bahagi ng Halaga

  • 2 5mm Screw TermInal PCB Mount Screw Terminal Block 8A 250V LW SZUS (eBay)
  • 1 Arduino Pro Mini clone (katugmang Nano) (eBay)
  • 1 Pangunahing FET P-Channel IRF744N o IRLZ44N (eBay)
  • 11 10kΩ Resistor resistor 10kΩ (eBay)
  • 2 Temperatura Sensor (Thermistor) 10kΩ; (eBay)
  • * Generic na form ng header na lalaki ♂ (lalaki); (eBay)
  • * Generic na babaeng form ng header ♀ (babae); (eBay)
  • 1 PerfBoard board Prototype board 24x18 (eBay)
  • 10R, 10W

    power resistor (eBay) Nakahanap ako ng minahan sa isang lumang crt TV.

Hakbang 8: Lupon: I-reset, Button ng Gnd E upang Piliin ang Baterya

Lupon: I-reset, Button ng Gnd E upang Piliin ang Baterya
Lupon: I-reset, Button ng Gnd E upang Piliin ang Baterya

Sa kaliwang bahagi ng mga pin maaari mong makita ang pindutan at buzzer.

Gumagamit ako ng 3 mga pindutan:

  1. isa upang baguhin ang uri ng baterya;
  2. isa upang simulan ang paglabas ng napiling baterya;
  3. pagkatapos ay gumagamit ako ng reset pin upang muling simulan ang lahat, at buhayin ang bagong operasyon.

Ang lahat ng pin ay hinila na pababa kaya dapat mong buhayin gamit ang VCC

Ang pag-reset ay aktibo sa GND

Ang rosas ay nasa ilalim ng paghihinang

Hakbang 9: Lupon: I2c at Mga Power Supply Pins

Lupon: I2c at Mga Power Supply Pins
Lupon: I2c at Mga Power Supply Pins

Sa base maaari mong makita ang VCC, GND at SDA, SCL para sa pagpapakita (at iba pa sa hinaharap).

Ang rosas ay nasa ilalim ng paghihinang

Hakbang 10: Lupon: Thermistor at Pagsukat ng Boltahe

Lupon: Thermistor at Pagsukat ng Boltahe
Lupon: Thermistor at Pagsukat ng Boltahe

Sa kanan ay may mga pin upang mabasa ang halaga ng thermistor, isa para sa power resitsor thermistor at ang isa pa para sa (male / female pin na ikakabit) thermistor ng baterya.

Pagkatapos may mga analog na pin na sumusukat sa pagkakaiba-ibang boltahe pagkatapos at bago ang resistor ng kuryente.

Ang rosas ay nasa ilalim ng paghihinang

Hakbang 11: Lupon: Resistor sa Pagsukat ng Boltahe

Lupon: Resistor sa Pagsukat ng Boltahe
Lupon: Resistor sa Pagsukat ng Boltahe
Lupon: Resistor sa Pagsukat ng Boltahe
Lupon: Resistor sa Pagsukat ng Boltahe

Makikita mo rito ang risistor na nagpapahintulot na suportahan ang boltahe nang doble kaysa sa arduino pin (10v), dapat mong baguhin ito upang suportahan ang higit na boltahe.

Ang rosas ay nasa ilalim ng paghihinang

Hakbang 12: Hakbang sa Paghinang: Lahat ng mga Pin

Hakbang sa Paghinang: Lahat ng mga Pin
Hakbang sa Paghinang: Lahat ng mga Pin
Hakbang sa Paghinang: Lahat ng mga Pin
Hakbang sa Paghinang: Lahat ng mga Pin

Para sa una idaragdag ko ang lahat ng mga pin at paghihinang nito.

Hakbang 13: Mga Hakbang sa Paghihinang: Pulldown Resistor at Thermistor

Mga Hakbang sa Paghinang: Pulldown Resistor at Thermistor
Mga Hakbang sa Paghinang: Pulldown Resistor at Thermistor
Mga Hakbang sa Paghinang: Pulldown Resistor at Thermistor
Mga Hakbang sa Paghinang: Pulldown Resistor at Thermistor

Pagkatapos ay idinagdag ko ang lahat ng pulldown resitor (para sa mga pindutan) at i2c konektor (display).

Pagkatapos ang power resistor thermistor Napakahalaga nito, sa acid baterya na masyadong mainit.

Hakbang 14: Mga Hakbang sa Paghihinang: MOSFET, Paglaban upang Suriin ang Boltahe

Mga Hakbang sa Paghinang: MOSFET, Paglaban upang Suriin ang Boltahe
Mga Hakbang sa Paghinang: MOSFET, Paglaban upang Suriin ang Boltahe
Mga Hakbang sa Paghinang: MOSFET, Paglaban upang Suriin ang Boltahe
Mga Hakbang sa Paghinang: MOSFET, Paglaban upang Suriin ang Boltahe

Ngayon ay dapat nating ipasok ang mosfet upang buhayin ang paglabas at paglaban upang suriin ang boltahe.

2 paglaban para sa boltahe bago ang resistor ng kuryente 2 paglaban para sa boltahe pagkatapos ng resistor ng kuryente, kapag mayroon kang boltahe na ito maaari mong kalkulahin ang pag-ubos ng milliampere.

Hakbang 15: Code

Ang microcontroller ay katugma nano, kaya dapat mong itakda ang iyong IDE upang mag-upload ng isang Arduino Nano.

Upang gumana dapat kang mag-download ng code mula sa aking repository ng github.

Kaysa dapat kang magdagdag ng 3 silid-aklatan:

  1. Wire: karaniwang arduino library para sa i2c protocol;
  2. Termistor Library mula dito hindi ang library na maaari mong makita sa arduino IDE, ngunit ang aking bersyon;
  3. LiquidCrystal_i2c: kung gumagamit ka ng pinalawak / pasadyang bersyon ng i2c adapter (aking bersyon) dapat mong i-download ang library mula dito, kung gagamitin mo ang karaniwang sangkap maaari mong kunin ang library mula sa arduino IDE, ngunit ang lahat ay mas mahusay na ipinaliwanag dito.

Hindi ko sinusubukan ang LCD sa karaniwang silid-aklatan, Tila sa akin na sila ay mapagpapalit, ngunit kung may ilang mga problema ay nahulog nang malayang makipag-ugnay sa akin.

Hakbang 16: Resulta Pagkatapos ng Assembling

Image
Image
Resulta Pagkatapos ng Assembling
Resulta Pagkatapos ng Assembling
Resulta Pagkatapos ng Assembling
Resulta Pagkatapos ng Assembling

Ang batayang board ay nasa larawan, pagkatapos ay masusubukan namin Ito.

Hakbang 17: Una Piliin ang Uri ng Baterya

Una Piliin ang Uri ng Baterya
Una Piliin ang Uri ng Baterya

Tulad ng inilarawan mayroon kaming isang mapa ng halaga na may pagsasaayos ng baterya.

// Istraktura ng typestruct ng bateryaType ng baterya {char name [10]; float maxVolt; float minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType bateryaTypes [BATTERY_TYPE_NUMBER] = {{"18650", 4.3, 2.9}, {"17550", 4.3, 2.9}, {"14500", 4.3, 2.75}, {"6v Acid", 6.50, 5.91 }};

Hakbang 18: Simulan ang Paglalabas

Simulan ang Paglalabas
Simulan ang Paglalabas
Simulan ang Paglalabas
Simulan ang Paglalabas

I-click ang pangalawang pindutan magsimulang maglabas.

Sa display maaari mong makita ang kasalukuyang milliampere, milliampere / oras, porsyento ng pagpapalabas, boltahe ng baterya at temperatura ng resistor ng baterya at baterya.

Hakbang 19: Mga Pagbubukod: Inalis ang Baterya

Image
Image
Mga Pagbubukod: Alerto sa Temperatura
Mga Pagbubukod: Alerto sa Temperatura

Kung aalisin mo ang proseso ng pagpapalabas ng baterya na mag-pause, kapag muling ipasok mo Ito ay restart sa huling halaga.

Hakbang 20: Mga Exception: Temperatura ng Alerto

Mga Pagbubukod: Alerto sa Temperatura
Mga Pagbubukod: Alerto sa Temperatura
Mga Pagbubukod: Alerto sa Temperatura
Mga Pagbubukod: Alerto sa Temperatura
Mga Pagbubukod: Alerto sa Temperatura
Mga Pagbubukod: Alerto sa Temperatura

Kung ang temperatura (baterya o resistor ng kuryente) ay maiinit, ang proseso ng paglabas ay tumigil sa pag-pause.

# tukuyin ang BATTERY_MAX_TEMP 50

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

Ang default na halaga para sa pinakamataas na temperatura ay 50 ° para sa baterya at 69 para sa resistor ng kuryente.

Tulad ng nakikita mo sa komento kapangyarihan risistor ay apektado ng derating kapag pagpunta sa higit sa 70 °.

Kung naalsa ang alerto simulan ang TEMP_TO_REMOVE_ON_MAX_TEMP segundo ng pag-pause upang ilagay ang mababang temp.

Hakbang 21: Subukan ang Amperage

Subukan ang Amperage
Subukan ang Amperage

Ang resulta ng pagsubok sa amperage ay mabuti.

Hakbang 22: Pakete

Sa magkakahiwalay na sangkap ang resulta ng package ay simpleng mapagtanto.

Sa isang kahon ay dapat gumawa ng isang rektanggulo para sa LCD, ang mga butas para sa mga push button, at isang panlabas na babaeng bariles upang makapagbigay ng boltahe mula sa power supply.

Ang pindutan ng push ay hindi kailangan ng pull-down na risistor sapagkat idinagdag ko na ito sa board.

Kapag may oras ako ay nilikha ko at nai-post ito.

Inirerekumendang: