Я делаю программу «планирования» в Arduino, должна посылать много строковых команд в зависимости от времени дня.
Я использую способ - сделать 'для' l oop который выполняется в течение необходимого времени, и если текущее время имеет значение для запуска чего-либо - он запускает команду 'switch' для запуска правильного кода.
Вот пример кода моей функции 'for':
void CheckIfAction(const RtcDateTime& dt) {
const int A = 6; // Action Array Size
int ActionTimes[A][4] = {
{6,18,37,1},
{6,18,38,2},
{5,15,20,11},
{5,16,45,51},
{5,16,50,52},
{5,23,35,15}
};
int i;
for ( i = 0; i < A; i++ ) {
if ((dt.DayOfWeek()==ActionTimes[i][0]) && (dt.Hour()==ActionTimes[i][1]) && (dt.Minute()==ActionTimes[i][2]) && (dt.Second() < 2)) {
RunMyAction(ActionTimes[i][3]);
}
}
}
А вот и коммутатор:
void RunMyAction(const int& MyActionCode)
{
switch(MyActionCode) {
case 1:
digitalWrite(2, LOW); // Turn the LED on by making the voltage LOW
// Serial.println("Time condition is met, LED is ON");
Serial.println("S041OFE");
delay(1500);
Serial.println("S041ONE");
delay(1500);
Serial.println("S041OFE");
delay(1500);
Serial.println("S041ONE");
break;
case 2:
digitalWrite(2, HIGH); // Turn the LED off by making the voltage HIGH
Serial.println("S017ONE");
delay(1000);
Serial.println("S017OFE");
delay(1000);
Serial.println("S017ONE");
delay(1000);
Serial.println("S017OFE");
delay(1000);
Serial.println("S017ONE");
delay(1000);
Serial.println("S017OFE");
delay(1000);
break;
case 11: //Before Knissat Shabat - Full status update.
Serial.println("S01D00000D00ES02D01001100ES03D00101101ES04D1100D0DDES05D10011DDDE");
delay(1000);
break;
case 15: //Last GoodNight Shabat - Full status update.
Serial.println("S01D00000000ES02D00000000ES03D00000100ES04D1000D00DES05D00011DDDE");
delay(1500);
break;
case 51:
Serial.println("S036OFE");
delay(1500);
break;
case 52:
Serial.println("S047OFES036ONE");
delay(1500);
break;
//#include "ExcelActions.txt"
}
}
Чтобы упростить задачу, я пытаюсь использовать Excel для генерации деталей "case" в соответствии со списком функций, которые я иметь в нем, и (как вы можете видеть в последней команде выше) включить сгенерированный файл с хорошим стилем вместо его ввода или копирования / вставки.
Мои вопросы: 1. Могу ли я действительно включить текстовый файл в этом месте, как я сам набрал, 2. Где я должен разместить этот файл для Arduino IDE, чтобы найти его. Я попытался поместить его в каталог файла .ino и получил ошибку компиляции - «Файл или каталог не существует».
Большое спасибо!