enum { // инициализация перечисления
MANUAL, // 0
AUTO, // 1
MAINTANACE, // 2
ERROR, // 3
} mode; //имя переменной напрямую, без экземпляра
void setup() {
Serial.begin(115200);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
}
void loop() {
//Пример присвоение значения константы напрямую
// mode = MANUAL; // можно присвоить имя константы, значение константы (0)
// Serial.println(mode); //вывод в консоль значения константы перечисления
// // Пример с алгоритмом ветвления.
if (!digitalRead(2) && digitalRead(3) && digitalRead(4)) {
mode = MANUAL; // можно через имя константы
} else if (digitalRead(2) && !digitalRead(3) && digitalRead(4)) {
mode = AUTO; // либо через значение константы
} else if (digitalRead(2) && digitalRead(3) && !digitalRead(4)) {
mode = 2; // либо через значение константы
}
else
{
mode = ERROR;
//Serial.println("Select mode!");
};
//int a;
switch (mode) {
case MANUAL:
Serial.println("Mode: Manu " + String(mode));
break;
case AUTO:
Serial.println("Mode: Auto " + String(mode));
break;
case MAINTANACE:
Serial.println("Mode: Maint " + String(mode));
break;
case ERROR:
Serial.println("ERROR! Select correct mode! " + String(mode));
break;
default:
Serial.println("Select mode!");
}
// Serial.println(sizeof(MANUAL)); // вывод в консоль значение константы в байтах
delay(600);
}