AnswerBun.com

Сформировать сигнал из массива бит

введите сюда описание изображенияМне нужно воспроизвести при помощи цифрового пина ардуино вот такой ключик в виде последовательности 1 и 0, где единица занимает 2 мс высокого уровня и 2 мс низкого уровня,
а ноль занимает 1 мс высокого и 1 мс низкого уровня.

Реализовать последовательность 1 и 0 в виде амплитудной модуляции

Если известно, как выглядит логические единица и ноль, то можно ли составить их из задержек, но только один раз, где-то в начале. А затем, написать так:
key= 0b101100001111

Затем поставить цикл, и проходиться по каждому биту, и если бит равен 1, чтобы алгоритм сам выбрал последовательность задержек, свойственных единице, то есть 2 мс высокий уровень, 2 низкий.
Я думаю, что это можно сделать при помощи оператора выбора "switch case".

Выкладываю то, что смог сделать, но скетч не работает. Подскажите как сделать правильно! Спасибо!

void setup() {
pinMode(13, OUTPUT);
byte key = 0b101100001111;
}
 
void loop() {
for (byte n = 0; n < 12; n++) {
  
switch (bitRead(key, n)) {
  case 0:// выполнить, если значение бита == 0
     digitalWrite(13, HIGH);
     delayMicroseconds(1000);
     digitalWrite(13, LOW);
     delayMicroseconds(1000);
    break;
  case 1:  // выполнить, если значение бита == 1
      digitalWrite(13, HIGH);
     delayMicroseconds(2000);
     digitalWrite(13, LOW);
     delayMicroseconds(2000);
    break;
}
}
}

Add your own answers!

Related Questions

Конвертация строки в дату python

2  Asked on December 2, 2021 by ss_beer

   

Как и где лучше хранить API ключ

2  Asked on December 2, 2021 by russian-stan

   

webpack.config.js синтаксис

1  Asked on December 2, 2021 by jarry-roxwell

     

Что за тип данных PUCHAR

1  Asked on December 2, 2021 by krime

   

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved.