#define
Константы - возможность задавать имена значениям, которые делают код более понятным.
Константа задается с помощью директивы #define:
#define ИМЯ_КОНСТАНТЫ ЗНАЧЕНИЕ_КОНСТАНТЫ
На самом деле эта директива позволяет делать намного больше, но здесь мы рассмотрим только константы. Вот пример определения константы:
#define LED_PIN 7
pinMode(LED_PIN, OUTPUT);
Для Arduino создан ряд предопределенные констант, например:
// уровни сигналов
#define HIGH 0x1
#define LOW 0x0
// настройка цифровых портов на ввод и вывод
#define INPUT 0x0
#define OUTPUT 0x1
Обратите внимание что в конце выражение не требуется ставить точку с запятой.
Еще на стадии компиляции программы все вхождения в код констант заменяются их значениями.
const
Иногда бывает не очень удобно использовать директиву #define для создания констант. Например при объектно-ориентированным подходе, когда константу нужно инкапсулировать в класс или создать локальную константу в функции. Тогда удобнее использовать ключевое слово const:
#include <Arduino.h>
void setup()
{
const int pin = 5;
pinMode(pin, INPUT);
}
void loop()
{
}
Обратите внимание: значение константы должно быть определено сразу при ее объявлении.