Не выходит короткий импульс

0 - 500 1 - 502 2 - 504 3 - 507 4 - 509

5 - 512 6 - 514 7 - 517 8 - 519 9 - 521

10 - 524 11 - 526 12 - 529 13 - 531 14 - 534

15 - 536 16 - 539 17 - 541 18 - 543 19 - 546

Спойлер
uint16_t a = 0;
uint16_t b;

void setup() {
  // put your setup code here, to run once:
 Serial.begin(9600);
 while(1)
 {
 b = map(a, 0, 1023, 500, 3000);
 Serial.print(a);
 Serial.print(" - ");
 Serial.print(b);
 Serial.print("    ");
 delay(5);
 a++;
 if(!(a%5))
 Serial.println();
 if(a > 3100 )
 for(;;);
 }
}

void loop() {
}

Может я чего-то не понял? Извините тогда

Конечно. Откуда у Вас взялось

a++;

?

У ТС же чётко написано:

Почитайте мой вопрос в комментарии к первой строке.

При val равном 0, map выдаст 500, а при val==1 – 502. Всё, ничего другого там быть не может.

Вы это просмотрели?

вместо analog digital затесался.

Да, протупил! @ЕвгенийП , @Ljubitel , Извините ещё раз

Спасибо. А я-то чешу репу, что же не так?))

Поправил ))

:slightly_smiling_face:

Так не бывает. Программа всегда работает именно так, как написана. Вам это, кстати, уже говорили.

И пока Вы не будете слушать, что Вам говорят, а будете упираться рогом и надеяться, что кто-то даст Вам на блюдечке готовое решение, у Вас ничего не получится.

А то, что народ Вам подсовывает digital вместо analog, так люди развлекаются, троллят! А Вы тупо копипастите не дав себе труда даже прочитать, что Вам подсунули, и плачетесь, продолжая на что-то надеяться. Так это не работает :frowning:

неее
это он сам навыдумывал тут
Не выходит короткий импульс - #173 от пользователя Juzame?

а парни накопипастили просто не заметив.

Всё.

Я тоже “скопипастил” из #173 и не посмотрел внимательно )))

Мне нужно было чтобы при появлении на входе управляющего импульса было так: управляющий импульс будет от 0.5 до 4 милисекунд, а на выходе всегда будут импульсы определённой продолжительности. Продолжительность импульсов на выходе должна быть от 500 до 3000 микросекунд. Задаётся патенциометром. Поэтому вариант с if не проходит. Гружу проверочные кода (проги типо: поморгать светодиодом ) всё работает. Загружаю рабочий код на выходе болт (нуль), как вариант с if так же вариант с while.

Так 555 таймер решает задачу

Вопрос если кто пользовался SimulIDE. Я не понял как писать для него в него код. В опсании написанно что он видит код hex. Дело в том что hex я так понял делаеться из С кода . Но C компилятор ругаеться на код написанный Arduino IDE.

Так, вроде ж …

image

Или опять “не слава Богу”?

И вы, вместо того чтобы исправлять ошибки, решили сменить ИДЕ?

Я вас расстрою - причина того, что ваш ваш код не компилируется - вовсе не в том что ардуиноИДЕ плохая, а в том что вы не умеете программировать.

Там даже с формулированием задачи беда.

ТС обратите уж заодно внимание на таблицу(здря что ли человек старался).Время выполнения отдельных команд Arduino | Аппаратная платформа Arduino

Это всё от скудного ума.

Смело можно дополнить - «и учит формулировать и излагать свои мысли».