Страница 1 из 2
Вопрос по созданию блока
Добавлено: 12 ноя 2017, 21:35
seri0shka
Как сделать блок, который работал бы только в момент подачи питания на ардуино? Есть устройство с несколькими режимами работы (три режима в зависимости от напряжения на аналоговом входе, считай "джампер"). Сейчас опрос происходит постоянно в цикле и все функции выполняются как положено. Но хочется оптимизировать, чтоб не отвлекалось на лишнее.
И, кстати, можно ли в void setup() вставить
if((analogRead (0))...
и т.д.?
Вопрос по созданию блока
Добавлено: 12 ноя 2017, 21:51
pan
seri0shka писал(а):Как сделать блок, который работал бы только в момент подачи
создаете некую переменную, например Х и даете некое значение по умолчанию
затем в её свойствах включаете выполнение по условию
делаете нужный код па плате, и в конце например обнуляете переменную.
больше эта плата выполняться не будет.
если понадобится ее запустить , делаете переменную Х = 1
Вопрос по созданию блока
Добавлено: 12 ноя 2017, 22:56
seri0shka
То есть заново компилировать и прошивать? Смысл именно в том, чтоб в любой момент сменить режим работы без подключения к компьютеру и без наличия нужного ПО, просто переставив перемычку. Залить один раз навсегда.
Вопрос по созданию блока
Добавлено: 13 ноя 2017, 08:22
pan
привяжите переменную к перемычке ( входу) , к кнопке, .. да хоть к чему
Вопрос по созданию блока
Добавлено: 13 ноя 2017, 18:26
seri0shka
И получим то, что работает сейчас- постоянный опрос аналогового входа, одна из самых длительных операций. Причём сработает этот вход возможно один раз за несколько месяцев.
Сейчас я сделал на пробу блок, который в результате компиляции выдаёт такую конструкцию:
bool out_167848791_1;
void setup()
{
if(( (analogRead (7)))>(500))
{out_167848791_1 = 1;}
else
{out_167848791_1 = 0;}
}
void loop()
{ }
Блок вполне работает, при изменении состояния входа во время работы реакции нет (что и было нужно), а в момент повторной подачи питания режим работы меняется на нужный. Единственное, что смущает, это законность такой операции в фунции void setup.
Но, скорей всего, оставлю постоянный опрос входа в основном цикле скетча, от греха подальше.
Вопрос по созданию блока
Добавлено: 13 ноя 2017, 18:36
Nikan
.
Вопрос по созданию блока
Добавлено: 13 ноя 2017, 19:05
Anydy
Nikan писал(а):setup выполняеся один раз перед стартом основной программы, для конфигурации оборудования
Опа...а мужики то и не знали))))
Щучу конечно, но если человек знает что такое Setup то думаю должен понимать что это инициализация Микроконтроллера)))
Вопрос по созданию блока
Добавлено: 13 ноя 2017, 21:04
Dev1
Anydy писал(а):это инициализация Микроконтроллера
[spoiler=Спойлер]The setup() function is called when a sketch starts. Use it to initialize variables, pin modes, start using libraries, etc.
The setup() function will only run once, after each powerup or reset of the Arduino board.[/spoiler]
Вопрос по созданию блока
Добавлено: 13 ноя 2017, 21:07
pan
seri0shka писал(а):И получим то, что работает сейчас- постоянный опрос
вы видимо совсем не поняли о чем я вам написал
Вопрос по созданию блока
Добавлено: 13 ноя 2017, 21:37
seri0shka
Возможно и не понял. Но я правильно понял, что для смены режима скетч заливать по-новой нужно?
Вопрос по созданию блока
Добавлено: 13 ноя 2017, 22:08
pan
нет. не нужно.
сделайте сколько надо режимов на платах и выполняйте нужные по условию.
Вопрос по созданию блока
Добавлено: 13 ноя 2017, 22:46
seri0shka
if(( (analogRead (7)))>(500))
Это и есть выплнение по условию. Но оно сейчас выполняется в каждом void loop() и отнимает ценное время. Об этом я и писал.
Вопрос по созданию блока
Добавлено: 13 ноя 2017, 23:14
Nikan
.
Вопрос по созданию блока
Добавлено: 14 ноя 2017, 05:02
Anydy
Nikan писал(а):зы, почему то всегда предполагал, что инициализация происходит сразу после начала работы генератора, и внутренними командами МК
Да, сорри не верно выразился....
Инициализация конечно на старте МК, в разделе Setup - Set (Установка) Up (Поднятие)
То есть задаем начальные параметры.
Добавлено (14.11.2017, 05:02)
---------------------------------------------
Dev1 писал(а):The setup() function is called when a sketch starts. Use it to initialize variables, pin modes, start using libraries, etc.The setup() function will only run once, after each powerup or reset of the Arduino board.
Ну могу же иногда оговорится....мы же профи...и понимаем что такое Setup )))))
Вопрос по созданию блока
Добавлено: 14 ноя 2017, 08:24
pan
seri0shka писал(а):if(( (analogRead (7)))>(500))Это и есть выплнение по условию
мне кажется вы говорите об условии выполнения блока а не платы...
Вопрос по созданию блока
Добавлено: 14 ноя 2017, 20:41
seri0shka
pan, действительно, мы не понимаем друг друга. Давайте на примерах. Допустим, в проекте ардуина (в составе готового устройства) выполняет одну функцию- при высоком уровне на pin1 включает высокий уровень на pin13. Но она же может быть вставлена в другое аналогичное устройство, где выходной сигнал на pin2, а не на pin13. Режим работы определяется перемычкой на входе А7 (усройство А- перемычка к плюсу питания, устройство В- перемычка к минусу) Можете показать, как будет выглядеть проект или готовый скетч, чтоб я понял, что вы хотите мне объяснить.
Вопрос по созданию блока
Добавлено: 14 ноя 2017, 21:16
pan
типа того
Вопрос по созданию блока
Добавлено: 14 ноя 2017, 22:23
seri0shka
Загрузил, скомпилировал, помотрел скетч. Попробовал в действии. Хотя пробовать бесполезно, даже если просто взглянуть на скетч- digitalRead (21) никогда работать не будет, я надеялся, что уважаемый автор FLProg уже исправил этот недочёт (А6 и А7 могут работать только как аналоговые). Менял на digitalRead (19) для полноты картины, всё равно нет нужного эффекта.
Ещё раз перечитал все ваши сообщения. Похоже, что всё-таки вы не поймёте, что я хочу. Я хотел (digitalRead (21))выбросить из основного цикла (на самом деле (analogRead (7)), конечно),а в полученном скетче эта функция осталась в void loop(). Хотя я всё равно благодарен за помощь. Кстати, благодаря вашему примеру понял, в чём отличие более поздних версий от 2.1, которой я пользуюсь. Надо будет попробовать оценить все плюсы и минусы.
Вопрос по созданию блока
Добавлено: 14 ноя 2017, 22:29
pan
что мешает перенести чтение состояния перемычки в сетап и считать 1 раз при включении
Вопрос по созданию блока
Добавлено: 14 ноя 2017, 22:33
Dev1
Народ, у меня поп-корн кончился...
pan писал(а):что мешает перенести чтение состояния перемычки в сетап и считать 1 раз при включении
Ну наконец то....