@Max_Drevo

Как в Arduino через сериал задать 2 значения для двух переменных?

Подскажите пожалуйста, почему кодом ниже не удается задать время переменные часа и минут?

int h=0,m=0, s=0;
char c1,c2;
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
Serial.println("write Hour");
  delay (5000);
 while (Serial.available() > 0) {
                // считываем принятый байт:
                c1 = Serial.read();
                 h =atoi(c1);
  }
  
  Serial.println("write Min");
    delay (5000);
  while (Serial.available() > 0) {
                // считываем принятый байт:
                c2 = Serial.read();
                m =atoi(c2);
  }
}
  • Вопрос задан
  • 540 просмотров
Пригласить эксперта
Ответы на вопрос 1
@DrJarold
byte h = 0, m = 0, s = 0;
byte BUFFER = 255;
byte index = 0;
String inString;
bool isEndMessage = false;

void setup() {

	Serial.begin(9600);
	Serial.println("Write Hour!");
	while (!Serial.available())
		delay(1);

	h = atoi(GetData());
	Serial.println("Write Min!");
	while (!Serial.available())
		delay(1);

	m = atoi(GetData());
}
String GetData() {
	inString = "";
	isEndMessage = false;
	while (Serial.available()) {
		char ch = Serial.read();
		switch (ch) {
		case '\n':
		case '\r':
			isEndMessage = true;
			break;
		}
		if (!isEndMessage)
			inString += Serial.read();
		delay(1);
	}
	return inString;
}

byte atoi(String data) {
	byte result = 0;
	//дописываем логику
	return result;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы