Arduino Micro :pas de TX

Bonjour,

Dans un souci de taille, j'ai opté pour une arduino micro. Je transfert donc mon programme et là, je constate que la carte n'envoi rien sur l’USB (TX). A l'origine, j'utilisais une Arduino UNO et tout fonctionnais parfaitement :

Un soft PC de ma création envoi des données par l'USB à l'Arduino. Pour un autocontrôle, la carte renvoi les données reçu au soft PC; si les données sont différentes, il incrémente un compteur d'erreur de trame.

Le problème est que je ne reçois rien ..... Sur mon soft, je clique sur envoyer, la LED RX de l'arduino micro clignote mais pas la TX.

Avez-vous une idée ? Quelque chose de la doc m'échapperais-t-il ?

Merci

Cordialement, Le réparateur de PC

lereparateurdepc: Bonjour,

Dans un souci de taille, j'ai opté pour une arduino micro. Je transfert donc mon programme et là, je constate que la carte n'envoi rien sur l’USB (TX). A l'origine, j'utilisais une Arduino UNO et tout fonctionnais parfaitement :

Un soft PC de ma création envoi des données par l'USB à l'Arduino. Pour un autocontrôle, la carte renvoi les données reçu au soft PC; si les données sont différentes, il incrémente un compteur d'erreur de trame.

Le problème est que je ne reçois rien ..... Sur mon soft, je clique sur envoyer, la LED RX de l'arduino micro clignote mais pas la TX.

Avez-vous une idée ? Quelque chose de la doc m'échapperais-t-il ?

bonjour je n'ai pas d'arduino micro , mais il semble qu'il y ai une subtilité avec les com :

Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data using the ATmega32U4 hardware serial capability. Note that on the Micro, [u]the Serial class refers to USB/u communication; for TTL serial on pins 0 and 1, [u]use the Serial1 class[/u].

re,

Mince, en fait quand je disais TX et RX je parlais des LED qui indique le transfert USB. Oui, en effet, avec la UNO, les briches TX et RX sont lié à l'USB mais pas avec la micro.

Je n'utilise pas ces broches mais l'USB. Comme, lors du transfert, les 2 LED Tx et Rx clignote, j'en déduit qu'elle sont ratachées à l'USB.

Pour résumer : il faut utiliser Serial.print pour l'USB et Serial1.print pour la COM sur les broches Tx et Rx.

Après un test, j'ai bien un retour de donnée (avec LED Tx) mais uniquement avec le moniteur port série d'Arduino pas avec mon soft.... alors que la ligne (Serial.println(charBuf)) est bien exécutée dans les 2 cas. Je ne vois pas pourquois ça plante .. :(

Cordialement, Le réparateur de PC

lereparateurdepc: ... Après un test, j'ai bien un retour de donnée (avec LED Tx) mais uniquement avec le moniteur port série d'Arduino pas avec mon soft.... alors que la ligne (Serial.println(charBuf)) est bien exécutée dans les 2 cas. Je ne vois pas pourquois ça plante .. :( ...

Peut etre lire ça http://arduino.cc/en/Guide/ArduinoLeonardoMicro?from=Guide.ArduinoLeonardo#toc6 et la section Good Coding Practice

re,

J’ai bien lu cette page et pas mal de fois; praincipalement l’histoire du delay(1) mais mon programme intègre déjà une pause de 100ms …
Voici le code complet légèrement modifié pour Arduino Micro :

// /!\ Version Arduino MICRO /!
//-----EEPROM Lib-----
#include <EEPROM.h> // Inclusin librairie pour lire/écrire dans EEPROM.

#define SDI MOSI //10 UNO
#define CLK SCK //12 UNO
#define LE MISO //11 UNO

#define MAX_STRING_LEN 20

char *inputstring1 = “”; //this is the string that will be split. this can be changed!
char *p, *i;
int x;

int octetReception=0; // variable de stockage des valeurs reçues sur le port Série (ASCII)
char caractereRecu=0; // variable pour stockage caractère recu
String Data1Str;
String Data2Str;
byte Data1;
byte Data2;
String chaineReception=""; // déclare un objet String vide pour reception chaine
String stringOne;
char charBuf[50];

void setup(){
pinMode(13, OUTPUT); // Pour contrôle visuel.
digitalWrite(13, LOW);
pinMode(SDI, OUTPUT);
pinMode(CLK, OUTPUT);
pinMode(LE, OUTPUT);
Serial.begin(9600);
// while (!Serial) ; // Pas utile démarrage immédiat.
digitalWrite(13, HIGH);
Out(255, 255);
delay(1000);
Out(0, 0);
delay(1000);
Out(EEPROM.read(0), EEPROM.read(1));
digitalWrite(13, LOW);
}

void loop() {

while (Serial.available()>0) { // tant qu’un octet en réception
octetReception=Serial.read(); // Lit le 1er octet reçu et le met dans la variable
if (octetReception==13) { // si Octet reçu est le saut de ligne
stringOne = chaineReception;
stringOne.toCharArray(charBuf, 50) ;
for (int i = 0; i < 9; i++) {
charBuf[50] = charBuf[50] & charBuf*;*

  • }*
  • inputstring1 = charBuf;*
  • Data1Str = subStr(inputstring1, “|”, 1);*
  • Data2Str = subStr(inputstring1, “|”, 2);*
  • Data1 = Data1Str.toInt();*
  • Data2 = Data2Str.toInt();*
  • EEPROM.write(0, Data1);*
  • EEPROM.write(1, Data2);*
  • Out(Data1, Data2); *
  • chaineReception=""; //RAZ le String de réception*
    _ Serial.println(charBuf);_
  • delay(100); // pause*
  • break; // sort de la boucle while*
  • }*
  • else { // si le caractère reçu n’est pas un saut de ligne*
  • caractereRecu=char(octetReception); // convertit l’octet reçu en caractère*
  • chaineReception=chaineReception+caractereRecu; // ajoute le caratère au String*
  • }*
  • } // fin tant que octet réception*
    *} *
    *void Out(byte data1, byte data2) { *
  • shiftOut(SDI, CLK, LSBFIRST, data2); *
  • shiftOut(SDI, CLK, LSBFIRST, data1); *
  • digitalWrite(LE, HIGH);*
  • delayMicroseconds(1);*
  • digitalWrite(LE, LOW); *
    } *
    char subStr (char* input_string, char *separator, int segment_number) {

    _ char *act, *sub, *ptr;_
  • static char copy[MAX_STRING_LEN];*
  • int i;*
  • strcpy(copy, input_string);*
  • for (i = 1, act = copy; i <= segment_number; i++, act = NULL) {*
  • sub = strtok_r(act, separator, &ptr);*
  • if (sub == NULL) break;*
  • }*
  • return sub;*
    }
    [/quote]
    Cordialement,
    Le réparateur de PC

Bonjour Mr lereparateurdepc, Ton soft pc m'intéresse; because, je compte en faire aussi un pour de la gestion Midi. A tu fais une interface graphique ? M'offrirais-tu ton source ? et ton exe. Le commercialise-tu ? (avec le source ). En cliquant sur mon nom, tu peux m'envoyer un mess-perso. Acec mes excuses pour la petite interférence dans ce fil.

re,

Soft réalisé sous VB 2010 mais il est vraiment dédié : Pilotage d'un afficheur d'APC 2200XL hors onduleur voir : http://forum.arduino.cc/index.php?topic=203460.new;topicseen#new La capture d'écran du soft : Le soft ne fait que créer la valeur des 2 octets et l'envoyer sur le port série de l'Arduino. Je ne vends PAS mes programmes, ils sont réalisés dans un but personnel UNIQUEMENT.

Pour le nouveau projet, ce sera l'afficheur d'un chargeur de batterie

Cordialement, Le réparateur de PC

ils sont réalisés dans un but personnel UNIQUEMENT.

personnel UNIQUEMENT ? Ou uniquement PERSONNEL ? Tu a honte de tes codes ou tu craint que quelqu'un fasse du blé avec ? Ou autre motifs ? Bon, mais si tu ne veux pas répondre, personne ne t'en voudra. Libertad carigna !

re,

Ce programme n'a pas été développé dans un but de commercialisation mais pour une utilisation personnelle.

Tu a honte de tes codes ou tu craint que quelqu'un fasse du blé avec ? Ou autre motifs ?

Je ne m'attendais pas à ce que ce soit pris de la sorte. J'ai répondu à vos questions donc non je ne donne pas l'intégralité des sources et non je ne les vends pas. La partie création des valeurs resterons privées car j'ai passé pas mal de temps à la réalisée et surtout à recomposer les valeurs.

Merci de continuer la discussion soft PC en MP.

Cordialement, Le réparateur de PC

lereparateurdepc: La partie création des valeurs resterons privées car j'ai passé pas mal de temps à la réalisée et surtout à recomposer les valeurs.

Je ne suis pas demandeur donc cela me permet de dire et toute indépendance que ce genre de réaction n'est pas dans l'esprit de ce forum qui est avant tout un forum de PARTAGE et d'entre-aide M'enfin les choses sont claires maintenant et je ne sais pas si la majorité des personnes qui renseignent apprécierons ce fonctionnement a sens unique.

re,

C'est un forum consacré à Arduino et non VisualBasic. En ce qui est des sources Arduino, pas de soucis logique, la plateforme est Open-source mais en ce qui concerne VB j'ai trop souvent retrouvé mes sources "données juste pour voir" dans un logiciel prétendant appartenir à une autre personne et qui refuse d'admettre la provenance de cette source.

Je peux communique une partie des codes VB, ceux liés à Arduino.

En ce qui concerne le sujet d'origine, pas d'idées ?

Cordialement, Le réparateur de PC

Loin de moi l'idée de vouloir faire polémique, mais quand tu dis:

j'ai trop souvent retrouvé mes sources "données juste pour voir" dans un logiciel prétendant appartenir à une autre personne

Je me dis que les gens qui pompent des sources pour créer un "logiciel", se gardent bien de livrer le code. Et ce d'autant plus qu'ils auront obtenu le bout par MP ou autre et non par la voie "open source". Bien évidemment que tu fais ce que tu veux avec tes codes. C'est simplement parce que tu en a fait mention que j'ai demandé. Mais franchement, je ne comprends pas, mais alors vraiment pas, la gloriole qu'on peut tirer d'avoir pondu du code. Ne faut-il pas faire passer sa satisfaction personnelle avant la vanité des congratulations. Qu'est-ce que tu peux bien en avoir à foutre qu'un type se soit servi de ton code ? ....Mystère...

re,

Si vous y tennez temps :

Imports System.IO.Ports
Imports System.Text
Public Class Form1
    Dim BatNiv1 As Integer = 0
    Dim BatNiv2 As Integer = 0
    Dim BatNiv3 As Integer = 0
    Dim BatNiv4 As Integer = 0
    Dim BatNiv5 As Integer = 0
    Dim PwrNiv1 As Integer = 0
    Dim PwrNiv2 As Integer = 0
    Dim PwrNiv3 As Integer = 0
    Dim PwrNiv4 As Integer = 0
    Dim PwrNiv5 As Integer = 0
    Dim IsBoost As Integer = 0
    Dim IsTrim As Integer = 0
    Dim IsACOK As Integer = 0
    Dim IsSurPwr As Integer = 0
    Dim IsOnBat As Integer = 0
    Dim IsDefBat As Integer = 0
    Dim SerialPortList As String()
    Dim WithEvents MyPort As SerialPort = New SerialPort
    Dim BinData As String
    Dim ReadVal As String
    Dim IsOn As Boolean = False
    Dim DistStpVal As Integer = 1
    Dim TramError As Integer = 0
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Try
            SerialPortList = SerialPort.GetPortNames()
            For i As Integer = 0 To SerialPortList.Length - 1
                If SerialPortList(i) <> "COM1" Then
                    ComboBox1.Items.Add(SerialPortList(i))
                End If
                If ComboBox1.Items.Count = 1 Then
                    ComboBox1.SelectedIndex = 0
                ElseIf ComboBox1.Items.Count = 0 Then
                    ButOpenSer.Enabled = False
                End If
            Next
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Try
            MyPort.PortName = ComboBox1.SelectedItem
            If ComboBox1.Items.Count = 1 Then
                ButOpenSer_Click(Nothing, Nothing)
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    Private Sub ButOpenSer_Click(sender As System.Object, e As System.EventArgs) Handles ButOpenSer.Click
        Try
            If ComboBox1.SelectedItem <> "" Then
                ButOpenSer.Enabled = False
                ButCloseSer.Enabled = True
                ComboBox1.Enabled = False
                MyPort.BaudRate = 9600
                MyPort.DataBits = 8
                MyPort.Parity = Parity.None
                MyPort.StopBits = StopBits.One
                MyPort.Handshake = Handshake.None
                MyPort.Encoding = Encoding.ASCII
                MyPort.Open()
                Panel1.Enabled = True
                ButSend.Enabled = True
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    Private Sub ButCloseSer_Click(sender As System.Object, e As System.EventArgs) Handles ButCloseSer.Click
        Try
            MyPort.Close()
            ButOpenSer.Enabled = True
            ButCloseSer.Enabled = False
            ComboBox1.Enabled = True
            Panel1.Enabled = False
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
#Region "LED"
    Private Sub OSPwr1_Click(sender As System.Object, e As System.EventArgs) Handles OSPwr1.Click
        If PwrNiv1 = 0 Then
            PwrNiv1 = 1
            OSPwr1.BackColor = Color.Green
        Else
            PwrNiv1 = 0
            OSPwr1.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSPwr2_Click(sender As System.Object, e As System.EventArgs) Handles OSPwr2.Click
        If PwrNiv2 = 0 Then
            PwrNiv2 = 2
            OSPwr2.BackColor = Color.Green
        Else
            PwrNiv2 = 0
            OSPwr2.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSPwr3_Click(sender As System.Object, e As System.EventArgs) Handles OSPwr3.Click
        If PwrNiv3 = 0 Then
            PwrNiv3 = 4
            OSPwr3.BackColor = Color.Green
        Else
            PwrNiv3 = 0
            OSPwr3.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSPwr4_Click(sender As System.Object, e As System.EventArgs) Handles OSPwr4.Click
        If PwrNiv4 = 0 Then
            PwrNiv4 = 8
            OSPwr4.BackColor = Color.Green
        Else
            PwrNiv4 = 0
            OSPwr4.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSPwr5_Click(sender As System.Object, e As System.EventArgs) Handles OSPwr5.Click
        If PwrNiv5 = 0 Then
            PwrNiv5 = 16
            OSPwr5.BackColor = Color.Green
        Else
            PwrNiv5 = 0
            OSPwr5.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSBoost_Click(sender As System.Object, e As System.EventArgs) Handles OSBoost.Click
        If IsBoost = 0 Then
            IsBoost = 128
            OSBoost.BackColor = Color.Orange
        Else
            IsBoost = 0
            OSBoost.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSACOK_Click(sender As System.Object, e As System.EventArgs) Handles OSACOK.Click
        If IsACOK = 0 Then
            IsACOK = 4
            OSACOK.BackColor = Color.Green
        Else
            IsACOK = 0
            OSACOK.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSTrim_Click(sender As System.Object, e As System.EventArgs) Handles OSTrim.Click
        If IsTrim = 0 Then
            IsTrim = 1
            OSTrim.BackColor = Color.Orange
        Else
            IsTrim = 0
            OSTrim.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSSurPwr_Click(sender As System.Object, e As System.EventArgs) Handles OSSurPwr.Click
        If IsSurPwr = 0 Then
            IsSurPwr = 32
            OSSurPwr.BackColor = Color.Red
        Else
            IsSurPwr = 0
            OSSurPwr.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSOnBat_Click(sender As System.Object, e As System.EventArgs) Handles OSOnBat.Click
        If IsOnBat = 0 Then
            IsOnBat = 2
            OSOnBat.BackColor = Color.Orange
        Else
            IsOnBat = 0
            OSOnBat.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSDefBat_Click(sender As System.Object, e As System.EventArgs) Handles OSDefBat.Click
        If IsDefBat = 0 Then
            IsDefBat = 64
            OSDefBat.BackColor = Color.Red
        Else
            IsDefBat = 0
            OSDefBat.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSBat1_Click(sender As System.Object, e As System.EventArgs) Handles OSBat1.Click
        If BatNiv1 = 0 Then
            BatNiv1 = 8
            OSBat1.BackColor = Color.Green
        Else
            BatNiv1 = 0
            OSBat1.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSBat2_Click(sender As System.Object, e As System.EventArgs) Handles OSBat2.Click
        If BatNiv2 = 0 Then
            BatNiv2 = 16
            OSBat2.BackColor = Color.Green
        Else
            BatNiv2 = 0
            OSBat2.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSBat3_Click(sender As System.Object, e As System.EventArgs) Handles OSBat3.Click
        If BatNiv3 = 0 Then
            BatNiv3 = 32
            OSBat3.BackColor = Color.Green
        Else
            BatNiv3 = 0
            OSBat3.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSBat4_Click(sender As System.Object, e As System.EventArgs) Handles OSBat4.Click
        If BatNiv4 = 0 Then
            BatNiv4 = 64
            OSBat4.BackColor = Color.Green
        Else
            BatNiv4 = 0
            OSBat4.BackColor = Color.Transparent
        End If
    End Sub
    Private Sub OSBat5_Click(sender As System.Object, e As System.EventArgs) Handles OSBat5.Click
        If BatNiv5 = 0 Then
            BatNiv5 = 128
            OSBat5.BackColor = Color.Green
        Else
            BatNiv5 = 0
            OSBat5.BackColor = Color.Transparent
        End If
    End Sub
#End Region
A suivre .....

mince trop de caractères …

re,

Double post pour afficher la suite du code :

... Suite
    Private Sub ButSend_Click(sender As System.Object, e As System.EventArgs) Handles ButSend.Click
        Try
            BinData = BatNiv1 + BatNiv2 + BatNiv3 + BatNiv4 + BatNiv5 + IsACOK + IsOnBat + IsTrim _
                    & "|" & IsBoost + IsDefBat + IsSurPwr + PwrNiv1 + PwrNiv2 + PwrNiv3 + PwrNiv4 + PwrNiv5
            LbSend.Text = "Envoyé : " & BinData
            MyPort.Write(BinData & Environment.NewLine)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    Private Sub MyPort_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles MyPort.DataReceived
        Try
            ReadVal = MyPort.ReadLine 'Existing.Trim
            Me.Invoke(New ProgressRefresh(AddressOf ReadData))
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    Private Delegate Sub ProgressRefresh()
    Sub ReadData()
        LbRead.Text = "Reçu : " & ReadVal
        If ReadVal <> "" And (ReadVal.ToString).Trim <> (BinData.ToString).Trim Then
            TramError += 1
            LbTrmErr.Text = "Erreur de tramme : " & TramError
            ' MsgBox("Erreur de transmission :" & Environment.NewLine & "Envoyé : " & BinData & Environment.NewLine & "Reçu : " & ReadVal)
        End If
    End Sub
    Private Sub RabManu_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RbManu.CheckedChanged
        Panel1.Enabled = RbManu.Checked
        ButSend.Enabled = RbManu.Checked
    End Sub
    Private Sub RbFault_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RbFault.CheckedChanged
        DistStpVal = 1
        If RbFault.Checked = True Then
            Timer1_Tick(Nothing, Nothing)
            Timer1.Start()
        Else
            Timer1.Stop()
        End If
    End Sub
    Private Sub RbDistStp_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RbDistStp.CheckedChanged
        IsOn = False
        If RbDistStp.Checked = True Then
            Timer1_Tick(Nothing, Nothing)
            Timer1.Start()
        Else
            Timer1.Stop()
        End If
    End Sub
    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        Try
            If RbFault.Checked = True Then
                If IsOn = False Then
                    OSPwr1.BackColor = Color.Green
                    OSPwr2.BackColor = Color.Green
                    OSPwr3.BackColor = Color.Green
                    OSPwr4.BackColor = Color.Green
                    OSPwr5.BackColor = Color.Green
                    OSBoost.BackColor = Color.Transparent
                    OSACOK.BackColor = Color.Transparent
                    OSTrim.BackColor = Color.Transparent
                    OSSurPwr.BackColor = Color.Transparent
                    OSOnBat.BackColor = Color.Transparent
                    OSDefBat.BackColor = Color.Transparent
                    OSBat1.BackColor = Color.Green
                    OSBat2.BackColor = Color.Green
                    OSBat3.BackColor = Color.Green
                    OSBat4.BackColor = Color.Green
                    OSBat5.BackColor = Color.Green
                    BinData = 248 & "|" & 31
                IsOn = True
            Else
                OSPwr1.BackColor = Color.Transparent
                OSPwr2.BackColor = Color.Transparent
                OSPwr3.BackColor = Color.Transparent
                OSPwr4.BackColor = Color.Transparent
                OSPwr5.BackColor = Color.Transparent
                OSBoost.BackColor = Color.Transparent
                OSACOK.BackColor = Color.Transparent
                OSTrim.BackColor = Color.Transparent
                OSSurPwr.BackColor = Color.Transparent
                OSOnBat.BackColor = Color.Transparent
                OSDefBat.BackColor = Color.Transparent
                OSBat1.BackColor = Color.Transparent
                OSBat2.BackColor = Color.Transparent
                OSBat3.BackColor = Color.Transparent
                OSBat4.BackColor = Color.Transparent
                OSBat5.BackColor = Color.Transparent
                BinData = 0 & "|" & 0
                IsOn = False
                End If
            ElseIf RbDistStp.Checked = True Then
                If DistStpVal = 1 Then
                    OSPwr1.BackColor = Color.Transparent
                    OSPwr2.BackColor = Color.Transparent
                    OSPwr3.BackColor = Color.Transparent
                    OSPwr4.BackColor = Color.Transparent
                    OSPwr5.BackColor = Color.Transparent
                    OSBoost.BackColor = Color.Transparent
                    OSACOK.BackColor = Color.Transparent
                    OSTrim.BackColor = Color.Orange
                    OSSurPwr.BackColor = Color.Red
                    OSOnBat.BackColor = Color.Transparent
                    OSDefBat.BackColor = Color.Transparent
                    OSBat1.BackColor = Color.Transparent
                    OSBat2.BackColor = Color.Transparent
                    OSBat3.BackColor = Color.Transparent
                    OSBat4.BackColor = Color.Transparent
                    OSBat5.BackColor = Color.Transparent
                    BinData = 1 & "|" & 32
                ElseIf DistStpVal = 2 Then
                    OSPwr1.BackColor = Color.Transparent
                    OSPwr2.BackColor = Color.Transparent
                    OSPwr3.BackColor = Color.Transparent
                    OSPwr4.BackColor = Color.Transparent
                    OSPwr5.BackColor = Color.Transparent
                    OSBoost.BackColor = Color.Transparent
                    OSACOK.BackColor = Color.Green
                    OSTrim.BackColor = Color.Transparent
                    OSSurPwr.BackColor = Color.Transparent
                    OSOnBat.BackColor = Color.Orange
                    OSDefBat.BackColor = Color.Transparent
                    OSBat1.BackColor = Color.Transparent
                    OSBat2.BackColor = Color.Transparent
                    OSBat3.BackColor = Color.Transparent
                    OSBat4.BackColor = Color.Transparent
                    OSBat5.BackColor = Color.Transparent
                    BinData = 6 & "|" & 0
                Else
                    OSPwr1.BackColor = Color.Transparent
                    OSPwr2.BackColor = Color.Transparent
                    OSPwr3.BackColor = Color.Transparent
                    OSPwr4.BackColor = Color.Transparent
                    OSPwr5.BackColor = Color.Transparent
                    OSBoost.BackColor = Color.Orange
                    OSACOK.BackColor = Color.Transparent
                    OSTrim.BackColor = Color.Transparent
                    OSSurPwr.BackColor = Color.Transparent
                    OSOnBat.BackColor = Color.Transparent
                    OSDefBat.BackColor = Color.Red
                    OSBat1.BackColor = Color.Transparent
                    OSBat2.BackColor = Color.Transparent
                    OSBat3.BackColor = Color.Transparent
                    OSBat4.BackColor = Color.Transparent
                    OSBat5.BackColor = Color.Transparent
                    BinData = 0 & "|" & 192
                    DistStpVal = 0
                End If
                DistStpVal += 1
            End If
            LbSend.Text = "Envoyé : " & BinData
            MyPort.Write(BinData & Environment.NewLine)
        Catch ex As Exception
            Timer1.Stop()
            MsgBox(ex.Message)
        End Try
    End Sub
End Class

Par contre les avis en MP car on se détourne un peut du sujet d’origine si ça ne dérange pas …

Cordialement,
Le réparateur de PC