Проверка ввода данных в arduino
У меня есть следующий код:
#include <Servo.h>
Servo myservo;
char x;
void setup(){
Serial.begin(9600);
myservo.attach(7);
Serial.println("enter a letter: ");
Serial.println("a = 0 grade");
Serial.println("b = 90 grade");
Serial.println("c = 180 grade");
}
void loop(){
while(Serial.available()){
x = Serial.read();
}
switch(x){
case 'a':
myservo.write(0);
Serial.println("The entered angle is 0");
delay(5);
break;
case 'b':
myservo.write(90);
Serial.println("The entered angle is 90");
delay(5);
break;
case 'c':
myservo.write(180);
Serial.println("The entered angle is 180");
delay(5);
break;
}
}
Мне нужно, чтобы, когда пользователь вводит A, B или C, он выполнял оператор "switch case" только один раз, а затем запрашивал снова. В случае ввода буквы, которая не соответствует, скажите, что буква неправильная, и снова покажите параметры для новой записи. Есть какие-нибудь идеи?
@Carlos Muñoz, 👍-1
Обсуждение0
Смотрите также:
- Как остановить серводвигатель в текущем положении при использовании последовательного порта? Я хочу, чтобы он оставался в одном положении при получении «0».
- Когда я включаю сервопривод, он вращается сам по себе, прежде чем перейти в нужное положение и начать скетч.
- Код, из-за которого серводвигатель не работает!
- Как заставить сервопривод вращаться на угол больше 180°
- Данные DHT11 из Arduino UNO в Firebase через ESP8266
- Подключение Arduino к сервоприводу с внешним источником питания
- Мой сервопривод не работает плавно
- Объяснение кода MPU6050
сначала переместите блок
switch (x) {
в блокwhile(Serial.available()) {
, @JurajЕсли вы хотите, чтобы параметры снова отображались в последовательном режиме, вам нужно поместить выходные параметры в свой код в
loop ()
.setup ()
выполняется только один раз при запуске программы, @chrisl