|
|
(17 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
− | 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. | + | 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 wieder im Internet. Deshalb möchte ich mir selbst einen Eindruck davon schaffen, was ich vom ADC des Pico halten kann. |
| <br> | | <br> |
| + | == Ein Hilfsprogramm== |
| Deshalb habe ich ein Programm geschrieben, das die maximalen, minimalen und duchschnitts Werte ermittelt: | | Deshalb habe ich ein Programm geschrieben, das die maximalen, minimalen und duchschnitts Werte ermittelt: |
| <pre> | | <pre> |
− | # adc_repeat_test_01.py | + | # adc_repeat_test_02.py |
| # | | # |
| # V. 1.0 | | # V. 1.0 |
Zeile 45: |
Zeile 46: |
| sammlung.append(werte / messungen) | | sammlung.append(werte / messungen) |
| print('*', end='') | | print('*', end='') |
| + | |
| + | # Auswertung |
| + | d_durchschnitt = sum(sammlung) / runden |
| + | d_max = max(sammlung) |
| + | d_min = min(sammlung) |
| + | a_max = d_max - d_durchschnitt |
| + | a_min = d_min - d_durchschnitt |
| + | |
| + | # Ausgabe |
| print() | | print() |
− | print(maxi, mini, sammlung) | + | print('===== Ergebnisse =====') |
| + | print() |
| + | print('--- Einzelmessungen ---') |
| + | print('Durchschnitt:', d_durchschnitt) |
| + | print('Max-Wert:', maxi) |
| + | print('Min-Wert:', mini) |
| + | print('maximale Abweichung:', maxi - d_durchschnitt) |
| + | print('minimale Abweichung:', d_durchschnitt - mini) |
| + | print('gesammte Abweichung:', maxi - mini) |
| + | print() |
| + | print('--- Mittelwerte ---') |
| + | print('Durchschnitt:', d_durchschnitt) |
| + | print('maximale Abweichung:', d_max) |
| + | print('minimale Abweichung:', d_min) |
| + | print('gesammte Abweichung:', d_max - d_min) |
| | | |
| </pre> | | </pre> |
| + | |
| + | == Messungen== |
| + | Ich habe diese Messung bei einer Eingangsspannung von 0,000 Volt durchgeführt. |
| + | <br> |
| + | Dabei wurden 32 Runden mit jeweil 256 Messungen absolviert. |
| + | <br> |
| + | Ergebnis: |
| + | <pre> |
| + | ===== Ergebnisse ===== |
| + | |
| + | --- Einzelmessungen --- |
| + | Durchschnitt: 323.7227 |
| + | Max-Wert: 384 |
| + | Min-Wert: 256 |
| + | maximale Abweichung: 60.27734 |
| + | minimale Abweichung: 67.72266 |
| + | gesammte Abweichung: 128 |
| + | |
| + | --- Mittelwerte --- |
| + | Durchschnitt: 323.7227 |
| + | maximale Abweichung: 324.6875 |
| + | minimale Abweichung: 322.75 |
| + | gesammte Abweichung: 1.9375 |
| + | </pre> |
| + | <br> |
| + | === Einzelmessungen=== |
| | | |
| | | |
| + | === Gemittelte Messungen=== |
| | | |
| + | == Fazit== |
| + | <!--- |
| {| class="wikitable" style="margin:left" | | {| class="wikitable" style="margin:left" |
| |+ ADC Test | | |+ ADC Test |
Zeile 65: |
Zeile 118: |
| | 3 || 1|| 1 | | | 3 || 1|| 1 |
| |} | | |} |
| + | ---> |
Aktuelle Version vom 23. Januar 2024, 07:55 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 wieder im Internet. Deshalb möchte ich mir selbst einen Eindruck davon schaffen, was ich vom ADC des Pico halten kann.
Ein Hilfsprogramm
Deshalb habe ich ein Programm geschrieben, das die maximalen, minimalen und duchschnitts Werte ermittelt:
# adc_repeat_test_02.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='')
# Auswertung
d_durchschnitt = sum(sammlung) / runden
d_max = max(sammlung)
d_min = min(sammlung)
a_max = d_max - d_durchschnitt
a_min = d_min - d_durchschnitt
# Ausgabe
print()
print('===== Ergebnisse =====')
print()
print('--- Einzelmessungen ---')
print('Durchschnitt:', d_durchschnitt)
print('Max-Wert:', maxi)
print('Min-Wert:', mini)
print('maximale Abweichung:', maxi - d_durchschnitt)
print('minimale Abweichung:', d_durchschnitt - mini)
print('gesammte Abweichung:', maxi - mini)
print()
print('--- Mittelwerte ---')
print('Durchschnitt:', d_durchschnitt)
print('maximale Abweichung:', d_max)
print('minimale Abweichung:', d_min)
print('gesammte Abweichung:', d_max - d_min)
Messungen
Ich habe diese Messung bei einer Eingangsspannung von 0,000 Volt durchgeführt.
Dabei wurden 32 Runden mit jeweil 256 Messungen absolviert.
Ergebnis:
===== Ergebnisse =====
--- Einzelmessungen ---
Durchschnitt: 323.7227
Max-Wert: 384
Min-Wert: 256
maximale Abweichung: 60.27734
minimale Abweichung: 67.72266
gesammte Abweichung: 128
--- Mittelwerte ---
Durchschnitt: 323.7227
maximale Abweichung: 324.6875
minimale Abweichung: 322.75
gesammte Abweichung: 1.9375
Einzelmessungen
Gemittelte Messungen
Fazit