Bibliothèque Serial
. Par : Dominique, Guillaume, Jean-Luc
Vous répondez à :
le coup des crochets, Merci beaucoup !
Je viens quand même de galerer, j’avais mis un PULLUP sur pin A7 et une condition sur A7, rien ne sortait ! J’ai switché sur la pin digitale 7 et là ça marche !!!
Merci a vous infiniment, je vais bosser à partir de là !!
J’ai une cloture electrique a vache devant la maison, j’ai constaté qu’avec juste 20Cm de fil connecté à un driver de moteur pas à pas, il me fait un pas à chaque coup de jus de la clotûre. Je soupçonne la cloture de m’avoir grillé les pins Analogiques de cet arduino, juste en lui mettant 20cm de fil à la patte !
D’ailleurs je me demande ce qu’on devrait faire des pin non utilisées (non connectées) des arduinos. Il me semble que des connections qu’on ait pu faire dessus peuvent faire buguer un arduino. or elles se reçoivent de l’induction electromagnetique, il n’est pas dit que ces 1 ou 0 non desirés n’aillent pas influer dans les processus en cours dans l’arduino ?? ça me trotte depuis un moment cette idée, et pareil, personne n’en parle...
Pourtant des bugs avec l’arduino, venant d’on ne sait où, on ne peut pas dire qu’on n’en a pas... mettre des condos 104 ceramique sur toutes les pins ???
15 Messages
-
desactiver la sortie Serial (vers le moniteur) 14 février 2020 16:13, par Francois
Bonjour
Votre site est très interessant et m’aide régulièrement !
Je souhaite en féliciter les créateurs
Aujourd’hui je souhaite soulever un problème, celui de desactiver de manière pratique la sortie serial.En effet je bricole en ce moment sur des sketches un peu lourds, avec tant de complexité que je passe des journées entières à trouver des nouvelles solutions et debugger. Ca me conduit à un gros travail de placement des Serial.print aux endroit opportuns.
ces remontées d’info serial vers l’ordi sont vraiment précieuses, je ne souhaite pas les enlever car lorsque le robot ne marchera pas bien pour x raison c’est evidemment vers elles que je vais me tourner.Evidemment il faut les désactiver pour un usage normal car cela donne enormément de travail à l’arduino, et du temps. et risques de bug et d’erreurs aussi sans doute.
Jusqu’ici, je plaçais partout des conditions if, avant chaque communication Serial.print , avec la condition sur une pin en PULLUP qu’il suffisait de déconnecter de la masse pour réactiver la sortie vers le moniteur donc.
Franchement ces conditions font enormément de pollution visuelle dans le sketch. Je me suis demandé si je ne pouvais pas utiliser Serial.end pour carrément couper ce travail là sans utiliser les if.
donc j’ai Serial.begin(9600) ; en SETUP et au tout debut de void loop() comme cela : if (digitalRead(A7)==0)Serial.end() ;
eh bien ça ne marche pas du tout ! cela me fait meme un bug general car visiblement ça bloque totalement l’arduino...
bizarre on dirait que personne ne parle de ce sujet nulle part...
....personne n’a ce besoin de desactiver son serial monitor...
....personne n’est gêné par le temps perdu des transmissions serial...Alors, comment les désactiver proprement sans toutes ces conditions if ? est ce que qq a la réponse ?
Merci par avance !
-
Bonjour,
La remarque msport ci-dessous est pertinente et vous ne pouvez donc pas utiliser
Serial.end()
pour vous débarrasser des impressions.Ce que vous pouvez faire c’est définir des fonctions, une par type de donnée que vous afficher :
void doLog(const char data) { if (digitalRead(logPin) == LOW) { Serial.print(data); } } void doLog(const uint32_t data) { if (digitalRead(logPin) == LOW) { Serial.print(data); } }
etc pour les autres types de données que vous utilisez sans oublier la variante
ln
si vous en avez besoin.Mais ça ne supprimera pas le code le jour où c’est au point.
vous pouvez donc définir également une macro :
#ifdef DEBUG #define LOG(data) doLog(data) #else #define LOG(data) #endif
Que vous pourrez rendre opérante par un :
#define DEBUG
-
-
Bibliothèque Serial 14 février 2020 17:12, par msport
Bonjour,
je n’ai pas la réponse quant au comment faire (à priori, ce n’est pas la bonne solution).
Mais l’explication pourquoi ça bloque :
There is no check if serial is enabled. So all you print() statements will execute. And they will fill the data register and the buffer which is not a problem. UNTIL the buffer is full ! Once the Serial buffer is full the write will wait until there is room in the buffer aka blocking the program. And because the buffer is not emptied the program will hold there...Voir en ligne : Serial buffer is full
-
disable Serial 14 février 2020 18:41, par Francois
Merci msport pour les explications !
Merci a Jean-Luc pour ta réponse !
Je viens d’essayer, ça marcherait presque !
faudrait peut etre trouver une autre type de variable pour stocker les phrases ?j’ai fait ça :
void setup() { Serial.begin(9600); } void doLog(const char data) { Serial.println(data); } void loop() { Serial.print("x"); delay(400); doLog("essai"); doLog('a'); }
ça me donne ça :
x
a
x
a
xdonc le "a" passe, mais "essai" non !
une idee ?
-
disable Serial 14 février 2020 21:23, par Jean-Luc
Oui,
Il faut également un doLog pour les chaines :
void doLog(const char data[]) { Serial.println(data); }
Et un pour les entiers
-
-
Bibliothèque Serial 15 février 2020 16:16, par francois
le coup des crochets, Merci beaucoup !
Je viens quand même de galerer, j’avais mis un PULLUP sur pin A7 et une condition sur A7, rien ne sortait ! J’ai switché sur la pin digitale 7 et là ça marche !!!
Merci a vous infiniment, je vais bosser à partir de là !!
J’ai une cloture electrique a vache devant la maison, j’ai constaté qu’avec juste 20Cm de fil connecté à un driver de moteur pas à pas, il me fait un pas à chaque coup de jus de la clotûre. Je soupçonne la cloture de m’avoir grillé les pins Analogiques de cet arduino, juste en lui mettant 20cm de fil à la patte !
D’ailleurs je me demande ce qu’on devrait faire des pin non utilisées (non connectées) des arduinos. Il me semble que des connections qu’on ait pu faire dessus peuvent faire buguer un arduino. or elles se reçoivent de l’induction electromagnetique, il n’est pas dit que ces 1 ou 0 non desirés n’aillent pas influer dans les processus en cours dans l’arduino ?? ça me trotte depuis un moment cette idée, et pareil, personne n’en parle...
Pourtant des bugs avec l’arduino, venant d’on ne sait où, on ne peut pas dire qu’on n’en a pas... mettre des condos 104 ceramique sur toutes les pins ???
-
Bibliothèque Serial 15 février 2020 16:44, par Jean-Luc
Les broches A6 et A7 sont seulement analogiques (Arduino Nano)
-
-
Bibliothèque Serial 15 février 2020 16:53, par francois
Ah la vache, vs avez raison !! d’habitude je ne les utilise pas celles là. Avec la A5 ça marche ! Oui, nano, je n’utilise plus que des nano !
Quel âne ! Je suis depuis une semaine sur ce soft, tous les jours du matin jusqu’à 3h dans la nuit, je dois être usé.
Merci vraiment, les gars
-
Bibliothèque Serial 15 février 2020 17:54, par msport
En parlant de crochets, on pense aux accolades qui disparaissent ...
Quel code pour insérer du code dans les messages du site éditorial ?
Il n’est pas permis d’insérer des images ni d’utiliser les attributs html class -
Bibliothèque Serial 15 février 2020 19:59, par Jean-Luc
Ça ressemble au html. Il faut utiliser la balise
<code>
. On ferme comme en html en mettant un / devant. On peut ajouter comme attribut<code class="arduino">
pour avoir la coloration syntaxique et ajouter<code class="arduino sans_telechargement">
pour supprimer le bouton. -
Bibliothèque Serial et module Bluetooth BK8000L 26 mars 2020 16:00, par Nicolas
Bonjour à tous, et d’abord merci pour ce site très intéressant !
Rien à voir avec le ferroviaire, mais j’espère que vous voudrez bien m’aider ;-)
J’essaye de communiquer en série avec un module bluetooth. J’ai la liste des commandes AT qu’il est supposé comprendre, mais il semble ne pas les comprendre. Une question me hante : les information qui s’affichent sur le moniteur série de l’IDE arduino sont elles également envoyées sur les sorties 0 et 1 de la carte ?
Au voltmètre, je vois bien quelque chose passer (baisse de tension) sur l’entée du module à chaque trame AT.Merci pour votre aide !
Amicalement,
Nicolas -
Bibliothèque Serial 26 mars 2020 20:40, par msport
Question 1 : Yes.
Pas de fantôme sur TX/RX, vérifiez que les paramètres du port serial sont ceux du module bluetooth : la vitesse en particulier.
Voir la doc et la démo :
https://www.mikrocontroller.net/att...
On trouvera peut être une application pour les annonces dans les gares ...Voir en ligne : Demo
-
Bibliothèque Serial 27 mars 2020 18:13, par Nicolas
Merci beaucoup msport pour la réponse.
J’ai déjà lus les liens que tu m’as indiqué, je pense être dans le bon... Mais peut-être est-ce mon module qui est HS ou paramétré différemment...puisqu’il a l’air d’être I2C... je m’y pencherai plus tard.
En attendant je commande les fonctions du module par les sorties de l’arduino. C’est plus long, ça utilise plus de sorties et de code...
Tant pis, pour l’instant il m’en reste encore de disponible.Encore merci et peut être à bientôt sur les rails !
Bon confinement,
Nicolas -
Bibliothèque Serial 27 mars 2020 22:43, par msport
* Note that the baud rate, 9600, N, 8,1 ; dixit la doc.
on lit (mal) dans la doc p2 (schéma bloc) que RX/TX seraient 11 et 10 et sur le schéma p3 "serial port" 13 et 14.
Probablement référence 1) au connecteur et 2) au socket.A tester avec un émulateur de terminal comme hyper terminal ou YAT ou autre et un convertisseur genre FTDI. (RX -> TX et TX -> RX)
ça ressemble à l’ESP32 auquel on s’intéresse actuellement.
-
Bibliothèque Serial 14 août 2021 17:39, par martin
Bonjour, merci pour le detail de la bibliothèque Serial. Cependant pour un exercice on me demande de ne pas utiliser la bibliotheque Serial mais des fonctions de plus bas niveau. Sauriez vous ou je peux trouver les codes sources de Serial. Comment faisait on avant l’utilisation de la bibliotheque ? merci.