J'utilise un Arduino UNO pour un projet, mais je ne sais pas comment réaliser ce que je veux. Je suis aussi un débutant donc je ne sais parfois pas comment utiliser certaines fonctions pour faire ce que je veux.Envoi de plusieurs valeurs via le port série
Je veux fondamentalement envoyer 3 valeurs à travers le moniteur série tout à la fois.
La première valeur est une chaîne qui pointe vers un opérateur (A, S, M, D, P), puis je souhaite prendre deux autres valeurs. Par exemple, si je saisis 'A012556, il faut ajouter 12 et 556, ce qui me donnera 568.
Actuellement, je fais exactement cela, mais cela demande chaque entrée séparément. Par exemple, il demandera l'opérateur (je ne peux entrer les entrées que parce que je ne peux pas l'obtenir pour prendre la chaîne/caractères) d'abord, où je vais entrer 1 (devrait être A pour l'addition), puis il demande le premier nombre, puis le deuxième nombre, puis les ajoute tous les deux ensemble et sort le résultat. Cela fonctionne bien, mais ce n'est pas ce que j'essaie d'accomplir. Ci-dessus est dans la fonction de boucle actuellement, et il pointe vers la fonction ci-dessous. C'est la même chose pour soustraire/multiplier/diviser/etc.
void addition() {
Serial.println ("A");
Serial.println ("Please enter first number in format nnn: ");
firstNumber = dataInput(); // Asks the user to input the first set of numbers
/* Message must be in format cnnnnnn
therefore first number must be greater than or equal to -99 and less than or equal to 999*/
if (firstNumber >= -99 && firstNumber <= 999) {
Serial.println (firstNumber); // Prints the first set of numbers for the user to view
}
else {
/* If the data input does not match the format cnnnnnn then this error message will display
if the input is invalid the red LED will also turn on */
digitalWrite(LED_RED, HIGH);
Serial.println ("--------------- ERROR ---------------");
}
Serial.println ("Please enter second number in format nnn: ");
secondNumber = dataInput(); // Asks the user to input the second set of numbers
/* Message must be in format cnnnnnn
therefore second number must be greater than or equal to -99 and less than or equal to 999*/
if (secondNumber >= -99 && secondNumber <= 999) {
// The LED will turn off if it was previously on because this is a valid input
digitalWrite(LED_RED, LOW);
Serial.println (secondNumber); // Prints the second set of numbers for the user to view
}
else {
digitalWrite(LED_RED, HIGH);
Serial.println ("--------------- ERROR ---------------");
}
/* Give time for the red error LED to stay on
for the user to notice he/she has made an invalid input */
delay(500);
digitalWrite(LED_RED, LOW);
// As this case is for addition, it will add the first and second numbers
value = (firstNumber + secondNumber);
Serial.print("Value: ");
// Prints the value of the two sets of numbers so that the user can see the value of their message
Serial.println(value);
}
Par conséquent, est-il possible de le faire? Ai-je besoin de quelque chose comme une sous-chaîne?
Merci d'avance, tout conseil serait apprécié.