Сохранени в EEPROM при помощи джампера

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DetSimen пишет:

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

uint8_t ActiveLevel = LOW; // кнопка подтянута к плюсу, замыкается на землю

if (digitalRead(pin) == ActiveLevel) BOOM();

и пусь ActiveLevel описана в самом начале, но в 100500 строчке кода 

if (digitalRead(pin) == ActiveLevel)

я буду знать, что здесь кнопка именно нажимается. 

Дед! Я жеж уже говорил, что у тебя библиотека написана красиво )))
И таки да - меня бесит большое количество букв, люблю лаконизм, вот к примеру ну нахрена было называть библиотеку SomeSerial когда вполне достаточно AlSerial ))) - почувствуй разницу...

 

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

Al это все, чего нет в реализации, а some это один любой, почувствуйте разницу. Al вводит в заблуждение.

А кнопка вместо джампера это правильно. После входа в настройки попасть в loop уже никак не получится. Это отдельная подпрограмма в которой предполагается довольно много работы. Тут кнопка очень к месту, т.к. имеет несколько вариантов сигналов- нажатие, длинное нажатие, двойное нажатие и по этим сигналам и енкодеру можно ходить по меню выбора параметров, их изменения, сохранения и выхода в loop. У меня есть несколько кос проводов с кнопками и светодиодами из старых корпусов ПК. Отличное решение для подобного случая - как джампер разъём и кнопка на проводе.   

kost82
Offline
Зарегистрирован: 30.11.2015

nik182 пишет:

А кнопка вместо джампера это правильно. После входа в настройки попасть в loop уже никак не получится. Это отдельная подпрограмма в которой предполагается довольно много работы.

Почему не получится? Цикл while прервется и setup выполнится до конца. После этого пойдет loop().

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

Я имел ввиду что после входа в подпрограмму настройки смысл джампера теряется. Если конечно не упираться в то, что при размыкании джампера сохранять и выходить. Но тогда не понятно как переключаться между параметрами? Как подтвердить правильный параметр? Кнопкой можно прыгать по меню, где будет отдельный пункт сохранить и отдельный пункт выйти подтверждение - вращение енкодера. Как это реализовать без кнопки я плохо себе представляю. Разве что енкодер в разные стороны крутить.   

kost82
Offline
Зарегистрирован: 30.11.2015

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

Можно занять четыре контакта и поставить сразу два джампера. Дошли до первого, выставили параметр, удалили первый джампер - попадаем во второй. Выставили второй параметр, удаляем второй джампер и пользуемся устройством сразу.

Если представить сколько кода надо для обрабатывания одинарного и двойного нажатия кнопки - то джампер обработать получается гораздо проще. Но это только для частного случая как у меня, когда есть один-два параметра, которые меняются раз в столетие. В других случаях кнопка конечно рулит.

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

Проще кнопка и титановый велосипед клапы. 

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

Можно и без кнопки сделать.
При запуске слушаем полсекунды энкодер.
Если вращался , мигаем чем нибудь пару секунд(индикация перехода в режим настройки).
В зависимости от направления переходим в нужный режим .
Меняем параметр.
Выходим из режима после 2х секунд бездействия.
И тп

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

nik182 пишет:

Al это все, чего нет в реализации, а some это один любой, почувствуйте разницу. Al вводит в заблуждение.

А кнопка вместо джампера это правильно. После входа в настройки попасть в loop уже никак не получится. Это отдельная подпрограмма в которой предполагается довольно много работы. Тут кнопка очень к месту, т.к. имеет несколько вариантов сигналов- нажатие, длинное нажатие, двойное нажатие и по этим сигналам и енкодеру можно ходить по меню выбора параметров, их изменения, сохранения и выхода в loop. У меня есть несколько кос проводов с кнопками и светодиодами из старых корпусов ПК. Отличное решение для подобного случая - как джампер разъём и кнопка на проводе.   

я поправил в меру своего умения, использует CustomSoftwareSerial и, назвал её гордо ALSERIAL.h )))

PS Ал, это вообще-то - высший, алхимия - высшая химия, Алый - цвет в радуге (он там высший), Алмаз, Альдегид, Алибек - высший князь, Алладин... Аллах )))

kost82
Offline
Зарегистрирован: 30.11.2015

To Kakmyc: Да, можно и так, как вариант. Только опять же надо понять какой параметр настраивать из двух.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Мне приятель категорически кнопку запретил, так как потом двумя руками стики на аппаратуре надо крутить )))

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

kost82 пишет:
To Kakmyc: Да, можно и так, как вариант. Только опять же надо понять какой параметр настраивать из двух.

Что там понимать ?
Крутим влево первый параметр, вправо- второй.

Я писал что то подобное, для выбора режима отсечки двигателя.
Там была одна кнопка (отчекрыженная от чипа, кнопка RST Ардуино нано).
Она выполняла кучу функций.
1.вход в режим программирования отсечки.
нужно было нажать кнопку в течении секунды поле включения, когда диод мигал с частотой 10Гц.
2. В режиме программирования, при нажатии на эту же кнопку дурина запоминала обороты при которых запускался отсекатель оборотов
3. В режиме работы менялся режим
Пропуск импульсов или сдвиг зажигания.
эти модули сейчас в Швеции продаются.
Делал для вольвы какой то бешеной двухлитровой

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

Я вчера был в шоке.
У меня заказчица, девчонка с Владика (молодая и очень симпатичная) самостоятельно по ссылкам на "что почитать" , настроила ESP8266 и ПК(ip и порты), для работы по UDP.
Сама программа опрашивает гироскоп и через wifi по UDP спамит данными с гироскопа 200раз в секунду на сервер обработки.

А тут многие мужики два проводка соединить не в состоянии по схеме.