Чтение строки из последовательного порта.
- Войдите на сайт для отправки комментариев
Пт, 16/08/2013 - 16:27
Нашел в инете не сложный пример для передачи/приема символа по последовательному порту.
Вот передатчик:
#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 ?
Вконец запутался...
Serial.println("HIGH"); //вывод сообщения о нажатииА зачем вам передавать не H, а HIGH ?
Интересно для дальнейшего развития так сказать)
Вот в этой ветке Помогите новичку дописать код. | Аппаратная платформа Arduino , сегодня-вечером/завтра - как раз будем разбирать эту задачу. Принятие строки из Serial, сравнения ее с каким-то образцом и выполнения действий по этому поводу.
Если осилите можете, пока, прочитать всю ветку, там хоть и другая задача решалась, до сих пор, но думаю "для дальнейшего развития" - что-нибудь найдете :)
P.S. Не смущайтесь что там речь идет про GPRS шилд. В конечном итоге работа с ним это все равно "отсылка и чтение строк из сериал". У меня GPRS шилда нет, но весь код оттуда - это не мешает запускать.