Pico ADC untersuchen: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 50: | Line 50: | ||
</pre> | </pre> | ||
Ergebnis: | |||
<pre> | <pre> | ||
>>> %Run -c $EDITOR_CONTENT | >>> %Run -c $EDITOR_CONTENT | ||
| Line 56: | Line 56: | ||
MPY: soft reboot | MPY: soft reboot | ||
******************************** | ******************************** | ||
400 272 [324.5625, 323.5, 324.8125, 323.6875, 324.0, 323.625, 324.4375, 323.75, 323.625, 323.4375, 324.0, 323.5625, 323.1875, 323.4375, 323.5, 324.0, 323.75, 323.5, 324.0, 324.1875, 323.8125, 324.0, 324.0625, 324.4375, 324.5, 324.4375, 323.625, 324.9375, 324.5625, 324.0625, 323.3125, 324.75] | 400 272 | ||
[324.5625, 323.5, 324.8125, 323.6875, 324.0, 323.625, 324.4375, 323.75, | |||
323.625, 323.4375, 324.0, 323.5625, 323.1875, 323.4375, 323.5, 324.0, | |||
323.75, 323.5, 324.0, 324.1875, 323.8125, 324.0, 324.0625, 324.4375, 324.5, | |||
324.4375, 323.625, 324.9375, 324.5625, 324.0625, 323.3125, 324.75] | |||
</pre> | </pre> | ||
Ich habe die Ausgabe zur besseren Darstellung bearbeitet. | |||
{| class="wikitable" style="margin:left" | {| class="wikitable" style="margin:left" | ||
Revision as of 15:07, 17 December 2023
Die ADC's in den Microcontrollern sind meist von schlechter Qualität. Für den Raspberry Pi Pico und den ESP32 ließt man das immer wiedeer im Internet. Deshalb möchte ich mir selbst einen Eindruck davon schaffen, was ich vom ADC des Pico halten kann.
Deshalb habe ich ein Programm geschrieben, das die maximalen, minimalen und duchschnitts Werte ermittelt:
# adc_repeat_test_01.py
#
# V. 1.0
# 17.12.2023
# Peter Stoeck
#
# Das Programm misst eine Spannung am ADC.
# Es werden Maximum und Minimum jeder über
# die gesammte messzeit erfasst.
# Es werden messungen Messungen aufaddiert und
# daraus der Durchschnitt errechnet und gespeichert
# Es werden runden Runden davon absolviert.
# Am Ende werden Max, Min, die Durchschnittswerte
# ausgegeben.
import machine
import utime
potentiometer = machine.ADC(26)
runden = 32
verz = 10 # in ms
messungen = 256
werte = 0
maxi = 0
mini = 100000
sammlung = []
for r in range(runden):
werte = 0
for i in range(messungen):
wert = potentiometer.read_u16()
if wert > maxi:
maxi = wert
elif wert < mini:
mini = wert
werte += wert
utime.sleep_ms(verz)
sammlung.append(werte / messungen)
print('*', end='')
print()
print(maxi, mini, sammlung)
Ergebnis:
>>> %Run -c $EDITOR_CONTENT MPY: soft reboot ******************************** 400 272 [324.5625, 323.5, 324.8125, 323.6875, 324.0, 323.625, 324.4375, 323.75, 323.625, 323.4375, 324.0, 323.5625, 323.1875, 323.4375, 323.5, 324.0, 323.75, 323.5, 324.0, 324.1875, 323.8125, 324.0, 324.0625, 324.4375, 324.5, 324.4375, 323.625, 324.9375, 324.5625, 324.0625, 323.3125, 324.75]
Ich habe die Ausgabe zur besseren Darstellung bearbeitet.
| Spannung | Wert | Volt |
|---|---|---|
| 0,000 | 0 | 0 |
| 1 | 0 | 1 |
| 2 | 1 | 0 |
| 3 | 1 | 1 |