Python Arduino Serial

Bonjour, je vous remercie.
J'ai donc lu votre tuto, j'ai corrigé, tout fonctionne correctement.

Programme Arduino

//***ARDUINO 1.8.5***//
//***Arduino nano***//


#define BUF_LEN 128
char buffer[BUF_LEN];
char chaine_Python;
const int Led = 13;
unsigned long previousMillis = 0;
unsigned long prevuMillis = 0;
int Reste_chaine_Python_int = 0;
int Nb_tours = 0;
int compte_Nb_tours = 0;
int Etat = 0;
int Vitesse_T_sec = 1;
int Temps_tour = 0;
//*************************************************************
void setup()
{
 Serial.begin(9600);
 pinMode(Led, OUTPUT);
}
//*************************************************************
void loop()
{
 if (Serial.available() > 0)// Reçu de Python
 {
 Serial.print("Serial.available() : ");
 Serial.println(Serial.available());
 char chaine_Python = (Serial.read()); // Lit le premier octet reçu et le met dans la variable
 Serial.print("chaine_Python : ");
 Serial.println(chaine_Python);
 switch (chaine_Python) //si le premier octet correspond au code
 {
 case 65://65=A
 lecture_nombre_int();
 Nb_tours = Reste_chaine_Python_int;
 Serial.print("Nb_tours :");
 Serial.println(Nb_tours);
 Etat = 1;
 break;
 case 66://66=B
 lecture_nombre_int();
 Vitesse_T_sec = Reste_chaine_Python_int;
 Serial.print("Vitesse_T_sec :");
 Serial.println(Vitesse_T_sec);// Envoi vers Python
 break;
 }
 }
 if (Etat == 1)
 {
 Tour();
 }
}
//*************************************************************
void lecture_nombre_int()
{
 digitalWrite(Led, HIGH);
 Reste_chaine_Python_int = Serial.parseInt(); // lit le reste des octets
 digitalWrite(Led, LOW);
}
//************************************************************************
void Tour()
{
 unsigned long courentMillis = millis(); // Enregistrement du temps

 if ((compte_Nb_tours <= Nb_tours) && (courentMillis - prevuMillis >= 1000 / Vitesse_T_sec))
 {
 Temps_tour = 1000 / Vitesse_T_sec;
 Serial.print("Temps_tour :");
 Serial.println(Temps_tour);
 prevuMillis = courentMillis;
 digitalWrite(Led, HIGH);
 snprintf(buffer, sizeof(buffer), "C%d\n\r", compte_Nb_tours);
 Serial.println(buffer);
 digitalWrite(Led, LOW);
 compte_Nb_tours++;
 }
}

Programme Python

#***************** coding: UTF-8 ******************#
#**********environnement PYTHON IDE 3.7.4**********#
#****************Tk version 8.6.9******************#
#*****************ARDUINO 1.8.5********************#
#*****Arduino nano Atmege 328P old Bootloader******#

from serial import Serial
import serial.tools.list_ports
from tkinter import *
import tkinter.ttk as ttk

serial_port = None

# Liste des Ports
liste_ports = []
ports = serial.tools.list_ports.comports(include_links=False)
for port in ports:
    liste_ports.append(port.device)

# Selection du Port serie
def Selection_port(event):# sur evenement
    global serial_port
    port = combo.get()
    baudrate = '9600'
    try:
        serial_port = serial.Serial(port, baudrate, timeout=0.1) # initialise port serie forme réduite
        print ("Ouverture du port série : "+port+", vitesse : "+baudrate+" réussie")    
    except:
        #print ("Echec ouverture du port série "+port)
        tkinter.messagebox.showwarning("ERREUR communication","Echec ouverture du port série "+port)

def Valider():      
    global nombre  
    nombre = TextEntree_Nb_tour.get()    
    nombre = "A" + nombre + "\r" # code commande A
    nombre = nombre.encode()
    print ("Envoi Nb tours Arduino")
    print (nombre)
    serial_port.write(nombre)# Envoi port série
    
    Recu_Arduino()
    
def Recu_Arduino():
    id = Fenetre_Principale.after(100, Recu_Arduino)# Appel de la fonction tous les xxxms
    nombre_lu_Arduino = serial_port.readline().rstrip()# Lecture ports série
    nombre_lu_Arduino = str(nombre_lu_Arduino)# transforme en string
    if('C' in nombre_lu_Arduino):
        print ("Retour Arduino")
        print (nombre_lu_Arduino)# b'Cnombre'   
        Decode_nombre_lu_Arduino = nombre_lu_Arduino[3:]# Lecture à partir du 3ème caractère
        Decode_nombre_lu_Arduino = Decode_nombre_lu_Arduino[0:-1]# Efface dernier caractère
        Decode_nombre_lu_Arduino = int(Decode_nombre_lu_Arduino)# transforme en nombre entier
        print ("nombre_lu_Arduino")
        print (Decode_nombre_lu_Arduino)
        Retour_Arduino.config(text = Decode_nombre_lu_Arduino)

def Valeur_Tours(nouvelleValeur):## nouvelle valeur 'curseur Nb Tour/sec'
    global nombre
    nombre = nouvelleValeur
    nombre = "B" + nombre + "\r" # code commande B
    nombre = nombre.encode()
    print ("Envoi vitesse Arduino")
    print (nombre)
    serial_port.write(nombre)# Envoi port série
    

# Création Fenetre_Principale                 
Fenetre_Principale = Tk()
Fenetre_Principale.resizable(width=False, height=False) # pas de redimensionnement
Fenetre_Principale.geometry("600x150") # Taille Fenetre_Principale
Fenetre_Principale.title("Compteur Tour") # titre fenetre


# Création d'un widget combobox 'choix USB'
combo = ttk.Combobox(values=liste_ports, width = 6)
combo.bind('<<ComboboxSelected>>', Selection_port)# Fonction séléction du port
combo.place(x = 10, y = 5)

# création de widgets 'Label'
Affichage_Nb_tour = Label(Fenetre_Principale, text ='Nb Tours', width = 12, fg = 'RED', borderwidth=2, background='bisque', relief='sunken')
Affichage_Nb_tour.place(x = 205, y = 5)

# création de widgets 'Entry' Entrée nombre
TextEntree_Nb_tour = StringVar()
Entree_Nb_tour = Entry(Fenetre_Principale, textvariable = TextEntree_Nb_tour, border=3, width = 8)
Entree_Nb_tour.place(x = 320, y = 5)

# création de widgets 'Label'Affichage Arduino
Affichage_Arduino_Tour = Label(Fenetre_Principale, text ='Retour Arduino', width = 12, fg = 'RED', borderwidth=2, background='bisque', relief='sunken')
Affichage_Arduino_Tour.place(x = 400, y = 5)

# création de widgets 'Label'Retour Arduino
Retour_Arduino = Label(Fenetre_Principale, text = "", width = 5, borderwidth=2, background='white', relief='sunken', justify = LEFT)
Retour_Arduino.place(x = 515, y = 5)

# Création d'un widget Button 'Valider'
Bouton = Button(Fenetre_Principale, text ='Valider', command = Valider)
Bouton.place(x = 320, y = 40)

# Création d'un widget Scale 'curseur Nb Tour/sec'
Valeur_Nb_tour = StringVar()
Valeur_Nb_tour.set(1)# position départ du curseur Scale
Vitesse_Nb_tour = Scale(Fenetre_Principale,from_=1,to=5, orient=HORIZONTAL, length=180,width=12,label="Vitesse Tour/sec",\
                            tickinterval=1, variable=Valeur_Nb_tour, command = Valeur_Tours)
Vitesse_Nb_tour.place(x = 20, y = 30)

# démarrage :
Fenetre_Principale.mainloop()

C'est peut être moins le souk?
Cordialement.
Marc.