27. Lektion: ADC: Difference between revisions
| Line 36: | Line 36: | ||
<br> | <br> | ||
Umgerechnet entspricht das 0.01611328 Volt. Das ist ein Verhältnis von 208,4, also weniger als die Auflösung bei 8-bit, oder 0,5% vom Endwert. | Umgerechnet entspricht das 0.01611328 Volt. Das ist ein Verhältnis von 208,4, also weniger als die Auflösung bei 8-bit, oder 0,5% vom Endwert. | ||
== Kerntemperatur messen== | |||
Der 5. ADC-Kanal misst die Chiptemperatur. Mit dem folgen Script kann man diese ermitteln: | |||
<pre> | |||
import machine | |||
import utime | |||
core_temp = machine.ADC(4) | |||
core_temp.read_u16() | |||
14099 | |||
</pre> | |||
Ich habe bisher noch nicht heraus bekommen, wie der Wert umgerechnet werden muß. | |||
== Probleme beim ADC== | == Probleme beim ADC== | ||
Revision as of 14:06, 17 December 2023
Der DAC des Pico
Der Pico verfügt über einen ADC der durch einen Multiplexer (MUX) über 4 Eingänge verfügt.
- ADC0 - GPIO26
- ADC1 - GPIO27
- ADC2 - GPIO28
- ADC3 - interner Temperatur Sensor
Der ADC hat eine Auflösung von 12-bit. Allerdings ist die Kennline des ADC recht unlinear. Im Datenblatt wird eine nutzbare Genauigkeit von 8,7 bit angegeben.
Die maximale Messrate liegt bei 500kHz.
Ein simples Script
import machine
import utime
potentiometer = machine.ADC(26)
while True:
print(potentiometer.read_u16())
utime.sleep(1)
Ausgabe:
65535 # oberer Anschlag 53501 41050 4193 320 # unterer Anschlag 320 336
Hier ist sehen, das beim Poti am oberen Anschlag auch der maximale Wert auf 16-bit umgerechnet (65535) gemessen wird.
Am unteren Anschlag wird ein Wert 320 gemessen. Das direkte Kurzschließen von GPIO26 und GND brachte keine Veränderung.
Umgerechnet entspricht das 0.01611328 Volt. Das ist ein Verhältnis von 208,4, also weniger als die Auflösung bei 8-bit, oder 0,5% vom Endwert.
Kerntemperatur messen
Der 5. ADC-Kanal misst die Chiptemperatur. Mit dem folgen Script kann man diese ermitteln:
import machine import utime core_temp = machine.ADC(4) core_temp.read_u16() 14099
Ich habe bisher noch nicht heraus bekommen, wie der Wert umgerechnet werden muß.
Probleme beim ADC
- Rauschen des Schaltreglers
- schlechte Kontaktgabe beim Breadboard
- https://randomnerdtutorials.com/raspberry-pi-pico-analog-inputs-micropython/
- ADC des Raspberry Pi Pico
- ADC des ESP32
- ADC ADS1115
- https://www.ti.com/lit/ds/symlink/ads1115.pdf?ts=1693292712477&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252Fde-de%252FADS1115
- https://www.az-delivery.de/products/analog-digitalwandler-ads1115-mit-i2c-interface?variant=19034185039968
- https://www.berrybase.de/ads1115-4-kanal-16-bit-ad-wandler-breakout-board
- https://github.com/wollewald/ADS1115_mpy
- https://github.com/robert-hh/ads1x15
- https://pypi.org/project/ADS1115-mic-py/
- https://www.grzesina.de/az/blog_robotcar/ads1115rc.py
- https://how2electronics.com/ads1115-16-bit-adc-module-with-raspberry-pi-pico/