Arduino IDE в вопросах и ответах

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE в вопросах и ответах

Сообщение BOB51 »

По платформам на базе АВРок и IDE версий 1.8.9 и 1.8.19 (портабле варианты) подсказать могу (с ними опыт работы есть).
Насчет версий IDE 2.3.х - стараюсь без особой необходимости пока не трогать - слишком громоздкая и слабо контролируемая для слабых компов.
8)
Просьба будет - не цитировать полностью сообщения, в том смысла нету. Достаточно просто продолжить, если никто другой в обсуждение не добавился или оставить только строчку, на которую внимание обращается.
:wink:
noveek
Открыл глаза
Сообщения: 55
Зарегистрирован: Вс май 24, 2015 17:08:06

Re: Arduino IDE в вопросах и ответах

Сообщение noveek »

Эмм есть предположения что возможно порт и esp32 не видит из за того что роскомнадзор куда то не пускает или заблокировали российские ip ?
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

Re: Arduino IDE в вопросах и ответах

Сообщение Nranddek »

Поставьте OpenVPN и проверьте это предположение
noveek
Открыл глаза
Сообщения: 55
Зарегистрирован: Вс май 24, 2015 17:08:06

Re: Arduino IDE в вопросах и ответах

Сообщение noveek »

Вообщем спросил их напрямую они на удивление ответили быстро сделал всё как они отписали и заработало:
https://github.com/arduino/serial-discovery/issues/98
мало ли кто столкнётся с такой же проблемой
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE в вопросах и ответах

Сообщение BOB51 »

С другой стороны еще одно подтверждение "неотвратимости" прекращения "обратной совместимости" при обновлениях платформ у "устаревших версий" IDE...
:(
"...
Потеря совместимости с Windows 7 является ожидаемым результатом обновления версии Go языка программирования, который мы используем в этом проекте. Мы не поддерживаем устаревшую Windows 7, поэтому не будем предпринимать никаких действий для восстановления совместимости.
..."
прогресс однако...
:sleep:
dim3740
Нашел транзистор. Понюхал.
Сообщения: 156
Зарегистрирован: Вс сен 28, 2014 07:54:21

Re: Arduino IDE в вопросах и ответах

Сообщение dim3740 »

Здравствуйте, подправьте пжс код... проблема, что в сериале я вижу несколько значений при одном условии т.к. ручка потенциометра крутится плавно. А нужно одно.
Что ">2" хорошо бы оставить, потому что качество потенциометра не столь хорошее. (Опрос аналога я тут выложил упрощенно, т.к. мой вопрос иной).
Да, и точность не важна. Просто нужно типа "три кнопки через 1 потенциометр".

Код: Выделить всё

void loop()
  {
    val =  analogRead(A0);
    if (abs(val - lastVal) >= 2)
    {
      lastVal = val;

      if (val > 30) 
      {
        fl = 1;
        Serial.print(f1);
      }
      if (val < 20) 
      {
        fl = 0;
        Serial.print(f1);
      }
      if (val > 50) 
      {
        fl = 2;
        Serial.print(f1);
      }
    }
  }
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Arduino IDE в вопросах и ответах

Сообщение veso74 »

для abs(val - lastVal): val -> int?

Из вашего примера: если напр. val = 55, то и 55 > 30, и 55 > 50, т.е. выполняются два условия, т.е. будет напечатано и 1, и 2.
Задайте условия либо от "меньшего к большему", либо от "большего к меньшему" с одним результатом.

Для сокращения количества операций и ненужных сравнений, использовайте else if.

Код: Выделить всё

if (val > 50)
  fl = 2;
else if (val > 30)
  fl = 1;
else if (val < 20)
  fl = 0;
Также можете использовать "сложный" switch:

Код: Выделить всё

  switch (val) {
    case  0 ... 20 : fl = 0; break;
    case 30 ... 49 : fl = 1; break;
    case 50 ... 99 : fl = 2; break;
    default: fl = 4; break;
  }
dim3740
Нашел транзистор. Понюхал.
Сообщения: 156
Зарегистрирован: Вс сен 28, 2014 07:54:21

Re: Arduino IDE в вопросах и ответах

Сообщение dim3740 »

Спасибо. Но... дело не в оптимизации кода. И не в том, что будет выполняться 2 сравнения. У меня условие неравенства (любого) выполняется МНОГОкратно, пока ручка крутится и в зоне. Этого бы не было, если бы я написал "if val = 55", т.е. конкретное значение. Но, опрос идет одновременно с иными параллельными процессами, и это значение можно пропустить.

Заморачиваться с прерыванием не хочется. По сути - на панели нет нужных 3-х кнопок. Есть потенциометр. Как им фиксировать 3 состояния управления?

Хотя может вы ответ и верный дали. Счас попробую применить его в своих условиях.
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Arduino IDE в вопросах и ответах

Сообщение OKF »

[uquote="dim3740",url="/forum/viewtopic.php?p=4776933#p4776933"]По сути - на панели нет нужных 3-х кнопок. Есть потенциометр. Как им фиксировать 3 состояния управления?[/uquote]
Ну а вы как считаете? Придумайте для себя как будет удобно и от этого пляшите. Очевидно же.
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Arduino IDE в вопросах и ответах

Сообщение veso74 »

Напр. так:

Код: Выделить всё

  if (val > 681)
    fl = 2;
  else if (val > 341)
    fl = 1;
  else
    fl = 0;
или

Код: Выделить всё

  switch (val) {
    case   0 ... 341 : fl = 0; break;
    case 342 ... 682 : fl = 1; break;
    default: fl = 2; break;
  }
Последний раз редактировалось veso74 Пт янв 02, 2026 11:46:36, всего редактировалось 1 раз.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE в вопросах и ответах

Сообщение BOB51 »

dim3740
Добавьте усреднение.
Вряд ли поворот оси будет быстрее "дребезгового" процесса от нажатия кнопки.
Да и вертеть то на весь диапазон вращения с максимальной скоростью за минимальное время смысла нет.
(Резистивные кнопы не на переменном резисторе делаются, а на наборе постоянных.)
У Вас больше на датчик угла поворота похоже (в темах о них и решение более вероятно).
8)
Ну и как вариант - "статус ожидания ОСТАНОВА вращения", а уже по нему принятие решения что там делать.
:tea:
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Arduino IDE в вопросах и ответах

Сообщение veso74 »

BOB51, с abs лучше. Проблема не только в дребезг, но и в шуме, напр на ±x LSB, когда потенциометр находится на границе.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE в вопросах и ответах

Сообщение BOB51 »

Так все равно -
сначала фиксация останова/понижения скорости изменения результата АЦП, а уже после того обработка результата с учетом шума (отсечка "шумовых" разрядов результата АЦП).
8)
Можно и оценкой интервала времени на изменение результата менее(более) определенной величины - это оцениваем как останов.
А далее селектор по полученному результату с отсечкой "шумовых" разрядов.
:tea:
Последний раз редактировалось BOB51 Пт янв 02, 2026 12:11:50, всего редактировалось 2 раза.
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Arduino IDE в вопросах и ответах

Сообщение veso74 »

Бы оставил "защитные поясы" по краям, напр. на 50-100 единиц. abs будет излишним.

Код: Выделить всё

   switch (val) {
    case   0 ... 300  : fl = 0; break;
    case 350 ... 700  : fl = 1; break;
    case 750 ... 1023 : fl = 2; break;
  }
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino IDE в вопросах и ответах

Сообщение BOB51 »

Так мы ж не знаем что у нашего "оператора" на уме - проскочить данный угол ("кнопку") или таки там остановиться и запустить исполнение команды.
А движок потенциометра можно во всем диапазоне туда-сюда сколь угодно вертеть...
:roll:
Ответить

Вернуться в «Arduino»