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