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 :
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 procedure TMainForm.ComDataPacket1Packet(Sender: TObject; const Str: String); begin Memo1.Lines.Add(Str); end;
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 555 555 555 555 555 555 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.
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
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.
Partager