Плавное включение 1 раз

Нужно плавно включать мотор и далее он работает.В примерах всё циклично,то есть постоянно плавно вкл и снова вкл по кругу.void setup() { pinMode(3, OUTPUT); } uint32_t tmr; int val = 0; bool dir = true; void loop() { if (millis() - tmr >= 20) { tmr = millis(); if (dir) val++; // увеличиваем яркость else val--; // уменьшаем if (val >= 255 || val <= 0) dir = !dir; // разворачиваем analogWrite(3, val); } }

Да. Что есть, то есть

Как сделать чтоб мотор плавно стартанул и крутился постоянно.Не могу сообразить,давно мучаюсь.

Цикл убрать или прервать

Да.Но как это сделать?В этом собственно и вопрос.

void setup() {
  pinMode(6, OUTPUT);
}
uint32_t tmr;
int val = 0;
bool dir = true;
void loop() {
  if (millis() - tmr >= 20) {
    tmr = millis();
    if (dir) val++; // увеличиваем яркость
    analogWrite(6, val);
  }
}
1 лайк

А мотор точно светится?

3 лайка

Конечно )).На макетке диод,а так мосфет для мотора будет.

Поставьте ограничение на значение val. Можно добавить вторым условием (с логическим “и”) прямо в 8 строку.

Если нужно только раскрутить и забыть, то 6 и if (dir) в 10 лишние. Электрическую часть работы с мотором я не обсждаю

Он с декоративной подсветкой.

Судя по коду, в определенный момент кинетическая энергия переходит в парах трения в тепловую с красивым бонусом в виде приятного глазу свечения

ЛГБТ*?

Спойлер

организация признана экстремистской, в РФ деятельность запрещена

void setup() {
pinMode(6, OUTPUT);
}
uint32_t tmr;
int val = 0;
void loop() {
if (millis() - tmr >= 20 && val < 255) {
tmr = millis();
val++; // увеличиваем яркость
analogWrite(6, val);
}
}

2 лайка

прокрути в сетапе for (val=0;val<=255;val++){analogWrite(6, val);delay(50)}; а из loop всё выбрось.

Да это работает.Я писал ’ <= 255 ’ и свечение падало в тусклое.Это нужно было добавить в код привода подъёмных ворот чтоб снизить стартовую нагрузку на компоненты.

Логично до 255, что в реализации функции analogWrite эквивалентно HIGH
Опоздал чутка

С delay() не подойдёт.

Новые вводные пошли…

1 лайк

Не)) это я nik182 ответил.Не ту кнопочку нажал для цитирования.

dellll