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 [Ici] et rejoignez-nous dès aujourd’hui !

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

../_images/list_1.8.png

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.

../_images/image30.png

Schéma électronique

../_images/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.

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.

../_images/image52.png

Analyse du Code

Déclarez la broche numérique 9 comme ledPin.

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.

int incomingByte = 0;

Démarrez la communication série dans setup() et définissez la vitesse de transmission à 9600.

Serial.begin(9600);

Définissez ledPin en mode OUTPUT.

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.

if (Serial.available() > 0){}

Lisez la valeur saisie dans le moniteur série et stockez-la dans la variable incomingByte.

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.

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.

../_images/image409.png ../_images/image410.png

Illustration du phénomène

../_images/image36.jpeg