Anzeige eines Messwertes

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Achim Klein
User
Beiträge: 41
Registriert: Dienstag 21. Februar 2023, 13:57

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.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

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}")
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

print kann mehrere Argumente. display.write nicht. Und das kann auch keine Zahl, das musst du also erstmal in einen String formatieren.
Antworten