Scheda Arduino e Linguaggio Python

Buongiorno ho un programma di esempio che non mi funziona.

import serial
import time
arduino = serial.Serial('COM3',9600)
time.sleep(1)

while(True): 
    val = input("Inserisci carattere: ") 
    if val=="H": 
        arduino.write("H").
        print("LED acceso")
    if val=="L": 
        arduino.write("L")
        print("LED spento")
    if val!="H" and val!="L": 
        print("Carattere non valido")

arduino.close()

Il programma si blocca su arduino.write("H"). Il sistema dice Eccezione non valida. unicode strings are not supported, please encode to bytes: 'H'
Quale è la sintassi corretta e come risolvo?.La versione di Python è la 3.8 Grazie

È più una domanda da forum Python anche se la seriale è chiamata 'arduino' :smiley:

Comunque l'errore dice che non si possono inviare stringhe (o singoli caratteri che in Py è la stessa cosa) unicode. Ogni stringa va encodata in sequenza di byte, o creata già come sequenza di byte (accettando l'encoding implicito del sistema in uso):

arduino.write("L".encode("ascii"))
arduino.write(b"L")

La condizione val!="H" and val!="L" si può scrivere più succintamente con il test di appartenenza:

val not in "HL"

Grazie mille ho lanciato il programma e funziona correttamente. Saluti