Case 2: //выполняется, когда var равно 2 — КиберПедия 

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Case 2: //выполняется, когда var равно 2

2022-11-24 24
Case 2: //выполняется, когда var равно 2 0.00 из 5.00 0 оценок
Заказать работу

break;

Default: // выполняется, если не выбрана ни одна альтернатива

// default необязателен

}

 

Синтаксис:

switch (var) {

case label:

// код для выполнения

break;
case label:

// код для выполнения

break;

default:

// код для выполнения

}

Параметры:

  • var: переменная, которая вычисляется для сравнения с вариантами в case
  • label: значение, с которым сравнивается значение переменной

 

do... while

Цикл do работает так же, как и цикл while, за исключением того, что условие проверяется в конце цикла, таким образом, цикл do будет всегда выполняться хотя бы раз.

do

{

// последовательность операторов

} while (проверка условия);

Пример

do

{

delay(50); // подождать, пока датчики стабилизируются

x = readSensors(); // проверить датчики
} while (x < 100);

 

Break

Break используется для принудительного выхода из циклов do, for или while, не дожидаясь завершения цикла по условию. Он также используется для выхода из оператора switch

Пример

for (x = 0; x < 255; x ++)

{
digitalWrite(PWMpin, x);

sens = analogRead(sensorPin);

if (sens > threshold){ // выходим из цикла если есть сигнал с датчика

x = 0;

break;

}

delay(50);

}

 


 

Continue

Оператор continue пропускает оставшиеся операторы в текущем шаге цикла. Вместо них выполняется проверка условного выражения цикла, которая происходит при каждой следующей итерации.

Пример

for (x = 0; x < 255; x ++)

{

 

if (x > 40 && x < 120){

 // если истина то прыгаем сразу на следующую итерацию цикла

continue;

 

}

 

digitalWrite(PWMpin, x);

delay(50); }

 

 


 

Return

Прекращает вычисления в функции и возвращает значение из прерванной функции в вызывающую, если это нужно.

Синтаксис

return;

return значение; // обе формы допустимы

Параметры

Значение: переменная или константа любого типа

Примеры:

Функция сравнивает значение на датчике входа с пороговым

int checkSensor(){

if (analogRead(0) > 400) {

return 1;

else{

return 0;

}
}

С помощью ключевого слова return удобно тестировать блоки кода без «закомментирования» больших кусков с возможным ошибочным кодом.

void loop(){
// здесь блестящая идея тестирования кода
return;

// оставшаяся часть неправильно функционирующего варианта здесь

// этот код никогда не будет выполняться
}

Оператор goto

Условное «перемещение» выполнения программы к определенной метке-указателю в самой программе, при этом пропускается весь код до самой метки, а исполняется - после нее.


Синтаксис:

label:

 

// какой-либо код

 

goto label; // переходим к метке label

Замечание по использованию

Использование goto не рекомендуется в С программировании, многие авторы книг не советуют его применять вообще, так как это не является необходимым(с их точки зрения). Причины их негодования заключаются в том, что программист при частом использовании в коде, команды goto - может запустить программу в бесконечный цикл, который потом трудно будет найти – отладка программы значительно усложниться. С другой стороны, если взгянуть на ассемблерный код, то там часто используется подобный переход по метке.

При разумном применении, команда может значительно упростить код программы и сохранить время программиста. Например, в случае необходимости выхода из глубоких циклов for, while, проверок if и прочих многократно вложенных контрукций.

Пример

for(byte r = 0; r < 255; r++){

for(byte g = 255; g > -1; g--){

for(byte b = 0; b < 255; b++){

if (analogRead(0) > 250){ goto bailout;}

// еще код

}

}

}
bailout:

 


 

Константы

Константами в языке Ардуино называют некоторые предопределенные значения. Они позволяют сделать код программы более легким для восприятия. Константы разделяют на три группы:

Логические константы

В языке Ардуино есть две константы для представления логических значений истина и ложь: true и false.

False

false определяется как 0, в логическом выражении.

True

Обычно говорят, что true — это 1, это корректно, но также корректно то, что для integer любой значение отличное от 0 будет также true в логическом выражение. Т.е -1, -2 и -200 будет также true в логическом выражении.

Обратите внимание, что true и false пишутся строчными буквами, в отличие от HIGH, LOW, INPUT и OUTPUT.

Задание значение на входа/выходе, HIGH и LOW

Возможны только два значения для считывания или записи на цифровой порт вход/выхода: HIGH и LOW.

HIGH

HIGH может обозначать несколько разное в зависимость от уставки режима порта как INPUT или OUTPUT. Когда порт вход/выхода установлен в режим INPUT с помощью функции pinMode, и считывается функцией digitalRead, микроконтроллер отдаст значение HIGH при напряжение 3В или выше на указанном порту.

Также порт может быть установлен как INPUT функцией pinMode, и затем установлен в HIGH значение функцией digitalWrite. Это подключит к порту внутренний подтягивающий резистор 20K, что позволит получать постоянное значение HIGH при чтение этого порта, если только значение не будет приведено к LOW внешней цепью подключенной к этому порту.

Когда порт вход/выхода сконфигурирован как OUTPUT функцией pinMode, и установлено значение HIGH функцией digitalWrite, на порту будет постоянное напряжение 5В. От этого порта может быть запитан светодиод, подключенный через резистор на землю или к другому порту, сконфигурированному как OUTPUT и установленному в LOW.

LOW

Значение LOW также разное для режима INPUT и OUTPUT. Когда порт сконфигурирован как INPUT, и считывается функцие digitalRead, микроконтроллер вернет LOW если напряжение на данном порту меньше или равно 2В.

Если же порт установлен в OUTPUT и LOW, то напряжение на выходе порта будет 0 Вольт. К этому порту можно подключать нагрузку как к земле, как описано выше на примере светодиода.

Задание режима порта вход/выхода, INPUT и OUTPUT

Цифровые порты вход/выхода, могут быть установлены в режимы работы как вход или выход: INPUT или OUTPUT. Установка производится функцией pinMode().

INPUT

Порты Arduino установленные в режим INPUT находятся в высокоимпедансном состоянии. Это означает то, что порт ввода дает слишком малую нагрузки на схему, в которую он включен. Эквивалентом внутреннему сопротивлению будет резистор 100 МОм подключенный к выводу микросхемы. Таким образом, для перевода порта ввода из одного состояния в другое требуется маленькое значение тока. Это позволяет применять выводы микросхемы для подключения различных датчиков, но не питания.

OUTPUT

Порт установленный в режим выхода — OUTPUT, находится в низкоимпедансном состояние. Он может пропускать через себя довольно большой ток, до 40 mA, достаточный для запитывание внешней цепи, например, светодиода. В этом состоянии порт может быть поврежден как замыкании на землю так и на питание 5В. Тока с порта микроконтроллера не достаточно для питания моторов и сервоприводов напрямую.


 

Функция pinMode

PinMode()

Описание

Устанавливает режим работы заданного вход/выхода(pin) как входа или как выхода.

Синтаксис

PinMode(pin, mode)

Параметры

  • pin: номер вход/выхода(pin), который Вы хотите установить
  • mode: режим одно из двух значение - INPUT или OUTPUT, устанавливает на вход или выход соответственно.

Возвращаемое значение

нет

Пример

int ledPin = 13; // Светодиод, подключенный к вход/выходу 13

void setup()
{

pinMode(ledPin, OUTPUT); // устанавливает режим работы - выход

}

Void loop()

{

digitalWrite(ledPin, HIGH); // включаетсветодиод

delay(1000); // ждет секунду

digitalWrite(ledPin, LOW); // выключаетсветодиод

delay(1000); // ждет секунду
}

Примечание

Аналоговые входы (analog pins) могут быть использованы как цифровые вход/выходы (digital pins). Обращение к ним идет по номерам от 14 (для аналогового входа 0) до 19 (для аналогового входа 5


 

Функция digitalWrite()

DigitalWrite()

Описание

Подает HIGH или LOW значение на цифровой вход/выход (pin).

Если вход/выход (pin) был установлен в режим выход (OUTPUT) функцией pinMode(), то для значение HIGH напряжение на соответствующем вход/выходе (pin) будет 5В (3.3В для 3.3V плат), и 0В(земля) для LOW.

Если вход/выход (pin) был установлен в режим вход (INPUT), то функция digitalWrite со значением HIGH будет активировать внутренний 20K нагрузочный резистор. Подача LOW в свою очередь отключает этот резистор. Нагрузочного резистра достаточно чтобы светодиод, подключенный к входу, светил тускло. Если вдруг светодиод работает, но очень тускло, возможно необходимо установить режим выход (OUTPUT) функцией pinMode().

Замечание. Вход/выход 13 сложнее использовать как цифровой вход, т.к. он имеет встроенный в плату резистор и светодиод. Если вы активируете еще внутренний нагрузочный резистор 20K, то напряжение на этом входе будет около 1.7В, вместо ожидаемых 5В, т.к. светодиод и добавочный резистор снижает напряжение, т.е. Вы всегда будете получать LOW. Если же Вам все же необходимо использовать 13ый вход/выход, то используйте внешний нагрузочный резистор.

Синтаксис

DigitalWrite(pin, value)

Параметры

  • pin: номер вход/выхода(pin)
  • value: значение HIGH или LOW

Возвращаемое значение

нет

Пример

int ledPin = 13; // Светодиод подключенный к вход/выходу 13

void setup()
{

pinMode(ledPin, OUTPUT); // устанавливает режим работы - выход

}

 

Void loop()

{

digitalWrite(ledPin, HIGH); // включаетсветодиод

delay(1000); // ждет секунду

digitalWrite(ledPin, LOW); // выключаетсветодиод

delay(1000); // ждет секунду
}

Примечание

Аналоговые входы (analog pins) могут быть использованы как цифровые вход/выходы (digital pins). Обращение к ним идет по номерам от 14 (для аналогового входа 0) до 19 (для аналогового входа 5).

Функция digitalRead()

DigitalRead()

Описание

Функция считывает значение с заданного входа - HIGH или LOW.

Синтаксис

digitalRead(pin)

Параметры

pin: номер вход/выхода(pin) который Вы хотите считать

Возвращаемое значение

HIGH или LOW

Пример

int ledPin = 13; // Светодиод подключенный к вход/выходу 13

int inPin = 7; // кнопка на входе 7

int val = 0; // переменная для хранения значения

 

Void setup()

{
pinMode(ledPin, OUTPUT); // устанавливает режим работы - выход для 13го вход/выхода (pin)
pinMode(inPin, INPUT); // устанавливает режим работы - вход для 7го вход/выхода (pin)

}

 

 

Void loop()

{
val = digitalRead(inPin); // считываем значение с входа

digitalWrite(ledPin, val); // устанавливаем значение на светодиоде равным значению входа кнопки

}

Примечание

Если вход не подключен, то digitalRead может возвращать значения HIGH или LOW случайным образом.

Аналоговые входы (analog pins) могут быть использованы как цифровые вход/выходы (digital pins). Обращение к ним идет по номерам от 14 (для аналогового входа 0) до 19 (для аналогового входа 5).

Функция analogRead()

Функция считывает значение с указанного аналогового входа. Большинство плат Arduino имеют 6 каналов (8 каналов у платы Mini и Nano, 16 у Mega) c 10-битным аналого-цифровым преобразователем (АЦП). Напряжение поданное на аналоговый вход, обычно от 0 до 5 вольт будет преобразовано в значение от 0 до 1023, это 1024 шага с разрешением 0.0049 Вольт. Разброс напряжение и шаг может быть изменен функцией analogReference().

Считывание значение с аналогового входа занимает примерно 100 микросекунд (0.0001 сек), т.е. максимальная частота считывания приблизительно 10,000 раз в секунду.

Синтаксис

analogRead(pin)

Параметры

pin: номер порта аналогового входа с которого будет производиться считывание (A0..A5 для большинства плат, 0..7 для Mini и Nano и 0..15 для Mega)

Плата Рабочее напряжение Выход Возвращаемое значение
Uno 5 Вольт A0.. A5 10 бит
Mini, Nano 5 Вольт A0.. A7 10 бит
Mega, Mega2560, MegaADK 5 Вольт A0.. A14 10 бит
Micro 5 Вольт A0.. A11* 10 бит
Leonardo 5 Вольт A0.. A11* 10 бит
Zero 3.3 Вольт A0.. A5 12 бит**
Due 3.3 Вольт A0.. A11 12 бит**
MKR Family boards 3.3 Вольт A0 to A6 12 бит**

* - A0 до A5 обозначены на платах, А6 до А11 находятся на пинах 4,6,8,9,10 и 12
** - По умолчаниею analogRead() возвращает значение с разрешением 10 бит, для увеличения битности до 12 используйте команду analogReadResolution()

Замечание

Если аналоговый вход не подключен, то значения возвращаемые функцией analogRead() могут принимать случайные значения.

Пример

int analogPin = 3; // номер порта к которому подключен потенциометр
int val = 0; // переменная для хранения считываемого значения
void setup()
{

Serial.begin(9600); // установка связи по serial

}

Void loop()

{
val = analogRead(analogPin); // считываем значение

Serial.println(val); // выводим полученное значение

}

Функция analogReference()

Описание

Функция определяет опорное напряжение относительно которого происходят аналоговые измерения. Функция analogRead() возвращает значение с разрешением 10 бит пропорционально входному напряжению на аналоговом входе, и в зависимости от опорного напряжения.

Возможные настройки:

  • DEFAULT: стандартное опорное напряжение 5 В (на платформах с напряжением питания 5 В) или 3.3 В (на платформах с напряжением питания 3.3 В)
  • INTERNAL: встроенное опорное напряжение 1.1 В на микроконтроллерах ATmega168 и ATmega328, и 2.56 В на ATmega8.
  • INTERNAL1V1: встроенное опорное напряжение 1.1 В (Arduino Mega)
  • INTERNAL2V56: встроенное опорное напряжение 2.56 (Arduino Mega)
  • EXTERNAL: внешний источник опорного напряжения, подключенный к выводу AREF

Синтаксис

analogReference(type)

Параметры

type: определяет используемое опорное напряжение (DEFAULT, INTERNAL или EXTERNAL).

Возвращаемое значение

нет

Внимание

Внешнее напряжение рекомендуется подключать к выводу AREF через резистор 5 кОм.

Таким образом уменьшается риск повреждения микросхемы Atmega если настройки analogReference не совпадают с возможностями платформы. Однако при этом произойдет небольшая просадка напряжения, вследствие того, что имеется встроенный резистор 32 кОм, подключенный к выводу AREF. В этом случае оба резистора работают как делитель напряжения. Подсоединение внешнего резистора позволяет быстро переключаться на напряжение 3.3 В вывода AREF с напряжения 5 В DEFAULT без конфигурации аппаратной части и АЦП.

Использование вывода AREF

Напряжение, подключенное к выводу AREF, конвертируется АЦП и, затем, определяется значение напряжения, при котором АЦП выдает самое высокое цифровое значение, т.е 1023. Другие значения напряжения, поступающие в АЦП, конвертируются пропорционально. Таким образом, при настройке DEFAULT 5 В значение напряжения 2.5 В в АЦП будет конвертироваться в 512.

В стандартной конфигурации платформ Arduino вывод AREF (вывод 21 Atmega) не задействован. В этом случае при настройке DEFAULT к выводу подключается внутреннее напряжение AVCC. Соединение является низко-импедансным и любое напряжение подведенное к выводу в этот момент может повредить микросхему ATMEGA.

Настройкой INTERNAL к выводу AREF подключается внутреннее напряжение 1.1 В (или 2.56 микросхемы ATmega8). При этом напряжение соответствующее или превышающее 1.1 В будет конвертироваться АЦП в 1023. Другие значения напряжения конвертируются пропорционально.

Внутреннее подключение источника 1.1 В к выводу является высоко-импедансным, что означает, что для измерение напряжения на выводе может быть произведено только мультиметром с высоким сопротивлением. Ошибочное подключение напряжения к выводу AREF при этой настройке функции analogReference не повредит микросхему, но превысит значение 1.1 В. В этом случае АЦП будет конвертировать напряжение внешнего источника. Во избежание вышеописанных проблем настоятельно рекомендуется подключать внешнее напряжение через резистор 5 кОм.

Рекомендуемой настройкой для вывода AREF является EXTERNAL. При этом происходит отключение обоих внутренних источников, и внешнее напряжение будет являться опорным для АЦП.

Функция analogWrite()

Описание

Выдает аналоговую величину (ШИМ волну) на порт вход/выхода. Функция может быть полезна для управления яркостью подключенного светодиода или скоростью электродвигателя. После вызова analogWrite() на выходе будет генерироваться постоянная прямоугольная волна с заданной шириной импульса до следующего вызова analogWrite (или вызова digitalWrite или digitalRead на том же порту вход/выхода). Частота ШИМ сигнала приблизительно 490 Hz.

На большинстве плат Arduino (на базе микроконтроллера ATmega168 или ATmega328) ШИМ поддерживают порты 3, 5, 6, 9, 10 и 11, на плате Arduino Mega порты с 2 по 13. На более ранних версиях плат Arduino analogWrite() работал только на портах 9, 10 и 11.

Для вызова analogWrite() нет необходимости устанавливать тип вход/выхода функцией pinMode().

Функция analogWrite никак не связана с аналоговыми входами и с функцией analogRead.

Синтаксис

analogWrite(pin, value)

Параметры

  • pin: порт вход/выхода на который подаем ШИМ сигнал.
  • value: период рабочего цикла значение между 0 (полностью выключено) and 255 (сигнал подан постоянно).

Возвращаемое значение

нет

Замечание

Период ШИМ сигнала на портах вход/выхода 5 и 6 будет несколько длиннее. Это связано с тем, что таймер для данных выходов также задействован функциями millis() и delay(). Данный эффект более заметен при установке коротких периодов ШИМ сигнала (0-10).

Пример

Задание яркости светодиода пропорционально значению, снимаемому с потенциометра

intledPin = 9; // Светодиод подключен к выходы 9

intanalogPin = 3; // потенциометр подключен к выходу 3

intval = 0; // переменная для хранения значения

Voidsetup()

{

pinMode(ledPin, OUTPUT); // установка порта на выход

}
voidloop()
{

val = analogRead(analogPin); // считываем значение с порта, подключенному к потенциометру

analogWrite(ledPin, val / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255

}

Синтаксис

  • ; (semicolon)
  • {} (curly braces)
  • // (single line comment)
  • /* */ (multi-line comment)

Арифметические операторы

  • = (assignment)
  • + (addition)
  • - (subtraction)
  • * (multiplication)
  • / (division)
  • % (modulo)

Операторы сравнения

  • == (equal to)
  • != (not equal to)
  • < (less than)
  • > (greater than)
  • <= (less than or equal to)
  • >= (greater than or equal to)

Логические операторы

  • && (И)
  • || (ИЛИ)
  • ! (Отрицание)

Унарные операторы

  • ++ (increment)
  • -- (decrement)
  • += (compound addition)
  • -= (compound subtraction)
  • *= (compound multiplication)
  • /= (compound division)

 

Serial

Набор функций Serial служит для связи устройства Ардуино с компьютером или другими устройствами, поддерживающими последовательный интерфейс обмена данными. Все платы Arduino имеют хотя бы один последовательный порт (UART, иногда называют USART). Для обмена данными Serial используют цифровые порты ввод/вывода 0 (RX) и 1 (TX), а также USB порт. Важно учитывать, что если вы используете функции Serial, то нельзя одновременно с этим использовать порты 0 и 1 для других целей.

Среда разработки Arduino имеет встроенный монитор последовательного интерфейса (Serial monitor). Для начала обмена данными необходимо запустить монитор нажатием кнопки Serial monitor и выставить ту же скорость связи (baud rate), с которой вызвана функция begin().

Плата Arduino Mega имеет три дополнительных последовательных порта: Serial1 на портах 19 (RX) и 18 (TX), Serial2 на портах на портах 17 (RX) и 16 (TX), Serial3 на портах на портах 15 (RX) и 14 (TX). Чтобы использовать эти порты для связи с компьютером понадобится дополнительные адаптеры USB-to-serial, т.к. они не подключены к встроенному адаптеру платы Mega. Для связи с внешним устройством через последовательный интерфейс соедините TX порт вашего устройства с RX портом внешнего устройства и RX порт вашего устройства с портом TX внешнего и соедините "землю" на устройствах. (Важно! Не подключайте эти порты напрямую к RS232 порту, это может повредить плату).

Serial.begin()

Инициирует последовательное соединение и задает скорость передачи данных в бит/c (бод). Для обмена данными с компьютером используйте следующие значения: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 или 115200. При соединении через порты вход/выхода 0 и 1 могут быть использованы другие значения скорости, требуемые устройством с которым будет осуществляться обмен данными.

Синтаксис

Serial.begin(speed)

Дополнительно, только для Arduino Mega:

Serial1.begin(speed)
Serial2.begin(speed)

 

Serial3.begin(speed)

Параметры

  • speed: скорость в бит/c (бод). (long)

Пример

void setup() { Serial.begin(9600);

// открывает последовательный порт, устанавливает скорость 9600 бит/c

 

}

 

void loop() {}

Serial.end()

Закрывает последовательное соединение, порты RX и TX освобождаются и могут быть использованы для ввод/вывода. Для восстановления последовательного соединения используйте Serial.begin().

Синтаксис

Serial.end()

Serial.available()

Функция получает количество байт(символов) доступных для чтения из последовательного интерфейса связи. Это те байты которые уже поступили и записаны в буфер последовательного порта. Буферможетхранитьдо 64 байт.

Синтаксис

Serial. available()

Возвращаемое значение

Количество байт доступных для чтения. (int)

Пример

intincomingByte = 0; // для хранения полученного байта
voidsetup() {

Serial.begin(9600); // устанавливаем последовательное соединение

}
voidloop() {

if(Serial.available() > 0) { //если есть доступные данные

// считываем байт

incomingByte = Serial.read();

// отсылаем то, что получили
Serial.print("I received: ");

Serial.println(incomingByte, DEC);

} }

Serial.read()

Cчитывает очередной доступный байт из буфера последовательного соединения.

Синтаксис

Serial. read()

Возвращаемое значение

Следующий доступный байт или -1 если его нет (int)

Пример

intincomingByte = 0; // переменная для хранения полученного байта
voidsetup() {

Serial.begin(9600); // устанавливаем последовательное соединение

}

voidloop() {

if(Serial.available() > 0) { //если есть доступные данные

// считываем байт
incomingByte = Serial.read();
// отсылаем то, что получили

Serial.print("I received: ");

Serial.println(incomingByte, DEC);

}
}

Serial.flush()

Ожидает окончания передачи исходящих данных (до версии Arduino 1.0 функция очищала буфер последовательного соединения).

Синтаксис

Serial.flush()

Serial.print()

Передает данные через последовательный порт как ASCII текст. Эта функция может принимать различные типы данных. Так целые числа выводятся соответствующими им символами ASCII. Вещественные выводятся с помощью двух ASCII символов, для целой и дробной части. Байты передаются как символ с соответствующим номером. Симоволы и строки отсылаются как есть. Пример:

· Serial.print(78) передается как "78"

· Serial.print(1.23456) передается как "1.23"

· Serial.print(byte(78)) передается как "N" (т.к. в таблице ASCII "N" под 78 номером)

· Serial.print('N') передается как "N"

· Serial.print("Hello world.") передаетсякак "Hello world."

С помощью второго опционально параметра можно задать базис (систему счисления) для чисел. Допустимые значения BYTE, BIN (двоичный), OCT (восьмиричный), DEC (десятеричный), HEX (шестнадцатеричный). Для вещественных (дробных) чисел второй параметр задает количество знаков после запятой. Пример:

  • Serial.print(78, BYTE) выводит "N"
  • Serial.print(78, BIN) выводит "1001110"
  • Serial.print(78, OCT) выводит "116"
  • Serial.print(78, DEC) выводит "78"
  • Serial.print(78, HEX) выводит "4E"
  • Serial.println(1.23456, 0) выводит "1"
  • Serial.println(1.23456, 2) выводит "1.23"
  • Serial.println(1.23456, 4) выводит "1.2346"

Синтаксис

Serial.print(val)
Serial.print(val, format)

Параметры

  • val: данные для передачи через последовательное соединение
  • format: базис для целых чисел или количество знаков после запятой для вещественных

Example:

intx = 0; // переменная
voidsetup() {

Serial.begin(9600); // открываем последовательное соединение

}
voidloop() {

// print labels

Serial.print("NO FORMAT");

Serial.print("\t"); // выводим tab

Serial.print("DEC");
Serial.print("\t");
Serial.print("HEX");  

Serial.print("\t");

Serial.print("OCT");
Serial.print("\t");

Serial.print("BIN");

Serial.print("\t");
Serial.println("BYTE");
for(x=0; x< 64; x++){ // выводим печатные символы ASCII
// вывовдим в различных базисах

Serial.print(x); // выводим в десятичном, тоже, что и с "DEC" (по умолчанию)

Serial.print("\t");
Serial.print(x, DEC);
Serial.print("\t");
Serial.print(x, HEX);
Serial.print("\t");
Serial.print(x, OCT);
Serial.print("\t");
Serial.print(x, BIN);
Serial.print("\t");
Serial.println(x, BYTE); // println делает добавляет после данных символ переноса строки

delay(200);

}

Serial.println(""); // еще перенос строки

}

Serial.println()

Передает данные через последовательное соединение как ASCII текст с следующим за ним символом переноса строки (ASCII символ 13 или '\r') и символом новой строки (ASCII 10 или '\n'). Пераметры и типы данных для этой функции такие же, как и для Serial.print().

Синтаксис

Serial.println(val)
Serial.println(val, format)

Параметры

  • val: данные для передачи через последовательное соединение
  • format: базис для целых чисел или количество знаков после запятой для вещественных

Пример:

/*

Считывает данные с аналогового входа 0, и передает значение

*/
intanalogValue = 0; // переменная для хранения считываемого значения
voidsetup() {

Serial.begin(9600); //устанавливаем последовательное соединение

}
voidloop() {

// считываем данные с входа 0

analogValue = analogRead(0);
// выводим в различных базисах

Serial.println(analogValue); // print as an ASCII-encoded decimal

Serial.println(analogValue, DEC); // print as an ASCII-encoded decimal

Serial.println(analogValue, HEX); // print as an ASCII-encoded hexadecimal

Serial.println(analogValue, OCT); // print as an ASCII-encoded octal

Serial.println(analogValue, BIN); // print as an ASCII-encoded binary

Serial.println(analogValue, BYTE); // print as a raw byte value

delay(10);

}

Serial.write()

Функция передает данные как бинарный код через последовательное соединение. Данные послаются как один или серия байтов. Для того, чтобы передать данные как символы следует использовать другую функцию print().

Синтаксис

Serial.write(val)
Serial.write(str)
Serial.write(buf, len)

Параметры

  • val: один байт
  • str: строка как серия байт
  • buf: массив байт
  • len: длина массива

Serial.peek()

Возвращает следующий доступный байт (символ) из буфера входящего последовательно соединения, не удаляя его из этого буфера. То есть успешный вызов этой фунции вернет тоже значение, что и следующий за ним вызов функции read().

Синтаксис


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.26 с.