<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.opensourceecology.de/index.php?action=history&amp;feed=atom&amp;title=Solarbox_Powerbank_Firmware_V0.24</id>
	<title>Solarbox Powerbank Firmware V0.24 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.opensourceecology.de/index.php?action=history&amp;feed=atom&amp;title=Solarbox_Powerbank_Firmware_V0.24"/>
	<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.de/index.php?title=Solarbox_Powerbank_Firmware_V0.24&amp;action=history"/>
	<updated>2026-05-15T12:17:44Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Open Source Ecology - Germany</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.opensourceecology.de/index.php?title=Solarbox_Powerbank_Firmware_V0.24&amp;diff=11151&amp;oldid=prev</id>
		<title>Case am 15. September 2014 um 19:56 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.de/index.php?title=Solarbox_Powerbank_Firmware_V0.24&amp;diff=11151&amp;oldid=prev"/>
		<updated>2014-09-15T19:56:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Abfassung vorher&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 15. September 2014, 19:56 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This is still under development and acts as a kind of working horse, so please ignore all the redundant comments&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l116&quot; &gt;Zeile 116:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 118:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   lcd.print(&amp;quot;Solar-Charger&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   lcd.print(&amp;quot;Solar-Charger&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   lcd.setCursor(0, 1);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   lcd.setCursor(0, 1);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   lcd.print(&amp;quot;V.0.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;17&lt;/del&gt;, by OS 2014&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   lcd.print(&amp;quot;V.0.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;24&lt;/ins&gt;, by OS 2014&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   delay(10);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   delay(10);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   lcd.clear();&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   lcd.clear();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key oseg_04-mw_:diff::1.12:old-11150:rev-11151 --&gt;
&lt;/table&gt;</summary>
		<author><name>Case</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.de/index.php?title=Solarbox_Powerbank_Firmware_V0.24&amp;diff=11150&amp;oldid=prev</id>
		<title>Case am 15. September 2014 um 19:54 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.de/index.php?title=Solarbox_Powerbank_Firmware_V0.24&amp;diff=11150&amp;oldid=prev"/>
		<updated>2014-09-15T19:54:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Abfassung vorher&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 15. September 2014, 19:54 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;/&lt;/del&gt;* created on 08/04/2014&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* created on 08/04/2014&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    by Debasish Dutta/deba168&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    by Debasish Dutta/deba168&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l494&quot; &gt;Zeile 494:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 496:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/source&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key oseg_04-mw_:diff::1.12:old-11149:rev-11150 --&gt;
&lt;/table&gt;</summary>
		<author><name>Case</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.de/index.php?title=Solarbox_Powerbank_Firmware_V0.24&amp;diff=11149&amp;oldid=prev</id>
		<title>Case: Created page with &quot;/* created on 08/04/2014    by Debasish Dutta/deba168        extended on 04.09.2014 by OS/case           This code is in the public domain.    If you modify please inform me  ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.de/index.php?title=Solarbox_Powerbank_Firmware_V0.24&amp;diff=11149&amp;oldid=prev"/>
		<updated>2014-09-15T19:52:19Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;/* created on 08/04/2014    by Debasish Dutta/deba168        extended on 04.09.2014 by OS/case           This code is in the public domain.    If you modify please inform me  ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* created on 08/04/2014&lt;br /&gt;
   by Debasish Dutta/deba168&lt;br /&gt;
   &lt;br /&gt;
   extended on 04.09.2014 by OS/case&lt;br /&gt;
      &lt;br /&gt;
   This code is in the public domain.&lt;br /&gt;
   If you modify please inform me&lt;br /&gt;
   send a modified copy which will be helpfull for me&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;LiquidCrystal.h&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 The LCD-Display circuit:&lt;br /&gt;
 * LCD RS pin to digital pin 12&lt;br /&gt;
 * LCD Enable pin to digital pin 11&lt;br /&gt;
 * LCD D4 pin to digital pin 5&lt;br /&gt;
 * LCD D5 pin to digital pin 4&lt;br /&gt;
 * LCD D6 pin to digital pin 3&lt;br /&gt;
 * LCD D7 pin to digital pin 2&lt;br /&gt;
 * LCD R/W pin to ground&lt;br /&gt;
 * 10K resistor:&lt;br /&gt;
 * ends to +5V and ground&lt;br /&gt;
 * wiper to LCD VO pin (pin 3)&lt;br /&gt;
 */&lt;br /&gt;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// LEDs&lt;br /&gt;
int RED=8;           // To indicate discharged condition of battery&lt;br /&gt;
int GREEN=7;         // Solar or Grid-Power on&lt;br /&gt;
int redflag = 0;       // make red LED blink&lt;br /&gt;
int greenflag = 0;       // make green LED blink&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Sampling&lt;br /&gt;
float solar_volt =0; // variable for solar panel voltage&lt;br /&gt;
float bat_volt=0;    // variable for battery voltage&lt;br /&gt;
float bat_amp=0;    // variable for battery voltage&lt;br /&gt;
float old_bat_amp;&lt;br /&gt;
float sample1=0;     // reading from Arduino pin A0&lt;br /&gt;
float sample2=0;     // reading from Arduino pin A1&lt;br /&gt;
float sample3=0;     // reading from Arduino pin A2&lt;br /&gt;
int fenster = 100;     // Fensterbreite f. gleitenden Durchschnitt&lt;br /&gt;
float gleiwin[100];      // gleitender Durchschnitt&lt;br /&gt;
//gleiwin = new float[fenster];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Kalibrierwerte&lt;br /&gt;
float vsys = 0.0;    // gemessene Systemspannung&lt;br /&gt;
float r1 = 0.0;      // gemessener 1. Widerstand von Spannungsteiler VBat&lt;br /&gt;
float r2 = 0.0;      // gemessener 2. Widerstand von Spannungsteiuler VBat&lt;br /&gt;
float rel = 0.0;&lt;br /&gt;
float onebit;&lt;br /&gt;
float rfaktor = 0;  // Realitätsfaktor zum Abgleich mit meinem Multimeter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Charging Values&lt;br /&gt;
//float vladeschluss = 6.4; // Max-Voltage per cell 3.2&lt;br /&gt;
//float vladeschluss = 6.6; // Max-Voltage per cell 3.3&lt;br /&gt;
//float vladeschluss = 7.2; // Max-Voltage per cell 3.6 ==&amp;gt; this defines the upper level if 100% use of cell capacity is wanted&lt;br /&gt;
float vladeschluss = 7.1; // Max-Voltage per cell 3.55 ==&amp;gt; this defines the upper level if about 95% use of cell capacity is wanted - its healthier&lt;br /&gt;
&lt;br /&gt;
// float vladeschluss = 7.2; // Max-Voltage per cell 3.55 ==&amp;gt; this defines the upper level if about 95% use of cell capacity is wanted - its healthier&lt;br /&gt;
&lt;br /&gt;
//float cc = 0.5;   // constant current , current clamp for CC/CV-charging&lt;br /&gt;
&lt;br /&gt;
float cc = 0.9;   // constant current , current clamp for CC/CV-charging&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int pwm=6;           // pwm out put to mosfet&lt;br /&gt;
// float duty = 0.0;    // duty cycle prozente&lt;br /&gt;
int duty = 0;    // duty cycle prozente&lt;br /&gt;
int chargingflag = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Discharging Values&lt;br /&gt;
float ventladeschluss = 5.6; // Min-Voltage per cell 2.8 ==&amp;gt; Depth of Discharge (DOD) about 80%&lt;br /&gt;
int load=9;          //load is connected to pin-9&lt;br /&gt;
&lt;br /&gt;
// Floating Values&lt;br /&gt;
// float vfloating_min = 6.8;  // In floating-mode discharge until 3.45V per cell then start charging again ==&amp;gt; Hysteresis&lt;br /&gt;
float vfloating_min = 6.9;  // In floating-mode discharge until 3.45V per cell then start charging again ==&amp;gt; Hysteresis&lt;br /&gt;
float cv = vladeschluss;    // default value for charging, choose a smaller value for more battery-health&lt;br /&gt;
int floatingflag = 0;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Evaluation&lt;br /&gt;
unsigned long timestamp;&lt;br /&gt;
int charged_percent =0; &lt;br /&gt;
int i = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  &lt;br /&gt;
  TCCR0B = TCCR0B &amp;amp; 0b11111000 | 0x05; // setting prescaar for 61.03Hz pwm&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(pwm,OUTPUT);&lt;br /&gt;
  //pinMode(load,OUTPUT);&lt;br /&gt;
  pinMode(RED,OUTPUT);&lt;br /&gt;
  pinMode(GREEN,OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  digitalWrite(pwm,LOW);&lt;br /&gt;
  //digitalWrite(load,LOW);&lt;br /&gt;
  digitalWrite(RED,LOW);&lt;br /&gt;
  digitalWrite(GREEN,LOW);&lt;br /&gt;
  &lt;br /&gt;
  lcd.begin(16, 2);                     // columns, rows. size of display&lt;br /&gt;
  lcd.clear();                         // clear the screen&lt;br /&gt;
  /*&lt;br /&gt;
  lcd.print(&amp;quot;Solar-Charger&amp;quot;);&lt;br /&gt;
  lcd.setCursor(0, 1);&lt;br /&gt;
  lcd.print(&amp;quot;V.0.17, by OS 2014&amp;quot;);&lt;br /&gt;
  delay(10);&lt;br /&gt;
  lcd.clear();&lt;br /&gt;
  */&lt;br /&gt;
  &lt;br /&gt;
     &lt;br /&gt;
  // duty = 50;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// void loop_disabled()&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  lcd.setCursor(16,1); // set the cursor outside the display count&lt;br /&gt;
  lcd.print(&amp;quot; &amp;quot;);      // print empty character&lt;br /&gt;
  timestamp = millis();&lt;br /&gt;
  &lt;br /&gt;
  ///////////////////////////  VOLTAGE SENSING ////////////////////////////////////////////&lt;br /&gt;
  int zaehler = 10;&lt;br /&gt;
  &lt;br /&gt;
  for(int i=0;i&amp;lt;zaehler;i++)&lt;br /&gt;
  {&lt;br /&gt;
    sample1+=analogRead(A1);  //read the input voltage from solar panel&lt;br /&gt;
    sample2+=analogRead(A2);  //read the battery voltage &lt;br /&gt;
    sample3+=analogRead(A0);  //read the battery amperage &lt;br /&gt;
    delay(4);&lt;br /&gt;
  }&lt;br /&gt;
  sample1=sample1/zaehler; &lt;br /&gt;
  sample2=sample2/zaehler; &lt;br /&gt;
  sample3=sample3/zaehler; &lt;br /&gt;
  &lt;br /&gt;
  delay(1);&lt;br /&gt;
   &lt;br /&gt;
   // Kalibrierung&lt;br /&gt;
   // vsys = 4.200;         // gemessene Spannung am Arduino, versorgt durch PC&lt;br /&gt;
   // rfaktor = 1.1122;      // rfaktor bei PC-Versorgung&lt;br /&gt;
   vsys = 5.003;         // gemessene Spannung am BuckBoost-Converter ==&amp;gt; Arduino-5V-Pin (Achtung nicht Vin nehmen, da linearregler &amp;gt;= 7V verlangt !!!)&lt;br /&gt;
   rfaktor = 1;&lt;br /&gt;
   // rfaktor = 0.98;         // Anpassung an zweites Multimeter&lt;br /&gt;
   // vsys = 3.95;         // gemessene Spannung am Arduino, versorgt durch Batterie mit BuckBoost-Converter&lt;br /&gt;
   //// rfaktor = 1.10396;    // rfaktor bei buckbooster-Betrieb&lt;br /&gt;
   // rfaktor = 1.106;    // rfaktor gemittelt aus PC- und Buckbooster-Betrieb&lt;br /&gt;
   &lt;br /&gt;
   r1 = 9.96;            // gemessener R1 von Spannungsteiler Batterie&lt;br /&gt;
   r2 = 4.67;            // gemessener R2 von Spannungsteiler Batterie&lt;br /&gt;
    &lt;br /&gt;
   rel = (r1+r2)/r2;          // Verhältniss R2 zu R1&lt;br /&gt;
   onebit = vsys/1023;   // 1 Bit entspricht rund 4.89mV (=5.02V / 1024 Bit)&lt;br /&gt;
   &lt;br /&gt;
   // Spannungsteiler Batterie&lt;br /&gt;
   bat_volt = sample2*onebit;  // tatsächlich durch ADC gemessene VBat - uninterpretiert&lt;br /&gt;
   bat_volt = bat_volt/rfaktor;  // Realitätsfaktor gegenüber Multimetermessung: 1.1122&lt;br /&gt;
   bat_volt = bat_volt * rel; // umgerechnet in Gesamtvolt&lt;br /&gt;
&lt;br /&gt;
   // Spnnungsteiler ExternalInput (z.B. Solar, oder Netzteil)&lt;br /&gt;
   solar_volt = sample1*onebit;  // tatsächlich durch ADC gemessene VBat - uninterpretiert&lt;br /&gt;
   solar_volt = solar_volt/rfaktor;  // Realitätsfaktor gegenüber Multimetermessung: 1.1122&lt;br /&gt;
   solar_volt = solar_volt * rel; // umgerechnet in Gesamtvolt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  ///////////////////////////  AMPERAGE SENSING ////////////////////////////////////////////&lt;br /&gt;
   // Amperemessung Batterie, mittels ACS714&lt;br /&gt;
   //// sample3 = sample3+36;&lt;br /&gt;
   //sample3 = sample3+30;&lt;br /&gt;
   bat_amp = map(sample3, 102, 921, -300, 300)/10.00;&lt;br /&gt;
   //bat_amp = bat_amp * 0.5; // Anpassung an mein Multimeter  Alternative: Amp-Wert ca 1000 mal messen und mitteln, nähert sich dadurch meinem Multimeter an&lt;br /&gt;
   // bat_amp = bat_amp * 0.76; // Anpassung an mein Multimeter  Alternative: Amp-Wert ca 1000 mal messen und mitteln, nähert sich dadurch meinem Multimeter an&lt;br /&gt;
&lt;br /&gt;
   double Current = currentSensor(analogRead(0));  // Read  analog value&lt;br /&gt;
   // printDouble(Current, 2);                  &lt;br /&gt;
    bat_amp = (float) Current;&lt;br /&gt;
&lt;br /&gt;
// Glättung  &lt;br /&gt;
/*&lt;br /&gt;
   old_bat_amp = 0;&lt;br /&gt;
   for(i=1; i&amp;lt;(fenster-1); i++)&lt;br /&gt;
   {&lt;br /&gt;
     gleiwin[i-1] = gleiwin[i];&lt;br /&gt;
     old_bat_amp = old_bat_amp + gleiwin[i];&lt;br /&gt;
   }&lt;br /&gt;
   gleiwin[fenster-1] = bat_amp;&lt;br /&gt;
   old_bat_amp = old_bat_amp + bat_amp;&lt;br /&gt;
   bat_amp = old_bat_amp / fenster;&lt;br /&gt;
*/   &lt;br /&gt;
//bat_amp = bat_amp -0.9;&lt;br /&gt;
 bat_amp = bat_amp +2.9;&lt;br /&gt;
 bat_amp = bat_amp / 3;&lt;br /&gt;
&lt;br /&gt;
//   bat_amp = bat_amp +0.03;&lt;br /&gt;
   // bat_amp = bat_amp * fenster;&lt;br /&gt;
   &lt;br /&gt;
// old_bat_amp = bat_amp + old_bat_amp;&lt;br /&gt;
// old_bat_amp = old_bat_amp / 2;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  ///////////////////////////  DATA OUTPUT ////////////////////////////////////////////&lt;br /&gt;
  lcd.setCursor(0,0); // set the cursor at 1st col and 1st row&lt;br /&gt;
  lcd.print(&amp;quot;Vs:&amp;quot;);&lt;br /&gt;
  lcd.print(solar_volt);&lt;br /&gt;
  &lt;br /&gt;
  lcd.setCursor(8,0); // set the cursor at 8st col and 1st row&lt;br /&gt;
  lcd.print(&amp;quot;Vb:&amp;quot;);&lt;br /&gt;
  lcd.print(bat_volt);&lt;br /&gt;
  //lcd.print(rel);&lt;br /&gt;
  //lcd.print(sample2);&lt;br /&gt;
&lt;br /&gt;
  lcd.setCursor(8,1); // set the cursor at 8st col and 2nd row&lt;br /&gt;
  lcd.print(&amp;quot;Ab:             &amp;quot;);&lt;br /&gt;
  lcd.setCursor(11,1); // set the cursor at 8st col and 2nd row&lt;br /&gt;
  lcd.print(bat_amp);&lt;br /&gt;
  &lt;br /&gt;
  lcd.setCursor(0,1); // set the cursor at 8st col and 2nd row&lt;br /&gt;
  lcd.print(&amp;quot;Du:     &amp;quot;);&lt;br /&gt;
  lcd.setCursor(3,1); // set the cursor at 8st col and 2nd row&lt;br /&gt;
  // lcd.print(duty);&lt;br /&gt;
  lcd.print(sample3);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Serial.print(bat_volt);&lt;br /&gt;
   Serial.print(&amp;quot;,&amp;quot;);   &lt;br /&gt;
   Serial.print(bat_amp);&lt;br /&gt;
   Serial.print(&amp;quot;,&amp;quot;);   &lt;br /&gt;
   Serial.print(solar_volt);&lt;br /&gt;
   Serial.print(&amp;quot;,&amp;quot;);   &lt;br /&gt;
   Serial.print(chargingflag);&lt;br /&gt;
   Serial.print(&amp;quot;,&amp;quot;);   &lt;br /&gt;
   Serial.println(duty);&lt;br /&gt;
   // Serial.print(&amp;quot;,&amp;quot;);   &lt;br /&gt;
   // Serial.println(timestamp);&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
/////////////////////////// State machine ////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
if((solar_volt &amp;gt; bat_volt) &amp;amp;&amp;amp; (bat_volt &amp;gt; 0))    // external voltage input and battery are connected&lt;br /&gt;
{&lt;br /&gt;
 duty = cc / 0.0172;    // empirisch gemessen&lt;br /&gt;
 &lt;br /&gt;
 analogWrite(pwm,2.55 * duty);  // float charging &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
else duty = 0;&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if((solar_volt &amp;gt; bat_volt) &amp;amp;&amp;amp; (bat_volt &amp;gt; 0))    // external voltage input and battery are connected&lt;br /&gt;
{&lt;br /&gt;
  //********* Charge ************************&lt;br /&gt;
  // duty = 30;&lt;br /&gt;
  &lt;br /&gt;
  // duty = 25;&lt;br /&gt;
&lt;br /&gt;
  if(bat_volt &amp;lt; vladeschluss)  // Charging in CurrentClamp-mode (CC)&lt;br /&gt;
  {&lt;br /&gt;
    if(chargingflag == 0)  // OFF mode&lt;br /&gt;
    {&lt;br /&gt;
      if(bat_volt &amp;gt; vfloating_min) chargingflag = 0; // between 3.55 and 3.45 stay off, in floating-mode&lt;br /&gt;
      else chargingflag = 1;                         // below 3.45 restart charging, in floating-mode&lt;br /&gt;
    }&lt;br /&gt;
    else  // chargingflag != 0&lt;br /&gt;
    {&lt;br /&gt;
      if(chargingflag == 1)&lt;br /&gt;
      {&lt;br /&gt;
        //Serial.print(&amp;quot;CC-Charging: &amp;quot;);&lt;br /&gt;
         duty = cc / 0.0172;    // 0.0172 empirisch gemessene charging-rate pro 1% duty&lt;br /&gt;
        // if(bat_amp &amp;gt; cc &amp;amp;&amp;amp; duty &amp;gt; 0) duty = duty-1;&lt;br /&gt;
        // if(bat_amp == cc) duty = duty;  // do nothing&lt;br /&gt;
        // if(bat_amp &amp;lt; cc &amp;amp;&amp;amp; duty &amp;lt; 100) duty = duty+1;&lt;br /&gt;
        analogWrite(pwm,2.55 * duty);  // float charging &lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  if(bat_volt &amp;gt;= vladeschluss) // Charging in VoltageClamp-mode (CV)&lt;br /&gt;
  {&lt;br /&gt;
    if(bat_amp &amp;gt; cc/10) // Charging in VoltageClamp-mode (CV)&lt;br /&gt;
    {&lt;br /&gt;
      //Serial.print(&amp;quot;CV-Charging: &amp;quot;);&lt;br /&gt;
      if(bat_volt &amp;gt; cv &amp;amp;&amp;amp; duty &amp;gt; 0) duty = duty-1;&lt;br /&gt;
      if(bat_volt == cv) duty = duty;  // do nothing&lt;br /&gt;
      if(bat_volt &amp;lt; cv &amp;amp;&amp;amp; duty &amp;lt; 100) duty = duty+1;&lt;br /&gt;
      analogWrite(pwm,2.55 * duty);  // float charging &lt;br /&gt;
      chargingflag = 2;&lt;br /&gt;
    }&lt;br /&gt;
    else // (bat_amp &amp;lt;= cc/10)) // shut down when battery is fully charged&lt;br /&gt;
    {&lt;br /&gt;
      // Serial.println(&amp;quot;Discharging: &amp;quot;);&lt;br /&gt;
      duty = 0;&lt;br /&gt;
      analogWrite(pwm,duty);  // stop charging&lt;br /&gt;
      chargingflag = 0;  &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
} // endif solar_volt &amp;gt; bat_volt&lt;br /&gt;
else // solar_volt &amp;lt;= bat_volt // No external voltage input or no battery is connected&lt;br /&gt;
{&lt;br /&gt;
  // Stop charging anyway&lt;br /&gt;
  duty = 0;&lt;br /&gt;
  analogWrite(pwm,0); &lt;br /&gt;
  chargingflag = 0;&lt;br /&gt;
  &lt;br /&gt;
  //********************* Discharge **********************&lt;br /&gt;
  //Serial.print(&amp;quot;DisCharging: &amp;quot;);&lt;br /&gt;
  // Low voltage protection for the Battery&lt;br /&gt;
  if( bat_volt &amp;lt;= ventladeschluss )&lt;br /&gt;
  {&lt;br /&gt;
    chargingflag = 1;&lt;br /&gt;
    &lt;br /&gt;
    // Verbraucher abklemmen&lt;br /&gt;
    &lt;br /&gt;
    // Arduino shutdown (or go sleep ?)&lt;br /&gt;
  }  &lt;br /&gt;
  &lt;br /&gt;
} // end else&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
delay(4);&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////LED INDICATION ////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Red LED will glow when any Solar-Power comes in&lt;br /&gt;
if(solar_volt &amp;gt; 0) {&lt;br /&gt;
  digitalWrite(RED,HIGH);&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(RED,LOW);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Green LED will glow when a battery is connected&lt;br /&gt;
if(bat_volt &amp;gt; 0) {&lt;br /&gt;
  digitalWrite(GREEN,HIGH);&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(GREEN,LOW);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
// external voltage is there, but to weak for charging.&lt;br /&gt;
if(solar_volt &amp;lt;= bat_volt) &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  digitalWrite(RED,HIGH);&lt;br /&gt;
}&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if (chargingflag == 1)&lt;br /&gt;
{&lt;br /&gt;
 // Red LED will blink continiously indicating charging is going on&lt;br /&gt;
 if(redflag == 0) &lt;br /&gt;
 {&lt;br /&gt;
   digitalWrite(RED,HIGH);&lt;br /&gt;
   redflag = 1;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
   digitalWrite(RED,LOW);&lt;br /&gt;
   redflag = 0;&lt;br /&gt;
 }&lt;br /&gt;
 delay(5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (chargingflag == 2)&lt;br /&gt;
{&lt;br /&gt;
 // Green LED will blink continiously indicating charging is going on&lt;br /&gt;
 if(greenflag == 0) &lt;br /&gt;
 {&lt;br /&gt;
   digitalWrite(GREEN,HIGH);&lt;br /&gt;
   greenflag = 1;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
   digitalWrite(GREEN,LOW);&lt;br /&gt;
   greenflag = 0;&lt;br /&gt;
 }&lt;br /&gt;
 delay(5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
} // end loop()&lt;br /&gt;
&lt;br /&gt;
//======================================================================&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void test_loop(){&lt;br /&gt;
&lt;br /&gt;
  double Current = currentSensor(analogRead(0));  // Read  analog value&lt;br /&gt;
&lt;br /&gt;
  Serial.print(&amp;quot;, VariationFromNull: &amp;quot;); &lt;br /&gt;
  printDouble(Current, 2);                                     // display Current&lt;br /&gt;
  Serial.print(&amp;quot; A&amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  delay(1000);&lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// --------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
// Print decimal numbers&lt;br /&gt;
&lt;br /&gt;
void printDouble(double val, byte precision) {&lt;br /&gt;
&lt;br /&gt;
  Serial.print (int(val));                                     // Print int part&lt;br /&gt;
&lt;br /&gt;
  if( precision &amp;gt; 0) {                                         // Print decimal part&lt;br /&gt;
    Serial.print(&amp;quot;.&amp;quot;);&lt;br /&gt;
    unsigned long frac, mult = 1;&lt;br /&gt;
    byte padding = precision -1;&lt;br /&gt;
    while(precision--) mult *=10;&lt;br /&gt;
    if(val &amp;gt;= 0) frac = (val - int(val)) * mult; else frac = (int(val) - val) * mult;&lt;br /&gt;
    unsigned long frac1 = frac;&lt;br /&gt;
    while(frac1 /= 10) padding--;&lt;br /&gt;
    while(padding--) Serial.print(&amp;quot;0&amp;quot;);&lt;br /&gt;
    Serial.print(frac,DEC) ;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Read 1.1V reference against AVcc&lt;br /&gt;
&lt;br /&gt;
long readInternalVcc() {&lt;br /&gt;
&lt;br /&gt;
  long result;&lt;br /&gt;
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);&lt;br /&gt;
  delay(2);                                                    // Wait for Vref to settle&lt;br /&gt;
  ADCSRA |= _BV(ADSC);                                         // Convert&lt;br /&gt;
  while (bit_is_set(ADCSRA,ADSC));&lt;br /&gt;
  result = ADCL;&lt;br /&gt;
  result |= ADCH&amp;lt;&amp;lt;8;&lt;br /&gt;
  result = 1126400L / result;                                  // Back-calculate AVcc in mV&lt;br /&gt;
  return result;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Calculate current with Allegro ACS714&lt;br /&gt;
&lt;br /&gt;
double currentSensor(int RawADC) {&lt;br /&gt;
&lt;br /&gt;
  int    Sensitivity    = 66; // mV/A&lt;br /&gt;
&lt;br /&gt;
  long   InternalVcc    = readInternalVcc();&lt;br /&gt;
  double ZeroCurrentVcc = InternalVcc / 2;&lt;br /&gt;
  double SensedVoltage  = (RawADC * InternalVcc) / 1024;&lt;br /&gt;
  double Difference     = SensedVoltage - ZeroCurrentVcc;&lt;br /&gt;
  double SensedCurrent  = Difference / Sensitivity;&lt;br /&gt;
&lt;br /&gt;
  //Serial.print(&amp;quot;ADC: &amp;quot;);&lt;br /&gt;
  //Serial.print(RawADC);&lt;br /&gt;
  //Serial.print(&amp;quot;/1024&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  //Serial.print(&amp;quot;, Sensed Voltage: &amp;quot;);&lt;br /&gt;
  //printDouble(SensedVoltage, 1);&lt;br /&gt;
  //Serial.print(&amp;quot;mV&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  //Serial.print(&amp;quot;, 0A at: &amp;quot;);&lt;br /&gt;
  // printDouble(ZeroCurrentVcc, 1);&lt;br /&gt;
  //Serial.print(&amp;quot;mV&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  return SensedCurrent;                                        // Return the Current&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Case</name></author>
	</entry>
</feed>