Изменение последовательности символов
Я включаю передачу одним ключом, который работает, чтобы открыть дверь, но через некоторое время мне нужно закрыть дверь, и для этого мне нужно использовать второй ключ. Я хочу обойтись без дополнительных кнопок, поэтому требуется испустить клавишу 1 при подаче питания, а через 20 секунд, например, переключиться и испустить клавишу 2. Как это сделать наиболее просто и правильно? Примените таймер или испустите клавишу 1, например 1000 раз, и после переполнения 1000 начните испускать клавишу 2.
Этот скетч только постоянно посылает первый ключ на цифровой PIN, не переключаясь на второй. Вам нужно выяснить, как вы можете переключиться на второй ключ.
const int KEY_LEN = 54; //Number of characters in the key
const char key1[KEY_LEN] = {"SSSSSS001101001001110001000000000000000000000011001010"}; // Open
const char key2[KEY_LEN] = {"SSSSSS001010111010000000000001000000000000010000000000"}; // Close
int Preamble = 1000; // Длительность преамбулы в микросекундах
int zero= 200; // Длительность нуля в микросекундах
int One= 440; // Длительность единицы в микросекундах
const int LED_PIN = 13; // Используется цифровой вывод 13 arduino для подключения передатчика
void setup()
{
pinMode(13, OUTPUT);
}
void loop()
{
for (int n = 0; n < KEY_LEN; n++)
{
if (key1[n] == '1') //execute if bit value == 1
{
sendSignal(One);
}
else if (key1[n] == '0')//execute if bit value == 0
{
sendSignal(zero);
}
else
{
sendSignal(Preamble); // Стартовый импульс
}
}
}
void sendSignal(int duration)
{
digitalWrite(LED_PIN, HIGH);
delayMicroseconds(duration);
digitalWrite(LED_PIN, LOW);
delayMicroseconds(duration);
}
@Антон, 👍0
1 ответ
Обычно я не рекомендую использовать delay()
s, но если этой системе когда-либо придется делать только то, что вы описали, то использование delay()
s-самый простой способ ее реализации.
Я бы предложил отправить ключ-1, возможно, несколько раз, может быть, с интервалом в полсекунды, задержаться на 20 секунд, которые вы предложили, а затем отправить ключ-2, определенно несколько раз для безопасности.
- Как уменьшить размер импортированной библиотеки DigiKeyboard
- Как объявить массив переменного размера (глобально)
- Установите частоту ШИМ на 25 кГц.
- Arduino nano как клавиатура HID
- Какова частота PWM-выхода на Arduino
- Keyboard.h не найден
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Как устранить шум от вентилятора 12 В с ШИМ-управлением на низкой скорости