Как реализовать обработчик команд из COM порта?

roma28
Offline
Зарегистрирован: 21.03.2011

Нужно чтобы Arduino получив команду из COM порта выполнял определенный код.

Modular
Offline
Зарегистрирован: 05.03.2011

 Ну как-то так:
int intByte = 0;
void setup()
{
  // Открываем сериный порт
  Serial.begin(9600);
}
void loop()
{
  //если есть что считать
  if (Serial.available() > 0) {
    //считываем
    intByte = Serial.read();
   //преобразовываем полученный байт в десятеричное число
   int incomingNumber = intAsciiToBinary(intByte);

  //проверяем, что получили
  switch (incomingNumber)
   {
    case 1:
    // тут выполняется комманда 1
    Serial.println('a'); //выводим для наглядности
    break;
    case 2:
   // тут выполняется комманда 2  
   Serial.println('b');//выводим для наглядности
   break;
   default:
   // тут выполняется для всех остальных случаев
   Serial.println(incomingNumber);//выводим для наглядности
  }
}
}
int intAsciiToBinary(int intIn)
/*преобразовываем полученный байт в число*/
{
  int intTmp=-1; //возвращает -1, если не число
  if ((intIn>47) && (intIn<58)) {intTmp=intIn-48;};
  return intTmp;
}

roma28
Offline
Зарегистрирован: 21.03.2011

Спасибо

noonv
Offline
Зарегистрирован: 29.03.2011

для работы с ардуиной через COM-порт рекомендую использовать протокол Firmata :)