millis() вместо delay()

AndrejNut
Offline
Зарегистрирован: 19.04.2021

Есть проблемы с переделкой кода. Я новичок и ещё не совсем понимаю синтаксис millis(). Кто может объяснить как-то простенько , на первый раз?(примеры использования написать , и т.д.)Потому что практически везде где видел , делали циклы... А мне нужна лишь "пауза" И помочь с кодом...
Допустим банальный код мигания лампочкой с millis() , а не delay().

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Мигаем светодиодом без delay()

И да, это делается через циклы, в этом вся суть. Если вам нужна чисто пауза - используйте delay()

Morroc
Offline
Зарегистрирован: 24.10.2016

AndrejNut пишет:
Допустим банальный код мигания лампочкой с millis() , а не delay().

Усложните себе задачу - сделайте медленное мигание и добавьте кнопку, которая бы мгновенно включала лампочку в любой момент (без прерываний, конечно), а то не поймете для чего именно millis() нужен и рано или поздно в это упретесь полюбому.

AndrejNut
Offline
Зарегистрирован: 19.04.2021

Так?

#include <GyverButton.h>
#define RLED 11
GButton myButt(6, HIGH_PULL, NORM_OPEN);
int ledState = LOW;
long previousMillis = 0;
long interval = 100;
int val = 0;
void setup() {
  pinMode(RLED, OUTPUT);
 myButt.setDebounce(25);
}

void loop() {
unsigned long currentMillis = millis();

if (currentMillis - previousMillis > interval ){
interval = interval + 100;
  previousMillis = currentMillis;

   if(ledState == LOW && val == 0){
    ledState = HIGH;
    } else {
      ledState = LOW;
      }    
digitalWrite(RLED, ledState);
}
  myButt.tick();
    if (myButt.isPress()){
val++;
    }
    if (val == 2 ){val = 0;}
    if (interval >= 1000){interval = 100;}
}

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

AndrejNut пишет:

Так?

Не так. 

 

 

AndrejNut
Offline
Зарегистрирован: 19.04.2021

В остальном всё так?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

AndrejNut пишет:

Так?

#include <GyverButton.h>

 

Не так, и уже в первой строчке ;)))

С Гиверовскими библиотеками - сразу "нахер с пляжа" -  на форум к вашему "гуру". У нас сектантов не любят (в хорошем смысле).

AndrejNut
Offline
Зарегистрирован: 19.04.2021

wdrakula пишет:

AndrejNut пишет:

Так?

#include <GyverButton.h>

 

Не так, и уже в первой строчке ;)))

С Гиверовскими библиотеками - сразу "нахер с пляжа" -  на форум к вашему "гуру". У нас сектантов не любят (в хорошем смысле).

А в чём собственно проблема? Вы сами не пишите библиотеки к каждым устройствам! Вы используете сторонние.

sadman41
Offline
Зарегистрирован: 19.10.2016

Проблем нет, просто разбирайся во всем, где они применены, самостоятельно, либо с помощью их автора.

AndrejNut
Offline
Зарегистрирован: 19.04.2021

sadman41 пишет:
Проблем нет, просто разбирайся во всем, где они применены, самостоятельно, либо с помощью их автора.

Проблема не в кнопках и с помощью какой библиотеки я их пишу. Проблема в правильности кода... Не могли бы вы помочь мне и написать так как считаете правильным? Объяснить что именно у меня не так , чтобы я знал в дальнейшем...

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

А чо, не работает? в последнем коде все норм, кроме кнопки. Если она не работает так, как ты хочешь, то изучай документацию на примененную библиотеку, раз уж она так нравится. ;)))

AndrejNut
Offline
Зарегистрирован: 19.04.2021

wdrakula пишет:

А чо, не работает? в последнем коде все норм, кроме кнопки. Если она не работает так, как ты хочешь, то изучай документацию на примененную библиотеку, раз уж она так нравится. ;)))

Не , всё то работает! Но хотел бы узнать , правильно ли написан код?(С учётом библиотеки на кнопку). Может что-то не так , или вы бы сделали подругому... Можете поделиться , буду рад.

AndrejNut
Offline
Зарегистрирован: 19.04.2021

wdrakula пишет:

А чо, не работает? в последнем коде все норм, кроме кнопки. Если она не работает так, как ты хочешь, то изучай документацию на примененную библиотеку, раз уж она так нравится. ;)))

А ещё хотел бы чтобы вы обосновали , почему вам так эта библиотека не нравится? Мне как новичку , надо знать. Есть что-то конкретное почему вы её не любите? Думаете что лучше будет без неё? Хотел бы узнать совет

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

AndrejNut пишет:
Не , всё то работает!

Ты знаешь одну из главных заповедей программиста: "Работает - не трогай!"? Ну вот и не трогай. Написал сам код, который работает? Выпей водки/рома/виски/коньяка и радуйся. Переходи к следующему занятию. Если твое недопонимание важно в твоих планах, то рано или поздно оно вылезет, вот тогда и станешь вопросы задавать.

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

AndrejNut][quote=wdrakula пишет:

 А ещё хотел бы чтобы вы обосновали , почему вам так эта библиотека не нравится?

для этого мне придется её читать, а я этого не хочу, так как имею предвзятое мнение об авторе. Так понятно?

Kakmyc
Offline
Зарегистрирован: 15.01.2018

ТС, тут уже не раз разбирали библиотеки этого говнодела.
В них нет ничего стоящего, а проблем от их применения(в виду криворукости автора) на порядок больше, чем пользы. Правда он утверждает, что это "фичи".
Лишний раз ковыряться в этом дерьме нет желания.
Так понятно ?

AndrejNut
Offline
Зарегистрирован: 19.04.2021

Kakmyc пишет:
ТС, тут уже не раз разбирали библиотеки этого говнодела.
В них нет ничего стоящего, а проблем от их применения(в виду криворукости автора) на порядок больше, чем пользы. Правда он утверждает, что это "фичи".
Лишний раз ковыряться в этом дерьме нет желания.
Так понятно ?

Тоесть лучше самому прописывать кнопки? Или может быть вы знаете другие библиотеки? Посоветуйте

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Просто нужно запомнить, что на форуме "ардуино.ру" не следует упоминать Гивера.

Есть такая старая еврейская поговорка (мне - можно рассказывать ;)) ):

Для каждого еврея в родном городе есть синагога в которую он ходит в шаббат, и есть синагога в которую он "ни ногой".

;)))) Вот примерно так и тут ;)) Аз ох'н вэй!

AndrejNut
Offline
Зарегистрирован: 19.04.2021

wdrakula пишет:

Просто нужно запомнить, что на форуме "ардуино.ру" не следует упоминать Гивера.

Есть такой старая еврейская поговорка (мне - можно рассказывать ;)) ):

Для каждого еврея в родном городе есть синагога в которую он ходит в шаббат, и есть синагога в которую он "ни ногой".

;)))) Вот примерно так и тут ;)) Аз ох'н вэй!

Вы знаете другие , хорошие библиотеки для кнопки?

nik182
Offline
Зарегистрирован: 04.05.2015

А титаноый велосипед здесь на сайте чем не устраивает?

AndrejNut
Offline
Зарегистрирован: 19.04.2021

nik182 пишет:

А титаноый велосипед здесь на сайте чем не устраивает?

Не понял.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

AndrejNut пишет:
wdrakula пишет:

Просто нужно запомнить, что на форуме "ардуино.ру" не следует упоминать Гивера.

Есть такой старая еврейская поговорка (мне - можно рассказывать ;)) ):

Для каждого еврея в родном городе есть синагога в которую он ходит в шаббат, и есть синагога в которую он "ни ногой".

;)))) Вот примерно так и тут ;)) Аз ох'н вэй!

Вы знаете другие , хорошие библиотеки для кнопки?

Отвечу и спать, сорян.

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

Библиотеки нужно использовать  для больших объектов. К примеру реально хороша фастлед для ленты. Но пока памяти хватает. ;)) А потом придется все равно писать своё.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

AndrejNut пишет:
nik182 пишет:

А титаноый велосипед здесь на сайте чем не устраивает?

Не понял.

Это хорошая библиотека для кнопок с этого сайта, написанная Клапауцием.

nik182
Offline
Зарегистрирован: 04.05.2015
b707
Offline
Зарегистрирован: 26.05.2017

AndrejNut пишет:
Вы знаете другие , хорошие библиотеки для кнопки?

да, использую своб собственную. И вам того же желаю (в смысле - написать свою)