Seite 1 von 1

Anzeige eines Messwertes

Verfasst: Sonntag 21. Mai 2023, 11:38
von Achim Klein
Zum Anzeigen eines Messwertes auf einem SPI Display und Anzeige auf dem PC nutze ich dieses Programm:

Code: Alles auswählen

from ili934xnew import ILI9341, color565
from machine import Pin, SPI
import tt14
import tt24
import tt32
from machine import ADC
from utime import sleep

spi = SPI(1, baudrate=40000000, sck=Pin(14), mosi=Pin(11))
display = ILI9341(spi, dc=Pin(15), cs=Pin(13), rst=Pin(12), w=320, h=240, r=3)

adc0 = ADC(0) 

while True:
    # ADC0 als Dezimalzahl lesen
    read0 = adc0.read_u16() # Poti
    read4 = read0 / 65536 * 3.25
    
    print('Poti: ', read0) # Anzeige Poti
    print("V (Poti):", read4) # Anzeige V sys
    print()

    sleep(1)
   
    display.set_font(tt24) # Angabe Grösse font (Schrift)
    display.set_pos(40, 180) # setze an Position Spalte / Zeile
    display.write("V (Poti) : ", read4) # Anzeige 
Damit bekomme ich die folgende Fehlermeldung:
TypeError: function takes 2 positional arguments but 3 were given
Leider versteh ich nicht warum.

Re: Anzeige eines Messwertes

Verfasst: Sonntag 21. Mai 2023, 12:05
von Sirius3
Jetzt wäre es noch schön, wenn man wüsste, wo der Fehler auftritt.
`print` kann beliebig viele Variablen ausgeben, `write` nur einen String.

Code: Alles auswählen

display.write(f"V (Poti): {read4:.2f}")

Re: Anzeige eines Messwertes

Verfasst: Sonntag 21. Mai 2023, 12:08
von __deets__
print kann mehrere Argumente. display.write nicht. Und das kann auch keine Zahl, das musst du also erstmal in einen String formatieren.