27. Lektion: ADC: Unterschied zwischen den VersionenAus Attraktor Wiki
Version vom 17. Dezember 2023, 17:54 Uhr
InhaltsverzeichnisDer DAC des PicoDer Pico verfügt über einen 12-bit ADC der durch einen Multiplexer (MUX) auf 5 Eingänge umgeschaltet werden kann.
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. Eine Instanz von ADC erstellenEine Instanz von ADS zu erstellen ist ganz einfach. Außer der ID oder des GPIO muss und kann nichts weter angegeben werden: from machine import ADC adc_0 = ADC(0) # mit ID adc_1 = ADC(27) # mit GPIO Die Methoden von ADCDie Methoden von ADC sind sehr übersichtlich. Es ist nur eine implementiert. wert = adc.read_u16() Ein simples ScriptDer Klasse ADC kann der gewünschte ADC-Kanal mit der Kanalnummer (0 ...4) oder der GPIO-Nummer (26, 27, 28) mitgeteilt werden. 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 Der ADC hat eine Auflösung von 12-bit, der Rückgabewert wird aber als 16-bit Wert ausgegeben. Also um 4-bit nach links verschoben.
Messwert in Spannung umrechnenUm den Messwert (0 ... 65535) in Volt umzurechnen benötigen wir einen Umrechnungsfaktor. Ich habe zu_volt genannt. zu_volt = 3.3 / 65535 messwert = 32578 spannung = messwert * zu_volt 1.640458 Vbus messenWie der Ausschnitt aus dem Schaltplan des Pico zeigt wird Vbus durch einen Spannungsteiler auf einen für den ADC brauchbaren Wert geteilt.
Temperatur messenDer 5. ADC-Kanal misst die Chiptemperatur. Hier ein Beispiel zur Messung der Chiptemperatur: from machine import ADC from time import sleep temp = ADC(4) zu_volt = 3.3 / (65535) while True: messwert = temp.read_u16() spannung = messwert * zu_volt temperatur = 27 - (spannung - 0.706) / 0.001721 print("Temperatur (°C): ", temperatur) sleep(2) Die Informationen hierzu habe von https://www.elektronik-kompendium.de/sites/raspberry-pi/2612121.htm. Probleme beim ADCADC untersuchenHierzu habe ich eine eigene Seite gemacht: Pico ADC untersuchen
|