Вопрос по созданию блока
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Вопрос по созданию блока
Как сделать блок, который работал бы только в момент подачи питания на ардуино? Есть устройство с несколькими режимами работы (три режима в зависимости от напряжения на аналоговом входе, считай "джампер"). Сейчас опрос происходит постоянно в цикле и все функции выполняются как положено. Но хочется оптимизировать, чтоб не отвлекалось на лишнее.
И, кстати, можно ли в void setup() вставить
if((analogRead (0))...
и т.д.?
И, кстати, можно ли в void setup() вставить
if((analogRead (0))...
и т.д.?
Вопрос по созданию блока
создаете некую переменную, например Х и даете некое значение по умолчаниюseri0shka писал(а):Как сделать блок, который работал бы только в момент подачи
![Изображение](http://i7.5cm.ru/i/SkI0.png)
затем в её свойствах включаете выполнение по условию
![Изображение](http://i7.5cm.ru/i/fUhU.png)
делаете нужный код па плате, и в конце например обнуляете переменную.
![Изображение](http://i7.5cm.ru/i/JO9P.png)
больше эта плата выполняться не будет.
если понадобится ее запустить , делаете переменную Х = 1
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Вопрос по созданию блока
То есть заново компилировать и прошивать? Смысл именно в том, чтоб в любой момент сменить режим работы без подключения к компьютеру и без наличия нужного ПО, просто переставив перемычку. Залить один раз навсегда.
Вопрос по созданию блока
привяжите переменную к перемычке ( входу) , к кнопке, .. да хоть к чему
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Вопрос по созданию блока
И получим то, что работает сейчас- постоянный опрос аналогового входа, одна из самых длительных операций. Причём сработает этот вход возможно один раз за несколько месяцев.
Сейчас я сделал на пробу блок, который в результате компиляции выдаёт такую конструкцию:
bool out_167848791_1;
void setup()
{
if(( (analogRead (7)))>(500))
{out_167848791_1 = 1;}
else
{out_167848791_1 = 0;}
}
void loop()
{ }
Блок вполне работает, при изменении состояния входа во время работы реакции нет (что и было нужно), а в момент повторной подачи питания режим работы меняется на нужный. Единственное, что смущает, это законность такой операции в фунции void setup.
Но, скорей всего, оставлю постоянный опрос входа в основном цикле скетча, от греха подальше.
Сейчас я сделал на пробу блок, который в результате компиляции выдаёт такую конструкцию:
bool out_167848791_1;
void setup()
{
if(( (analogRead (7)))>(500))
{out_167848791_1 = 1;}
else
{out_167848791_1 = 0;}
}
void loop()
{ }
Блок вполне работает, при изменении состояния входа во время работы реакции нет (что и было нужно), а в момент повторной подачи питания режим работы меняется на нужный. Единственное, что смущает, это законность такой операции в фунции void setup.
Но, скорей всего, оставлю постоянный опрос входа в основном цикле скетча, от греха подальше.
Вопрос по созданию блока
.
Последний раз редактировалось Nikan 23 мар 2023, 17:45, всего редактировалось 1 раз.
Вопрос по созданию блока
Опа...а мужики то и не знали))))Nikan писал(а):setup выполняеся один раз перед стартом основной программы, для конфигурации оборудования
Щучу конечно, но если человек знает что такое Setup то думаю должен понимать что это инициализация Микроконтроллера)))
Вопрос по созданию блока
Anydy писал(а):это инициализация Микроконтроллера
СпойлерSPOILER_SHOW
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.
The setup() function will only run once, after each powerup or reset of the Arduino board.
Win10-64 FLProg v7.5.2 Portable ![Стыдно :fie:](./images/smilies/ucoz_fie.gif)
![Стыдно :fie:](./images/smilies/ucoz_fie.gif)
Вопрос по созданию блока
вы видимо совсем не поняли о чем я вам написалseri0shka писал(а):И получим то, что работает сейчас- постоянный опрос
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Вопрос по созданию блока
Возможно и не понял. Но я правильно понял, что для смены режима скетч заливать по-новой нужно?
Вопрос по созданию блока
нет. не нужно.
сделайте сколько надо режимов на платах и выполняйте нужные по условию.
сделайте сколько надо режимов на платах и выполняйте нужные по условию.
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Вопрос по созданию блока
if(( (analogRead (7)))>(500))
Это и есть выплнение по условию. Но оно сейчас выполняется в каждом void loop() и отнимает ценное время. Об этом я и писал.
Это и есть выплнение по условию. Но оно сейчас выполняется в каждом void loop() и отнимает ценное время. Об этом я и писал.
Вопрос по созданию блока
.
Последний раз редактировалось Nikan 23 мар 2023, 17:45, всего редактировалось 1 раз.
Вопрос по созданию блока
Да, сорри не верно выразился....Nikan писал(а):зы, почему то всегда предполагал, что инициализация происходит сразу после начала работы генератора, и внутренними командами МК
Инициализация конечно на старте МК, в разделе Setup - Set (Установка) Up (Поднятие)
То есть задаем начальные параметры.
Добавлено (14.11.2017, 05:02)
---------------------------------------------
Ну могу же иногда оговорится....мы же профи...и понимаем что такое Setup )))))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.
Вопрос по созданию блока
мне кажется вы говорите об условии выполнения блока а не платы...seri0shka писал(а):if(( (analogRead (7)))>(500))Это и есть выплнение по условию
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Вопрос по созданию блока
pan, действительно, мы не понимаем друг друга. Давайте на примерах. Допустим, в проекте ардуина (в составе готового устройства) выполняет одну функцию- при высоком уровне на pin1 включает высокий уровень на pin13. Но она же может быть вставлена в другое аналогичное устройство, где выходной сигнал на pin2, а не на pin13. Режим работы определяется перемычкой на входе А7 (усройство А- перемычка к плюсу питания, устройство В- перемычка к минусу) Можете показать, как будет выглядеть проект или готовый скетч, чтоб я понял, что вы хотите мне объяснить.
Вопрос по созданию блока
типа того
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Вопрос по созданию блока
Загрузил, скомпилировал, помотрел скетч. Попробовал в действии. Хотя пробовать бесполезно, даже если просто взглянуть на скетч- digitalRead (21) никогда работать не будет, я надеялся, что уважаемый автор FLProg уже исправил этот недочёт (А6 и А7 могут работать только как аналоговые). Менял на digitalRead (19) для полноты картины, всё равно нет нужного эффекта.
Ещё раз перечитал все ваши сообщения. Похоже, что всё-таки вы не поймёте, что я хочу. Я хотел (digitalRead (21))выбросить из основного цикла (на самом деле (analogRead (7)), конечно),а в полученном скетче эта функция осталась в void loop(). Хотя я всё равно благодарен за помощь. Кстати, благодаря вашему примеру понял, в чём отличие более поздних версий от 2.1, которой я пользуюсь. Надо будет попробовать оценить все плюсы и минусы.
Ещё раз перечитал все ваши сообщения. Похоже, что всё-таки вы не поймёте, что я хочу. Я хотел (digitalRead (21))выбросить из основного цикла (на самом деле (analogRead (7)), конечно),а в полученном скетче эта функция осталась в void loop(). Хотя я всё равно благодарен за помощь. Кстати, благодаря вашему примеру понял, в чём отличие более поздних версий от 2.1, которой я пользуюсь. Надо будет попробовать оценить все плюсы и минусы.
Вопрос по созданию блока
что мешает перенести чтение состояния перемычки в сетап и считать 1 раз при включении
Вопрос по созданию блока
Народ, у меня поп-корн кончился...
Ну наконец то....pan писал(а):что мешает перенести чтение состояния перемычки в сетап и считать 1 раз при включении
Win10-64 FLProg v7.5.2 Portable ![Стыдно :fie:](./images/smilies/ucoz_fie.gif)
![Стыдно :fie:](./images/smilies/ucoz_fie.gif)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей