Как можно переключать переменные, записанные в памяти, по времени?
const int KEY_LEN = 32;;
unsigned long key1 = 0x76AFDBAA;
unsigned long key2 = 0xC6E2F8F8;
const int LED_PIN = 13; // Использовал цифровой вывод 13 arduino для подключения передатчика
unsigned long my_timer;
void setup()
{
Serial.begin(9600);
pinMode(13, OUTPUT);
my_timer = millis();
}
void loop()
{
if ((millis() - my_timer) <= 2000) //
{
unsigned long key = key1;
}
if ((millis() - my_timer) > 2000 & (millis() - my_timer) < 4000)
{
unsigned long key = key2;
}
if (key & 1) delayMicroseconds(4000);
else delayMicroseconds(2000);
}
У меня есть две клавиши, и я хочу переключаться между ними каждые 4 секунды без каких-либо кнопок. То есть при подаче напряжения питания ключи меняются друг с другом каждые 4 секунды. А именно, вам нужно загрузить один из ключей в переменную ключа, а затем работать с этим значением (сравнить его, прочитать, вывести на цифровой вывод и так далее).
Единственное, что приходит мне в голову, это использовать таймер, но я не могу записать его правильно, теперь он не работает. Нужно, чтобы он не останавливался на последнем ключе, а переключался все время.
@Антон, 👍0
Обсуждение0
Смотрите также:
- Использование millis() и micros() внутри процедуры прерывания
- Как сделать очень долгую функцию delay(), несколько часов
- Разница между «time_t» и «DateTime»
- Получение BPM из данного кода
- Как считать время в секундах?
- Создание таймера с использованием часов реального времени с указанием времени начала и остановки
- Arduino непрерывно считывает значение АЦП с помощью прерывания
- Использование TIMER0_COMPB_vect
То есть вам нужно использовать пакет: если (millis() - my_timer > 4000) { ключ = ключ++; my_timer = millis(); } Но все же я не понимаю, как вы можете переключать ключи друг между другом., @Антон
Извините, не могли бы вы рассказать мне немного больше, я не понял, как я могу установить эту переменную, @Антон