.. note:: Bonjour et bienvenue dans la communauté des passionnés de SunFounder Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez dans l'univers de Raspberry Pi, Arduino et ESP32 avec d'autres passionnés. **Pourquoi nous rejoindre ?** - **Assistance d'experts** : Résolvez les problèmes après-vente et les défis techniques grâce à l'aide de notre communauté et de notre équipe. - **Apprenez et partagez** : Échangez des conseils et des tutoriels pour perfectionner vos compétences. - **Aperçus exclusifs** : Bénéficiez d'un accès anticipé aux annonces de nouveaux produits et d'aperçus exclusifs. - **Réductions spéciales** : Profitez de remises exclusives sur nos derniers produits. - **Promotions et cadeaux festifs** : Participez à des promotions spéciales et des tirages au sort. 👉 Prêt à explorer et créer avec nous ? Cliquez sur [|link_sf_facebook|] et rejoignez-nous dès aujourd'hui ! .. _ar_serial_read: 1.8 Lecture Série =================== Aperçu -------- En plus de lire les données des composants électroniques, la carte Mega2560 peut lire les données saisies dans le moniteur série, et vous pouvez utiliser Serial.read() comme contrôleur pour les expériences de circuit. Nous allons ici utiliser une LED pour expérimenter la commande Serial.read() et contrôler l'allumage et l'extinction de la LED. Composants requis -------------------- .. image:: img/list_1.8.png * :ref:`cpn_mega2560` * :ref:`cpn_breadboard` * :ref:`cpn_wires` * :ref:`cpn_led` * :ref:`cpn_resistor` Circuit Fritzing -------------------- Dans cet exemple, nous utilisons la broche numérique 9 pour commander la LED. Lorsque vous entrez "1" dans le moniteur série, la LED s'allume. Lorsque vous entrez "0", elle s'éteint. .. image:: img/image30.png Schéma électronique ---------------------- .. image:: img/image401.png Code ---- .. note:: * Vous pouvez ouvrir directement le fichier ``1.8_serialRead.ino`` dans le dossier ``sunfounder_vincent_kit_for_arduino\code\1.8_serialRead``. * Ou copier ce code dans l'IDE Arduino. .. raw:: html Après avoir téléversé le code sur la carte Mega2560, ouvrez le moniteur série. En tapant "1", la LED s'allume, et en tapant "0", elle s'éteint. .. image:: img/image52.png Analyse du Code ------------------ Déclarez la broche numérique 9 comme ledPin. .. code-block:: arduino const int ledPin = 9; Serial.read() lit un seul caractère en ASCII, vous devez donc déclarer une variable de type int, incomingByte, pour stocker les données acquises. .. code-block:: arduino int incomingByte = 0; Démarrez la communication série dans setup() et définissez la vitesse de transmission à 9600. .. code-block:: arduino Serial.begin(9600); Définissez ledPin en mode OUTPUT. .. code-block:: arduino pinMode(ledPin,OUTPUT); Dans loop(), vérifiez si des données sont disponibles dans le moniteur série, puis traitez-les si c'est le cas. .. code-block:: arduino if (Serial.available() > 0){} Lisez la valeur saisie dans le moniteur série et stockez-la dans la variable incomingByte. .. code-block:: arduino incomingByte = Serial.read(); Lorsque le caractère '1' est reçu, la LED s'allume ; lorsque le caractère '0' est reçu, la LED s'éteint. .. code-block:: arduino if(incomingByte=='1'){digitalWrite(ledPin,HIGH);} else if(incomingByte=='0'){digitalWrite(ledPin,LOW);} .. note:: Serial.read() reçoit la valeur ASCII d'un caractère unique, ce qui signifie que lorsque vous entrez '1', la valeur obtenue n'est pas le nombre 1, mais le caractère '1', dont la valeur ASCII est 49. ※ Tableau ASCII ------------------- Le codage ASCII (American Standard Code for Information Interchange) date des années 1960. Il est le standard pour encoder numériquement les caractères textuels. Notez que les 32 premiers caractères (0-31) sont des caractères de contrôle, non imprimables, souvent appelés caractères de commande. Les caractères plus couramment utilisés sont indiqués. .. image:: img/image409.png .. image:: img/image410.png Illustration du phénomène --------------------------- .. image:: img/image36.jpeg