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
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.
Schéma électronique
Code
Note
Vous pouvez ouvrir directement le fichier
1.8_serialRead.inodans le dossiersunfounder_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.
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.
Illustration du phénomène