Здравствуйте, знатоки.Делаю я машинку на радиоуправлении через блютуз.Программа на телефоне отправляет команды вперед назад влево вправо и т.д. буквами.Но там есть бегунок для скорости , который изменяет свои значения от 1 до 10 и отправляет также по блютуз.Как мне отфильтровать цифры от букв.Вот код на всякий случай
C++:
//*********БИБЛИОТЕКИ**************//
#include <SoftwareSerial.h>
//*************ПИНЫ**************//
#define LED_1 2
#define LED_2 3
#define DRIVER_STB 4
#define MOT_FOR 5
#define MOT_REV 6
#define MOT_LEFT 7
#define MOT_RIGHT 8
SoftwareSerial mySerial(13, 12); // RX, TX
//*********ПЕРЕМЕННЫЕ**************//
char val;
int val1;
int DUTY;
byte sped;
void setup()
{
mySerial.begin(9600);
pinMode(MOT_FOR, OUTPUT);
pinMode(MOT_REV, OUTPUT);
pinMode(MOT_LEFT, OUTPUT);
pinMode(MOT_RIGHT, OUTPUT);
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
pinMode(DRIVER_STB, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (mySerial.available()) {
val = mySerial.read();
sped = mySerial.read();
// Serial.write(val);
}
if (sped < 10) {
Serial.println(sped);
}
if (val == 'S') {
digitalWrite(MOT_FOR, LOW);
digitalWrite(MOT_REV, LOW);
digitalWrite(MOT_LEFT, LOW);
digitalWrite(MOT_RIGHT, LOW);
}
else if (val == 'F') {
digitalWrite(MOT_FOR, HIGH);
digitalWrite(MOT_REV, LOW);
digitalWrite(MOT_LEFT, LOW);
digitalWrite(MOT_RIGHT, LOW);
}
else if (val == 'B') {
digitalWrite(MOT_REV, HIGH);
digitalWrite(MOT_FOR, LOW);
digitalWrite(MOT_LEFT, LOW);
digitalWrite(MOT_RIGHT, LOW);
}
else if (val == 'R') {
digitalWrite(MOT_RIGHT, HIGH);
digitalWrite(MOT_FOR, LOW);
digitalWrite(MOT_LEFT, LOW);
digitalWrite(MOT_REV, LOW);
}
else if (val == 'L') {
digitalWrite(MOT_LEFT, HIGH);
digitalWrite(MOT_FOR, LOW);
digitalWrite(MOT_REV, LOW);
digitalWrite(MOT_RIGHT, LOW);
}
else if (val == 'G') {
digitalWrite(MOT_LEFT, HIGH);
digitalWrite(MOT_FOR, HIGH);
}
else if (val == 'I') {
digitalWrite(MOT_RIGHT, HIGH);
digitalWrite(MOT_FOR, HIGH);
}
else if (val == 'H') {
digitalWrite(MOT_LEFT, HIGH);
digitalWrite(MOT_REV, HIGH);
}
else if (val == 'J') {
digitalWrite(MOT_RIGHT, HIGH);
digitalWrite(MOT_REV, HIGH);
}
else if (val == 'W') {
digitalWrite(LED_1, HIGH);
}
else if (val == 'w') {
digitalWrite(LED_1, LOW);
}
else if (val == 'U') {
digitalWrite(LED_2, HIGH);
}
else if (val == 'u') {
digitalWrite(LED_2, LOW);
}
else if (val == 'X') {
digitalWrite(DRIVER_STB, HIGH);
}
else if (val == 'x') {
digitalWrite(DRIVER_STB, LOW);
}
}
void PWM(byte val1) {
if (val1 < 10) {
}
Serial.println(val1);
}