Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лекция 51 Ардуино и набор функций Serial
Цели лекции: 1. Знакомство с функцией Serial.begin() 2. Знакомство с функцией Serial.end() 3. Знакомство с функцией Serial.availabel() 4. Знакомство с функцией Serial.read() 5. Знакомство с функцией Serial.flush() 6. Знакомство с функцией Serial.print() 7. Знакомство с функцией Serial.println() 8. Знакомство с функцией Serial.write() 9. Знакомство с функцией Serial.peek 10. Знакомство с функцией SoftwareSerial() библиотеки SoftwareSerial 11. Знакомство с функцией SoftwareSerial.listen() библиотеки SoftwareSerial 12. Знакомство с функцией SoftwareSerial.isListening() библиотеки SoftwareSerial 13. Знакомство с функцией SoftwareSerial.jverflow() библиотеки SoftwareSerial
Плата Arduino Mega имеет три дополнительных последовательных порта: Serial на портах 19 (RX) и 18 (TX), Serial2 на портах 17 (RX) и 16 (TX), Serial3 на портах 15 (RX) и 14 (TX). Чтобы использовать эти порты для связи с компьютером, понадобятся дополнительные адаптеры USB-to-serial, т. к. они не подключены к встроенному адаптеру платы Mega.
Функции библиотеки Serial Функция Serial.begin() Функция Seriai.begin() инициирует последовательное соединение и задает скорость передачи данных в бит/c (бод). Для обмена данными с компьютером используйте следующие значения: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 или 115200. При соединении через порты входа/выхода 0 и 1 могут быть использованы другие значения скорости, требуемые устройством, с которым будет осуществляться обмен данными. Синтаксис функции Serial.begin ():
Serial.begin(speed) Для Arduino Mega и Arduino Due: Seriail.begin(speed) Serial2.begin(speed) Seriai3.begin(speed) Параметр: speed — скорость в бит/c (бод) (iong). Возвращаемого значения нет.
Функция Serial.end() Функция Seriai.end() закрывает последовательное соединение, порты RX и TX освобождаются и могут быть использованы для ввода/вывода. Синтаксис функции Seriai.end(): Seriai.end() Для Arduino Mega и Arduino Due: Seriail.end() Seriai2.end() Seriai3.end() Параметра нет. Возвращаемого значения нет.
Функция Serial.available() Функция Seriai.available() получает количество байтов (символов), доступных для чтения из последовательного интерфейса связи. Это те байты, которые уже поступили и записаны в буфер последовательного порта. Буфер может хранить до 128 байтов. Синтаксис функции Seriai.available(): Seriai.available() Для Arduino Mega и Arduino Due: Seriail. available() Seriai2.available() Seriai3. available() Параметра нет. Возвращаемое значение — количество байтов, доступных для чтения (int).
Функция Serial.read() Функция Serial.read() считывает очередной доступный байт из буфера последовательного соединения. Синтаксис функции Serial.read(): Serial.read() Для Arduino Mega и Arduino Due: Serial1.read() Serial2.read() Serial3.read() Параметра нет. Возвращаемое значение — следующий доступный байт или -1, если его нет (int).
Примеры использования функций Serial.available() и Serial.read():
int in=0; // переменная для хранения полученного байта void setup() { Serial.begin(9600); // устанавливаем последовательное соединение } void loop() { if (Serial.available() > 0) // если есть доступные данные { // считываем байт in = Serial.read(); // отсылаем то, что получили Serial.println(in,DEC); } }
Функция Serial.flush() Функция Serial. flush() ожидает окончания передачи исходящих данных (до версии Arduino 1.0 функция очищала буфер последовательного соединения). Синтаксис функции Serial.flush (): Serial.flush() Для Arduino Mega и Arduino Due: Serial1.flush() Serial2.flush() Serial3.flush() Параметра нет. Возвращаемого значения нет.
Функция Serial.print() Функция Serial.print() передает данные через последовательный порт как текст ASCII. Эта функция может принимать различные типы данных. С помощью второго опционального параметра можно задать базис (систему счисления) для чисел. Синтаксис функции Serial.print (): Serial.print(val) Serial.print(val, format) Для Arduino Mega и Arduino Due: Serial1, Serial2, Serial3. Параметры: - val — данные для передачи через последовательное соединение; - format — базис для целых чисел или количество знаков после запятой для вещественных: - byte; - bin (двоичный); - OCT (восьмеричный); - DEC (десятеричный); - hex (шестнадцатеричный); - для вещественных (дробных) чисел второй параметр задает количество знаков после запятой. Возвращаемого значения нет.
Функция Serial.println() Функция Serial.println() передает данные через последовательный порт как текст ASCII вместе со следующим за ним символом переноса строки (символ ASCII 13 или V) и символом новой строки (ASCII 10 или '\n'). Пераметры и типы данных для этой функции такие же, как и для функции Serial.print ().
Функция Serial.write() Функция Serial.write() передает данные как бинарный код через последовательное соединение. Данные посылаются единичным байтом или серией байтов. Для того, чтобы передать данные как символы, следует использовать другую функцию print ().
Синтаксис функции Serial.write (): Serial.write(val) Serial.write(str) Serial.print(buf, len) Для Arduino Mega: Serial1, Serial2, Serial3. Параметры: - val — один байт; - str — строка как серия байтов; - buf — массив байтов; - len — длина массива. Возвращаемого значения нет.
Функция Serial.peek() Функция Serial.peek() возвращает следующий доступный байт (символ) из буфера входящего последовательно соединения, не удаляя его из этого буфера. То есть успешный вызов этой фунции вернет то же значение, что и следующий за ним вызов функции read(). Синтаксис функции Serial.peek(): Serial.peek() Для Arduino Mega и Arduino Due: Serial1.peek() Serial2.peek() Serial3.peek() Параметра нет. Возвращаемое значение — следующий доступный байт или -1, если его нет (int).
Библиотека SoftwareSerial Библиотека SoftwareSerial позволяет осуществить последовательную передачу данных через другие цифровые контакты Arduino. Можно иметь несколько программных последовательных портов со скоростью до 115 200 битов. Программное обеспечение SoftwareSerial копирует функциональность библиотеки Serial (отсюда и название "SoftwareSerial"), но с некоторыми ограничениями: - при использовании нескольких программных последовательных портов только один может принимать данные одновременно; - на платах Mega и Mega 2560 для RX могут быть использованы только следующие контакты: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69); - на плате Leonardo для RX могут быть использованы только следующие контакты: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
Библиотека SoftwareSerial включает следующие функции:
В целом эти функции аналогичны функциям библиотеки Serial, поэтому далее мы рассмотрим только функции, уникальные для библиотеки SoftwareSerial.
Функция SoftwareSerial() Функция SoftwareSerial () создает экземпляр объекта последовательного порта SoftwareSerial. Для запуска последовательного порта на выводах rxPin, txPin необходимо выполнить функцию SoftwareSerial. begin(). Синтаксис функции SoftwareSerial(): SoftwareSerial(rxPin, txPin) Параметры: - rxPin — вывод для получения последовательных данных; - txPin — вывод для отправки последовательных данных. Возвращаемое значение — экземпляр объекта SoftwareSerial.
|
||||||||||||||||||
Последнее изменение этой страницы: 2021-02-07; просмотров: 316; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.109.30 (0.011 с.) |