Pico ADC untersuchen: Unterschied zwischen den Versionen

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche
(Created page with "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 m...")
 
Zeile 50: Zeile 50:
 
</pre>
 
</pre>
  
 +
Ergebniss:
 +
<pre>
 +
>>> %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]
 +
</pre>
  
  

Version vom 17. Dezember 2023, 14:05 Uhr

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)

Ergebniss:

>>> %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]


ADC Test
Spannung Wert Volt
0,000 0 0
1 0 1
2 1 0
3 1 1