Чтение строки из последовательного порта.

Morze
Offline
Зарегистрирован: 05.08.2013

Нашел в инете не сложный пример для передачи/приема символа по последовательному порту.

Вот передатчик: 

#include <Bounce.h>

Bounce bouncer = Bounce(2, 100); //создаем экземпляр класса Bounce для 2 вывода

void setup()
{
  pinMode(2, INPUT);   //переключаем 2 вывод в режим входа
  digitalWrite(2, 1);  //включаем на нем подтягивающий резистор
  Serial.begin(9600);  //установка порта на скорость 9600 бит/сек
}

void loop()
{
  if (bouncer.update()) {     //если произошло событие
    if (bouncer.read()==0) {    //если кнопка нажата
      Serial.println("H");  //вывод сообщения о нажатии
      //bouncer.rebounce(500);      //повторить событие через 500мс
    } else {
      Serial.println("L"); //вывод сообщения об отпускании
    }
  }
}

Вот приемник: 

int outputPin = 13;                //здесь храним номер контакта
int val;                           //здесь будет храниться принятый символ

void setup()
{
  Serial.begin(9600);              //установка порта на скорость 9600 бит/сек
  pinMode(outputPin, OUTPUT);      //устанавливаем 13 контакт в режим вывода
}

void loop()
{
  if (Serial.available( )) {         //если есть принятый символ,
    val = Serial.read();            //  то читаем его и сохраняем в val
    if (val == 'H') {               //  если принят симовол 'H',...
      digitalWrite(outputPin, HIGH);//  то включаем светодиод
    }
    if (val == 'L') {               //  если принят симовол 'L',
      digitalWrite(outputPin, LOW); //    то выключаем светодиод
    }
  }
}

Идея проста. При нажатии на кнопку на передатчике, на приемнике загарается светодиод. При отпускании кнопки - гаснет.

Все хорошо работает. 

Но как мне быть, если надо для зажигания светодиода отправить не H а HIGH ?

Вконец запутался...

maksim
Offline
Зарегистрирован: 12.02.2012
Serial.println("HIGH");  //вывод сообщения о нажатии

А зачем вам передавать не H, а HIGH ?

Morze
Offline
Зарегистрирован: 05.08.2013

Интересно для дальнейшего развития так сказать)

leshak
Offline
Зарегистрирован: 29.09.2011

Вот в этой ветке Помогите новичку дописать код. | Аппаратная платформа Arduino , сегодня-вечером/завтра - как раз будем разбирать эту задачу. Принятие строки из Serial, сравнения ее с каким-то образцом и выполнения действий по этому поводу.

Если осилите  можете, пока, прочитать всю ветку, там хоть и другая задача решалась, до сих пор, но думаю "для дальнейшего развития" - что-нибудь найдете :)

P.S. Не смущайтесь что там речь идет про GPRS шилд. В конечном итоге работа с ним это все равно "отсылка и чтение строк из сериал". У меня GPRS шилда нет, но весь код оттуда - это не мешает запускать.