{"id":383,"date":"2014-01-26T12:07:28","date_gmt":"2014-01-26T12:07:28","guid":{"rendered":"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/?p=383"},"modified":"2016-10-15T13:08:48","modified_gmt":"2016-10-15T13:08:48","slug":"bms-mcu-micro-08b-fra-ev-power-com-eu","status":"publish","type":"post","link":"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/teknik\/bms-mcu-micro-08b-fra-ev-power-com-eu\/","title":{"rendered":"BMS MCU-MICRO-08B fra ev-power-com.eu med open source kode"},"content":{"rendered":"<p><strong>Opdatering 15. oktober 2016:<\/strong><\/p>\n<p>BMS main print erstattet af :\u00a0<a href=\"http:\/\/ev-power.com.au\/webstore\/ev-power-bms\/mcu-micro-08a.html\">http:\/\/ev-power.com.au\/webstore\/ev-power-bms\/mcu-micro-08a.html<\/a><\/p>\n<p>Denne BMS har open source kode, et basic program. Hardware er dog ikke open source, men meget let at efterligne hvis man vil. Eller m\u00e5ske omskrive s\u00e5 \u00a0koden k\u00f8rer p\u00e5 en arduino istedet.<\/p>\n<p><a href=\"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-content\/uploads\/bms-citroen-c1-evie.jpg\"><img data-attachment-id=\"380\" data-permalink=\"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/bms-citroen-c1-evie\/\" data-orig-file=\"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-content\/uploads\/bms-citroen-c1-evie.jpg\" data-orig-size=\"907,637\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"bms-citroen-c1-evie\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-content\/uploads\/bms-citroen-c1-evie-300x210.jpg\" data-large-file=\"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-content\/uploads\/bms-citroen-c1-evie.jpg\" loading=\"lazy\" class=\"alignnone size-medium wp-image-380\" title=\"BMS-MCU-MICRO-08B\" src=\"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-content\/uploads\/bms-citroen-c1-evie-300x210.jpg\" alt=\"bms-citroen-c1-evie\" width=\"300\" height=\"210\" srcset=\"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-content\/uploads\/bms-citroen-c1-evie-300x210.jpg 300w, http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-content\/uploads\/bms-citroen-c1-evie.jpg 907w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>S\u00e5dan virker\u00a0BMS MCU-MICRO-08B fra ev-power-com.eu<\/strong><\/p>\n<p>BMS MCU har to lysdioder.<\/p>\n<p>Den <span style=\"color: #99cc00;\"><strong>gr\u00f8nne lysdiode<\/strong><\/span> indikerer at der er str\u00f8m p\u00e5, og at BMS holder \u00f8je med batteri sl\u00f8jfen. BMS MCU t\u00e6ndes med en kortslutning af connectoren &#8216;switch&#8217;. Den tilsluttes i denne elbil til DC-DC konverter 12 volt ud, s\u00e5 BMS k\u00f8rer ved ladning og n\u00e5r t\u00e6ndingsn\u00f8gle drejes p\u00e5 on.<\/p>\n<p>Den <span style=\"color: #ff0000;\"><strong>r\u00f8de lysdiode<\/strong><\/span>\u00a0indikerer en afbrydelse \/ pause i NC str\u00f8msl\u00f8jfen (ev-powers onewire str\u00f8m sl\u00f8jfe). Lyser den r\u00f8de lysdiode, er der et problem med en battericelle.<br \/>\n<strong>BMS MCU udf\u00f8rer en r\u00e6kke funktioner:<\/strong><\/p>\n<ol>\n<li>BMS MCU aktiverer rel\u00e6et, n\u00e5r &#8216;switch&#8217; er t\u00e6ndt, og onewire str\u00f8m l\u00f8kken mellem cellerne indikerer alt er OK. Dvs. dette rel\u00e6 skal styre &#8216;cutback&#8217; til curtis 1238 motor kontrolleren og &#8216;shutdown&#8217; til zivan ng3 laderen.<\/li>\n<li>BMS MCU overv\u00e5ger at der g\u00e5r str\u00f8m gennem onewire str\u00f8m l\u00f8kken mellen battericelle modulerne, her cm100.\u00a0Hvis en celle g\u00e5r under 2,5 V eller over 4.0V blinker den<span style=\"color: #ff0000;\">\u00a0<\/span><strong><span style=\"color: #ff0000;\">r\u00f8de lysdiode<\/span>,<\/strong>\u00a0forts\u00e6tter det i mere end end 10 sekunder vil\u00a0rel\u00e6et \u00e5bne = ladning stoppes. Lyser den <strong><span style=\"color: #ff0000;\">r\u00f8de lysdiode<\/span><\/strong> konstant, er der en permanent\u00a0fejl.<\/li>\n<li>Hvis rel\u00e6et er \u00e5bent, og der er konstant lys i den r\u00f8de lysdiode, kanBMS MCU nulstilles ved at slukke og t\u00e6nde det igen.\u00a0Dette vil f\u00e5 rel\u00e6et til at lukke i en kort periode og tillade at pr\u00f8ve at genoplade hvis cellerne er p\u00e5 en\u00a0lav sp\u00e6nding.<\/li>\n<\/ol>\n<h3><strong>Open Source basic program til BMS MCU i picaxe basic fra ev-power<\/strong><code><\/code><\/h3>\n<pre class=\"lang:asp decode:true\" title=\"bms basic program for picaxe\"> '*****************************************************************************************************************************\r\n#PICAXE 08M2\r\n'  \r\n'              BMS-BCU-MICRO-08 - BATTERY CONTROL UNIT FOR  EV POWER BMS CELL MODULES\r\n'\r\n'              This simple unit monitors cell module input.  If error for 10 seconds\r\n'               disconnection occurs.\r\n'\r\n'               FOR USE WITH THREE WIRE LATCHING RELAYS\r\n'\r\n'               2.1 - added latching variable, same code for MICRO-A and B\r\n'                        added code to switch off relay when powered ON with enable ON\r\n'\t\t2.2 - 20-11-12  - added code for 11V - 16V switch range     11V = 104, 16V = 151\r\n'\t\t2.3 - 11-1-13 - removed 11-16V switching range, needs more thought\r\n'\r\n'\r\n'*****************************************************************************************************************************\r\n\r\n'\r\nsymbol latchingvalue = 1\t\t  ' set latching = 1 for MICRO-A and latching = 0 for MICRO-B\r\n'symbol hysterisis\t= 5\t\t' hysterisis value for offvoltage\r\n\r\n' PICAXE pin assignments\r\nsymbol alarmpin      = 0\r\nsymbol contactoroff = 1\r\nsymbol contactoron = 2\r\nsymbol cellmodules = pin3\r\nsymbol switchinput = 4\r\n\r\n' Define constants\r\n'symbol offvoltage = 104            '&lt;20 = switchoff\r\nsymbol offvoltage = 20            '&lt;20 = switchoff\r\nsymbol overvoltage = 255\r\n\r\n' Define variables\r\nsymbol voltage      = b0\r\nsymbol acount       = b1\r\nsymbol latching     = b2\r\nsymbol errorflag    = b3\r\nsymbol lastsecond = w2\r\n'symbol offplushysterisis \t= b6\r\n\r\n'***************************************************************************************************************************\r\n' MAIN PROGRAM\r\nstart0:\r\n\r\nlatching = latchingvalue                    ' set latching = 1 for MICRO-A and latching = 0 for MICRO-B\r\n'offplushysterisis = offvoltage + hysterisis\r\n\r\nsuspend 1\r\n\r\ngosub relayoff\r\nerrorflag = 0\r\n\r\n'low contactoroff           ' set output so not in indeterminate state\r\n'low contactoron\r\n\r\ninitialise:\r\n\r\nreadadc switchinput, voltage       ' stay switched off if unit is powered up with switch on\r\n'debug voltage\r\npause 100\r\nif voltage =&gt; offvoltage then : goto initialise endif\r\n\r\ngosub sleepsomemore\r\n\r\nmain:\r\n\r\nif cellmodules = 0 then\r\n   for acount = 1 to 15                          ' 15 seconds from warning to shutdown\r\n         pause 500\r\n         gosub flasher\r\n         errorflag = 1\r\n         readadc switchinput, voltage\r\n         if voltage &lt; offvoltage then : gosub sleepsomemore : endif\r\n \tif cellmodules &lt;&gt; 0 then\r\n \t\terrorflag = 0\r\n\t \tgoto modulesok \r\n \tendif\r\n   next acount\r\n   gosub closedown\r\nendif\r\n\r\nmodulesok:\r\n\r\nreadadc switchinput, voltage\r\npause 100\r\n'debug voltage\r\nif voltage &lt; offvoltage then : gosub sleepsomemore : endif\r\n\r\ngoto main\r\nend\r\n\r\n'subroutines\r\n'*******************************************************************************************************************************\r\n'  CLOSE DOWN if voltage or cell modules are out of range, only re-enable if switch is off\/on again\r\n\r\nclosedown:\r\nif voltage&lt; offvoltage or voltage &gt; overvoltage then\r\n   low alarmpin\r\nelse\r\n   high alarmpin\r\nendif\r\ngosub relayoff\r\nerrorflag = 2\r\n\r\nstayclosed:\r\nreadadc switchinput, voltage\r\npause 100\r\nif voltage =&gt; offvoltage then : goto stayclosed : endif\r\n\r\ngosub sleepsomemore\r\n\r\ngoto main\r\nreturn\r\n\r\n'******************************************************************************************************************************\r\n'   SLEEP if switch is off\r\n\r\nsleepsomemore:\r\ngosub relayoff\r\nlow alarmpin\r\nerrorflag = 0\r\n\r\nstayoff:\t\r\n\r\nreadadc switchinput, voltage\r\npause 100\r\nif voltage &lt; offvoltage then : goto stayoff : endif\r\n\r\ngosub relayon\r\n\r\ngoto main\r\nreturn\r\n\r\n'******************************************************************************************************************************\r\n' FLASH the alarmpin\r\n\r\nflasher:\r\nhigh alarmpin\r\npause 500\r\nlow alarmpin\r\n\r\nreturn\r\n'******************************************************************************************************************************\r\n'  RELAY ON pulse for latching relay\r\n\r\nrelayon:\r\nif latching = 0 then\r\n\thigh contactoroff\r\n\thigh contactoron\r\nelse\r\n\tlow contactoroff\r\n\thigh contactoron\r\n\tpause 100\r\n\tlow contactoron\r\nendif\r\npause 1000\r\n\r\nreturn\r\n'******************************************************************************************************************************\r\n' RELAY OFF pulse for latching relay\r\n\r\nrelayoff:\r\nif latching = 0 then\r\n\tlow contactoroff\r\n\tlow contactoron\r\nelse\r\n\tlow contactoron\r\n\thigh contactoroff\r\n\tpause 100\r\n\tlow contactoroff\r\nendif\r\npause 1000\r\n\r\nreturn\r\n\r\n'*******************************************************************************************************************************\r\n'  PARALLEL PROGRAM TO OUTPUT TERMINAL INFORMATION\r\n\r\nstart1:\r\n\r\npause 200\r\n\r\nmain1:\r\n\r\nwaitasecond:\r\nif time = lastsecond then\r\n\tgoto waitasecond\r\nelse\r\n\tlastsecond = time\r\nendif\r\n\r\nif voltage &lt; offvoltage then\r\n\tsertxd (\"STA=OFF\")\r\nelse\r\n\tsertxd (\"STA=ON\")\r\nendif\r\n\r\nsertxd (\" ERR=\",#errorflag,cr,lf)\r\n\r\nif time = 60 then : time = 0 : endif\r\n\r\ngoto main1\r\nend\r\n\r\ninterrupt:return<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Opdatering 15. oktober 2016: BMS main print erstattet af :\u00a0http:\/\/ev-power.com.au\/webstore\/ev-power-bms\/mcu-micro-08a.html Denne BMS har open source kode, et basic program. Hardware er dog ikke open source, men meget let at efterligne hvis man vil. Eller m\u00e5ske omskrive s\u00e5 \u00a0koden k\u00f8rer p\u00e5 en arduino istedet. S\u00e5dan virker\u00a0BMS MCU-MICRO-08B fra ev-power-com.eu BMS MCU har to lysdioder. Den gr\u00f8nne &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/teknik\/bms-mcu-micro-08b-fra-ev-power-com-eu\/\" class=\"more-link\">L\u00e6s videre<span class=\"screen-reader-text\"> &#8220;BMS MCU-MICRO-08B fra ev-power-com.eu med open source kode&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[12,8],"tags":[63],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5n1uy-6b","_links":{"self":[{"href":"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-json\/wp\/v2\/posts\/383"}],"collection":[{"href":"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-json\/wp\/v2\/comments?post=383"}],"version-history":[{"count":14,"href":"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-json\/wp\/v2\/posts\/383\/revisions"}],"predecessor-version":[{"id":1042,"href":"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-json\/wp\/v2\/posts\/383\/revisions\/1042"}],"wp:attachment":[{"href":"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-json\/wp\/v2\/media?parent=383"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-json\/wp\/v2\/categories?post=383"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/techmind.dk\/citroen-c1-evie-elbil\/wp-json\/wp\/v2\/tags?post=383"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}