Bonjour,

Je dispose d'une carte Arduino (UNO) et je souhaite tout bêtement récupérer une valeur décimale envoyée par la carte à l'aide d'un programme développé avec Delphi 7.
Pour l'instant la carte se contente d'envoyer le nombre 555 sur le port série virtuel (COM par l'USB) toutes les 150 ms.

Je mets le code Arduino pour ceux qui connaissent :

Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
void setup() {
    Serial.begin(9600);
}
void loop() {
    Serial.println(555, DEC);
    delay(150);
}


Je place donc dans mon programme un composant TComPort et TComDataPacket ainsi qu'un composant TMemo.
Je spécifie tous les paramètres de la liaison série dans le composant (vitesse, parité, etc...).

J'utilise l'évènement OnPacket de mon TComDataPacket :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
procedure TMainForm.ComDataPacket1Packet(Sender: TObject; const Str: String);
begin
  Memo1.Lines.Add(Str);
end;
Seulement au lieu de recevoir ce que j'avais prévu :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
555
555
555
555
555
555
555
555
...
je reçois quelque chose comme ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
555
 
 
5
55
 
55
5
 
555
 
 
5
55
 
55
5
 
555
 
 
555
Comme vous pouvez le voir le nombre est plusieurs fois coupé et je reçois pas mal d'espaces vides. Je n'arrive pas à comprendre pourquoi.
Pourtant que ce soit avec le moniteur série du logiciel Arduino, avec PuTTY en "Serial" ou avec Hyperterminal je n'ai aucun problème.

Avez-vous une petite idée ? Je dois louper un truc simple mais j'ai essayé plusieurs trucs et ça marche pas.

Merci d'avance. Bonne soirée.