Arduino.Основы.Операторы

Arduino.Основы.Операторы

https://t.me/HotCheatSheet

setup() — используется для инициализации переменных, определения режимов работы выводов, запуска используемых библиотек и т.д.

Пример:

int buttonPin = 3;
void setup()
{
  Serial.begin(9600);
  pinMode(buttonPin, INPUT);
}
void loop()
{
  // ...
}


loop() — используется для действий с ардуиной. Loop значит цикл.

Пример

int buttonPin = 3;
// setup инициализирует последовательный порт и кнопку
void setup(){
  beginSerial(9600);
  pinMode(buttonPin, INPUT);
}
// в цикле проверяется состояние кнопки,
// и на последовательный порт будет отправлено сообщение, если она нажата
void loop(){
  if (digitalRead(buttonPin) == HIGH)
    serialWrite('H');
  else
    serialWrite('L');
 
  delay(1000);
}



Управляющие операторы

if — проверяет условие и если оно истинно запускает действие в блоке.

Синтаксис:

if (условие)
{
// выполнять действия
}


if...else — проверяет условие1, если ложно, проверяет условие2, если ложно, выполняется блок else.

Синтаксис:

if (условие1) {
  // выполнять действие A
} else if (условие2) {
  // выполнять действие B
} else {
  // выполнять действие C
}


for — используется для повторения блока операторов, заключенных в фигурные скобки.

Синтаксис:

for (инициализация; условие; инкремент){

// операторы выполняющиеся в цикле

}

Пример:

// Затемнение светодиода с использованием ШИМ-вывода
int PWMpin = 10; // Светодиод последовательно с резистором 470 ом на 10 выводов
void setup() {
 // настройка не нужна 
}

void loop() {
   for (int i=0; i <= 255; i++){
      analogWrite(PWMpin, i);
      delay(10);
   }
}


switch case — управляет процессом выполнения программы.

Синтаксис:

switch (var) {

case label:

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

break;

case label:

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

break;

default:

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

}

Параметры:

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

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


while — вычисляет в цикле непрерывно и бесконечно до тех пор, пока выражение в круглых скобках (), не станет равно логическому ЛОЖНО.

Синтаксис:

while(выражение){

// оператор(ы)

}

Параметры:

выражение - (булевский) C-оператор, который возвращает значение истина или ложь

Пример:

var = 0;

while(var < 200){
 // выполнить что-то, повторив 200 раз
 var++;
}


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

Синтаксис:

do {

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

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

Пример:

do {
  delay(50);          // подождать, пока датчики стабилизируются
  x = readSensors(); // проверить датчики 
} while (x < 100);


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

Пример:

for (x = 0; x < 255; x ++)
{
    digitalWrite(PWMpin, x);
    sens = analogRead(sensorPin); 
    if (sens > threshold){      // выходим из цикла если есть сигнал с датчика
       x = 0;
       break;
    } 
    delay(50);
}


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;
    }
}


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

Синтаксис:

label:

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

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

Пример:

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;}
            // еще код
        }
    }
}


Синтаксис

; (точка с запятой) — используется для обозначения конца оператора.

Пример:

int a = 13;


{} (фигурные скобки) — обозначение блока кода, используется в функциях, циклах или условных операторах.


// (одностроковый коментарий) — строки в программе, которые используются для информирования вас самих или других о том, как работает программа.

/* */ (многостроковый коментарий) — строки в программе, которые используются для информирования вас самих или других о том, как работает программа.

Пример:

x = 5; // Это комментарий в одной строке. Все после двойного слэша – комментарий
      // до конца строки

/* это многострочный комментарий – используйте его для закоментирования целых кусков кода

if (gwb == 0){   // комментарий в строке допустим внутри многострочного комментария
                // но не другой многострочный комментарий

}
// не забывайте «закрывать» комментарии – они должны быть парными!
*/


#define — удобная директива, который позволяет дать имя константе перед тем как программа будет скомпилирована.

Синтаксис:

#define constantName value

Пример:

#define ledPin 3
// компилятор заменит любое упоминание ledPin на занчение 3 во время компиляции


#include — используется для включчения сторонних библиотек в ваш скетч.

Синтаксис:

#include <библиотека>


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

= (оператор присваивания) — присваивает переменной слева от оператора значение переменной или выражения, находящееся справа.

Пример:

int sensVal;                  // объявление переменной типа integer
senVal = analogRead(0);       // присваивание переменной sensVal, значения, считанное с аналогового входа 0


+  (сложение), - (вычитание), * (умножение), / (деление) — возвращают результат выполнения арифметических действий над двумя операндами.

Синтаксис:

result = value1 + value2;

result = value1 - value2;

result = value1 * value2;

result = value1 / value2;

Параметры:

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

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

Пример:

y = y + 3;
x = x - 7;
i = j * 6;
r = r / 5;


% (остаток от деления) — Возвращает остаток от деления одного целого (int) операнда на другой.

Синтаксис:

result = dividend % divisor

Параметры:

dividend: делимое

divisor: делитель

Пример:

x = 7 % 5;   // x имеет значение 2
x = 9 % 5;   // x имеет значение 4
x = 5 % 5;   // x имеет значение 0
x = 4 % 5;   // x имеет значение 4


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

== (равно), != (не равно), < (меньше чем), > (больше чем), <= (меньше или равно), >= (больше или равно)

Синтаксис:

x == y //x равно y

x != y //x не равно y

x < y //x меньше чем y

x > y //x больше чем y

x <= y //x меньше чем или равно y

x >= y //x больше чем или равно y


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

&& (И) — истина, если оба операнда истина (true).

Синтаксис:

if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) { // считывает состояние двух портов

// ...

}


|| (ИЛИ) — истина, если хотя бы один операнд истина.

Синтаксис:

if (x > 0 || y > 0) {

// ...

}


! (НЕ) — true, если операнд false, и наоборот.

Синтаксис:

if (!x) {

// ...

}


Указатели доступа

* (указатель) — переменная, диапазон значений которой состоит из адресов ячеек памяти или специального значения — нулевого адреса.

& (ссылка) — простой ссылочный тип, менее мощный, но более безопасный, чем указатель.


Битовые операторы

& (побитовое И) — действует на позиции каждого бита, окружающих выражения независимо от того какой из операндов стоит первым, а какой вторым. Если оба входных бита равны 1, результирующий выходной сигнал равен 1, в противном случае выход равен 0.


| (побитовое ИЛИ) — как и оператор &, оператор | работает независимо с каждым битом окружающих его чисел. Если хотя бы один из этих битов 1, сигнал равен 1, иначе резульат будет 0.


^ (побитовое XOR или исключающее ИЛИ) — похож на оператор |, но с небольшим отличием, вернет 0, если оба бита будут равны 1.


~ (побитовое НЕ) — меняет каждый бит операнда на противоположный: 0 становится 1, а 1 становится 0.


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

Синтаксис:

переменная << количество_бит

переменная >> количество_бит

Параметры:

переменная - (byte, int, long)

количество_бит - целое число <= 32

Пример:

    int a = 5;        // в двоичной системе: 0000000000000101
    int b = a << 3;   // в двоичной системе: 0000000000101000, или 40 в десятичной
    int c = b >> 3;   // в двоичной системе: 0000000000000101, или снова 5, как было изначально


Составные операторы

++ (инкремент), -- (декремент) — инкрементирует или декрементирует значение переменной

Синтаксис:

x++; // увеличивает значение x на 1 и возвращает старое значение x

++x; // увеличивает значение x на 1 и возвращает новое значение x


x-- ; // уменьшает значение x на 1 и возвращает старое значение x

--x ; // уменьшает x на 1 и возвращает новое значение x

Параметры:

x: целое int или long (беззнаковые типы допускаются)

Примеры:

x = 2;
y = ++x;      // x имеет значение 3, y содержит 3
y = x--;      // x снова имеет значение 2, y по прежнему содержит 3 


+= (составное сложение), -= (составное вычитание), *= (составное умножение), /= (составное деление) — осуществляет математическую операцию между двумя переменными.

Синтаксис:

x += y; // эквивалентно выражению x = x + y;

x -= y; // эквивалентно выражению x = x - y;

x *= y; // эквивалентно выражению x = x * y;

x /= y; // эквивалентно выражению x = x / y;

Параметры:

x: переменная любого типа

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

Примеры:

x = 2;
x += 4;      // x содержит 6
x -= 3;      // x содержит 3
x *= 10;     // x содержит 30
x /= 2;      // x содержит 15


&= (составное побитовое И) — оператор составного побитового И (&=) часто употребляется между переменной и константой чтобы перевести отдельные биты переменной в низкий уровень (0).

Синтаксис:

x &= y; // эквивалентно x = x & y;

Параметры:

x: переменная типа char, int или long

y: целочисленная константа либо переменная типа char, int или long


|= (составное побитовое ИЛИ) — оператор составного побитового ИЛИ (|=) часто употребляется между переменной и константой чтобы установить (перевести в 1) отдельные биты переменной.

Синтаксис:

x |= y; // эквивалентно x = x | y;

Параметры:

x: переменная типа char, int или long 

y: целочисленная константа либо переменная типа char, int или long

Report Page