Справочник языка Ардуино

Arduino
Автор темы, Сержант
Сержант
Аватара
Arduino
Автор темы, Сержант
Сержант
Сообщения: 64
Зарегистрирован: 19 апреля 2017
С нами: 6 лет 11 месяцев

#1 Arduino » 12 июня 2019, 23:11

Язык можно разделить на четыре раздела: операторы, данные, функции и библиотеки.
Операторы
setup()
Функция используется для инициализации переменных, определения режимов работы выводов на плате и т.д. Функция запускается только один раз, после каждой подачи питания на микроконтроллер.

Код: Выделить всё

void setup()
{
pinMode(3, INPUT);

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

Код: Выделить всё

void loop()
{
digitalWrite(3, HIGH);
delay(1000);
digitalWrite(3, LOW);
delay(1000);

Управляющие операторы
if
Оператор if используется в сочетании с операторами сравнения (==, !=, <, >) и проверяет, достигнута ли истинность условия. Например, если значение переменной x больше 100, то включается светодиод на выходе 13, если меньше — светодиод выключается.

Код: Выделить всё


if 
(> 100) digitalWrite(3, HIGH);
if (< 100) digitalWrite(3, LOW);

if..else
Оператор else позволяет cделать проверку отличную от указанной в if, чтобы осуществлять несколько взаимо исключающих проверок. Если ни одна из проверок не получила результат ИСТИНА, то выполняется блок операторов в else.

Код: Выделить всё


if 
(> 100) digitalWrite(3, HIGH);
else digitalWrite(3, LOW);

switch…case
Подобно if, оператор switch управляет программой, позволяя задавать действия, которые будут выполняться при разных условиях. Break является командой выхода из оператора, default выполняется, если не выбрана ни одна альтернатива.

Код: Выделить всё


switch 
(x)
{
case 1: digitalWrite(3, HIGH);
case 2: digitalWrite(3, LOW);
case 3: break;
default:
 digitalWrite(4, HIGH);
}

for
Конструкция for используется для повторения операторов, заключенных в фигурные скобки. Например, плавное затемнение светодиода. Заголовок цикла for состоит из трех частей: for (initialization; condition; increment) — initialization выполняется один раз, далее проверяется условие condition, если условие верно, то выполняется приращение increment. Цикл повторяется пока не станет ложным условие condition.

Код: Выделить всё

void setup()
{
pinMode(3, OUTPUT);
}
void loop()
{
for (int i=0; i <= 255; i++){
analogWrite(3, i);
delay(10);
}

while
Оператор while используется, как цикл, который будет выполняться, пока условие в круглых скобках является истиной. В примере оператор цикла while будет повторять код в скобках бесконечно до тех пор, пока x будет меньше 10.

Код: Выделить всё

void loop()
{
while (< 10)
{
= x + 1;
Serial.println(x);
delay(200);
}

do…while
Оператор цикла do…while работает так же, как и цикл while. Однако, при истинности выражения в круглых скобках происходит продолжение работы цикла, а не выход из цикла. В приведенном примере, при x больше 10 операция сложения будет продолжаться, но с паузой 1000 мс.

Код: Выделить всё

void loop()
{
do
{
= x + 1;
delay(100);
Serial.println(x);
}
while (< 10);
delay(900);

break
continue

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

Код: Выделить всё

switch (x)
{
case 1: digitalWrite(3, HIGH);
case 2: digitalWrite(3, LOW);
case 3: break;
case 4: continue;
default:
 digitalWrite(4, HIGH);

Синтаксис
;
(точка с запятой)

Точка с запятой используется для обозначения конца оператора. Забытая в конце строки точка с запятой приводит к ошибке при компиляции.

Код: Выделить всё

    …
digitalWrite
(3, HIGH);

{}
(фигурные скобки)

Открывающая скобка “{” должна сопровождаться закрывающей скобкой “}”. Непарные скобки могут приводить к скрытым и непонятным ошибкам при компиляции скетча.

Код: Выделить всё

void setup()
{
pinMode(3, INPUT);

//
(комментарий)

Комментарии используются для напоминания, как работает программа. Они игнорируются компилятором и не экспортируются в процессор, не занимая место в памяти микроконтроллера.

Код: Выделить всё

= 5; // комментарий   

#define
Директива #define позволяет дать имя константе. Директива служит исключительно для удобства и улучшения читаемости программы.

Код: Выделить всё

#define ledPin 3  

#include
Директива #include используется для включения сторонних библиотек в скетч. Обратите внимание, что директивы #include и #define, не требуют точки запятой.

Код: Выделить всё

// библиотека для серво
#include <Servo.h>  

Типы данных
boolean
Переменная boolean может принимать значение — true или false. Каждая переменная типа boolean занимает один байт в памяти микроконтроллера.

Код: Выделить всё

boolean val = false;

char
Тип данных char хранит символьное значение и занимает в памяти 1 байт. Символы пишутся в одинарных кавычках, например: ‘A’, но в памяти символы хранятся в виде чисел.

Код: Выделить всё

// оба значения эквивалентны
char val = ‘A’;
char val = ’65’;

byte
byte — без знаковый тип данных для хранения чисел в диапазоне от 0 до 255. Переменная занимает в памяти 1 байт.

Код: Выделить всё

byte val = 255;

int
Тип данных для хранения целых чисел. Переменная типа int хранит 16-битные значения в диапазоне от -32768 до 32767.

Код: Выделить всё

int val = 32767;

unsigned int
Переменная типа unsigned int также может хранить двухбайтовые значения. Но вместо отрицательных чисел хранит только положительные значения в большом диапазоне от 0 до 65535.
float
Переменная типа float служит для хранения чисел с десятичным разделителем. Числа с плавающей точкой позволяют более точно описать аналоговые величины, чем целые числа. Точность дробных чисел составляет 6-7 знаков — это общее количество цифр, а не количество цифр после запятой.

Код: Выделить всё

float val = 25.1547;

Так же можно почитать Полный список команд языка Ардуино _https://alexgyver.ru/lessons/arduino-reference/


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Программирование»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 5 гостей