Нужно плавно включать мотор и далее он работает.В примерах всё циклично,то есть постоянно плавно вкл и снова вкл по кругу.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);
}
}
А мотор точно светится?
Конечно )).На макетке диод,а так мосфет для мотора будет.
Поставьте ограничение на значение 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);
}
}
прокрути в сетапе for (val=0;val<=255;val++){analogWrite(6, val);delay(50)}; а из loop всё выбрось.
Да это работает.Я писал ’ <= 255 ’ и свечение падало в тусклое.Это нужно было добавить в код привода подъёмных ворот чтоб снизить стартовую нагрузку на компоненты.
Логично до 255, что в реализации функции analogWrite эквивалентно HIGH
Опоздал чутка
С delay() не подойдёт.
Новые вводные пошли…
Не)) это я nik182 ответил.Не ту кнопочку нажал для цитирования.
dellll