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

По замыслу должно быть LOW.

Точно LOW.

я уже запутался в кодах этих ваших, но прошу исправить, мину замедленного действия, подложенная мной нечаянно.
конкретно

val = map(analogRead(A0),0,1023,500,3000);// присваиваю новые значения к значениям реостата

заменить на

val = map(analogRead(RE),0,1023,500,3000);// присваиваю новые значения к значениям реостата

а то не ровен час рванет))

1 лайк

А какая разница что A0 что RE? Они же равны или нет?

На выходе ни какой реакции.

Что бы подтянуть вход к минусу надо использовать INPUT вместо INPUT_PULLUP?

Нет, этого недостаточно, нужно еще кинуть резистор примерно 10кОм от входа к GND

Максимка! Морзянка.

1 лайк

:sweat_smile:
:+1:
иногда, да легче так))
но ты то хоть RE поправь, а то надают мне по шапке кто нибудь потом.

Да ваще пофик в данном случае… ))

вот вот))

И кстати по поводу срача иголки при включении. При подаче питания питания знак звука над динамиком появляется. :grinning_face:

ага :rofl:
даже без проводов)) загрузчик наверное отрабатывает))

1 лайк

А вот теперь скажите. Если после строки №18 “точно LOW”, на кой хрен Вы тут же кидаетесь снова это проверять в строке №14? В расчёте на то, что за наносекунды между строками №18 и №14 что-то успело измениться? Или зачем? Как эти строки совмещаются друг с другом?

Это сложно. Для начала бы узнать у ТС понимает ли он разницу между ЕСЛИ и ПОКА. А заодно и о разнице между = и == .

Ну почему же! Вон у меня морзянкой все часы пиликают. И я знаю кто из них спешат/отстают. И даже ребёнок морзянку цифр выучил. Ничего сложного.) Да и жена, хоть и не знает, но интуичит.)

Всем привет. Вот примерная схема. Вместо LED будет стоять затвор мосфета.

Крайняя версия скетча.

const int RE = A0;//к А0 подключаю реостат
const int BU = 7;// к 7 выводу подключаю комп
const int OUT = 4;// с 4 выход 
int val = 0;// переменная для хранения знач с реостата

void setup() {
  pinMode (OUT, OUTPUT);
  pinMode (BU, INPUT);

}

void loop() {
  int val = digitalRead(RE);
  val = map(val,0,1023,500,3000);// присваиваю новые значения к значениям реостата
    while (digitalRead(BU) == HIGH){// условие если на входе BU LOW  
    digitalWrite(OUT, HIGH);//на выходе делаем HIGH
    delayMicroseconds(val);// ждём паузу согласно реостату
    digitalWrite(OUT, LOW);// опускаем OUT в LOW
     while (digitalRead(BU) == LOW);//ждём следующего нажатия
  }
  

}

Описание. От источника приходят прямоугольные импульсы 18в. Через делитель на вход попадает 4в. Продолжительность импульсов на выходе регулируется патенциометром.

И всё это дело не работает. На выходе ничего нет.