<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Query battery status without board]]></title><description><![CDATA[<p dir="auto">How can I query the battery status without board during Wipy/Lopy?<br />
With Board I am running like this.</p>
<pre><code>    # takes battery voltage readings
    from machine import ADC #Batteriestatus
    def adc_battery():
    	adc = ADC(0)                                        # initialise adc hardware
    	adc_c = adc.channel(attn=3, pin='P16')              # create an object to sample ADC on pin 16 with attenuation of 11db (config 3)
    	adc_samples = []                                    # initialise the list
    	for count in range(100):                            # take 100 samples and append them into the list
    		adc_samples.append(int(adc_c()))
    	adc_samples = sorted(adc_samples)                   # sort the list
    	adc_median = adc_samples[int(len(adc_samples)/2)]   # take the center list row value (median average)
    # apply the function to scale to volts
    	adc_median = adc_median * 2 / 4095 / 0.3275
    	#print(adc_samples)
    	return adc_median
    lipo_voltage = adc_battery() #Batteriewerte zuordnen
    print('Batterie = ' + str(lipo_voltage) + ' Volt') #Wert anzeigen
    # takes battery voltage readings
</code></pre>
]]></description><link>https://forum.pycom.io/topic/4769/query-battery-status-without-board</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 05:59:09 GMT</lastBuildDate><atom:link href="https://forum.pycom.io/topic/4769.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 30 Apr 2019 18:42:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Query battery status without board on Tue, 30 Apr 2019 18:42:12 GMT]]></title><description><![CDATA[<p dir="auto">How can I query the battery status without board during Wipy/Lopy?<br />
With Board I am running like this.</p>
<pre><code>    # takes battery voltage readings
    from machine import ADC #Batteriestatus
    def adc_battery():
    	adc = ADC(0)                                        # initialise adc hardware
    	adc_c = adc.channel(attn=3, pin='P16')              # create an object to sample ADC on pin 16 with attenuation of 11db (config 3)
    	adc_samples = []                                    # initialise the list
    	for count in range(100):                            # take 100 samples and append them into the list
    		adc_samples.append(int(adc_c()))
    	adc_samples = sorted(adc_samples)                   # sort the list
    	adc_median = adc_samples[int(len(adc_samples)/2)]   # take the center list row value (median average)
    # apply the function to scale to volts
    	adc_median = adc_median * 2 / 4095 / 0.3275
    	#print(adc_samples)
    	return adc_median
    lipo_voltage = adc_battery() #Batteriewerte zuordnen
    print('Batterie = ' + str(lipo_voltage) + ' Volt') #Wert anzeigen
    # takes battery voltage readings
</code></pre>
]]></description><link>https://forum.pycom.io/post/27600</link><guid isPermaLink="true">https://forum.pycom.io/post/27600</guid><dc:creator><![CDATA[Wolli01]]></dc:creator><pubDate>Tue, 30 Apr 2019 18:42:12 GMT</pubDate></item><item><title><![CDATA[Reply to Query battery status without board on Tue, 30 Apr 2019 19:41:02 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.pycom.io/uid/3568">@Wolli01</a> Assuming that with &quot;board&quot; you mean Expansion Board, you can rebuild the same principle with just a few external components, namely a voltage divider consisting of two resistors. The one on the expansion board uses 56k and 116k, but you can as well use identical values like 470k and 470k. Then you have to divide by 0.5 instead of 0.3275. Higher values are better, since this voltage divider will always consume power without an additional benefit. In case of 2*470k ~ 3.5µA. If you do not want that, you have add an external switch for the voltage divider (e.g. an p-channel mosfet transistor). Assuming that the output voltage of a GPIO port with small load is almost the same as the supply voltage, you can also drive the voltage divider from an GPIO output pin.<br />
Add a small capacitor (e.g. 10 nF) between the ADC input and GND. The noise of the ADC is lower and you might need fewer than 100 samples for your median.</p>
<p dir="auto">A few notes about your code:</p>
<ul>
<li>list append is slow. Allocating the list once and then filling it is much faster.<br />
. you can use adc_samples.sort() for an in-place sort.</li>
</ul>
<p dir="auto">P.S.: Sorry if I confused you.</p>
]]></description><link>https://forum.pycom.io/post/27602</link><guid isPermaLink="true">https://forum.pycom.io/post/27602</guid><dc:creator><![CDATA[robert-hh]]></dc:creator><pubDate>Tue, 30 Apr 2019 19:41:02 GMT</pubDate></item><item><title><![CDATA[Reply to Query battery status without board on Wed, 01 May 2019 07:34:28 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.pycom.io/uid/98">@robert-hh</a><br />
Thank you for your detailed description.<br />
But I thought it would be easier to do that without rebuilding anything.</p>
]]></description><link>https://forum.pycom.io/post/27606</link><guid isPermaLink="true">https://forum.pycom.io/post/27606</guid><dc:creator><![CDATA[Wolli01]]></dc:creator><pubDate>Wed, 01 May 2019 07:34:28 GMT</pubDate></item><item><title><![CDATA[Reply to Query battery status without board on Wed, 01 May 2019 07:36:25 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.pycom.io/uid/3568">@Wolli01</a> This is not rebuildung everything, It's just two resistors and one capacitator. Pretty simply.</p>
]]></description><link>https://forum.pycom.io/post/27607</link><guid isPermaLink="true">https://forum.pycom.io/post/27607</guid><dc:creator><![CDATA[robert-hh]]></dc:creator><pubDate>Wed, 01 May 2019 07:36:25 GMT</pubDate></item></channel></rss>