Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

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

Сб янв 04, 2025 12:44:29

Причём здесь светодиоды. Тут с SD нужно разбираться.
ART_ME, для кода есть соответствующий тег, не ленись.

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

Сб янв 04, 2025 14:11:58

Как уговорить Ардуино ИДЕ использовать 16 бит. Подозреваю , что int - 32 битный, поэтому на:
Код:
const (int16_t )(DATA_16[]={0xf3ed,0xf40a, ...
ругается : error: narrowing conversion of '62445' from 'int' to 'int16_t' {aka 'short int'} [-Wnarrowing]
Не знаю, за прошедшие 3 недели решена уже эта задачка или нет, но только 62445 вообще-то в 16 разрядов уложится только если без знака. Я бы на вашем месте попробовал его указать как unsigned short int или uint16_t. На моём месте у меня никогда не было такой проблемы ни в Ардуино-ИДЕ, ни в голом Си.

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

Сб янв 04, 2025 14:48:11

Причём здесь светодиоды. Тут с SD нужно разбираться.

А зачем разбираться с SD, который уже года два или три без проблем работает, будучи в те времена откомпилирован в иде 1.8?
И зачем с ним разбираться, если он и сейчас отлично работает в иде 2.3.4 на атмеге2560?

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

Сб янв 04, 2025 17:25:19

Изначально меги328 и 2560 были в основном составе платформ IDE "по умолчанию"...
А вот 16я это уже из "добавок".
Возможно библиотека CD где то не учитывает аппаратных особенностей/отличий в кристаллах.
16 ка вариант ардуино на меге 32...
Была вроде такая платка (arduino Leonardo на atmega32u4), да распространения не получила...
:roll:
Жаль таки экзотика та 16я Мега...
Из dip40 только Меги 8515 и 162 для проверки предположений...
Это не та группа, что у 16й Меги...
:(

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

Сб янв 04, 2025 18:55:09

А может всё гораздо проще - люди, которые правят платформу и библиотеки в иде выше 2.0 архаику типа атмега16 :)) в глаза не видели, а потому выпускают не оттестированный продукт?

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

Сб янв 04, 2025 19:00:08

Платформа для АВРок одинакова что для 1.8.9, что для 1.8.19, что для 2.х.х...
По сему это не основание для проблем...
А вот версия платформы вполне возможно может быть "хромой" - можно попробовать удалить текущую и поставить более раннюю...
:roll:

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

Сб янв 04, 2025 19:19:19

...архаику типа атмега16 :)) в глаза не видели, а потому выпускают не оттестированный продукт?

А что есть поддержка м16 в официальной IDE?

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

Сб янв 04, 2025 19:34:11

arduino Leonardo на atmega32u4
но не атмега16...
8)

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

Чт янв 09, 2025 20:17:42

Возможно имел место вот этот ФАК
viewtopic.php?p=4669766#p4669766
:roll:

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

Чт фев 20, 2025 17:23:28

Здравствуйте. Дяденьки помогите. Делаем проект к выставке, Есть код
Код:
const int zamokPin = 2;        // Цифровой пин "замок"
const int fotoPin = A0;        // Аналоговый пин "фото"
const int podgotovkaPin = 3;   // Пин "подготовка"
const int otkritiePin = 4;     // Пин "открытие"
const int podachaPin = 5;      // Пин "подача"
const int alarmPin = 6;        // Пин "аларм"

// Переменные для хранения времени
unsigned long previousMillis = 0; // Время последнего изменения состояния
unsigned long interval = 0;       // Интервал для таймеров

// Состояния системы
enum SystemState {
  STATE_IDLE,               // Ожидание
  STATE_CHECK_ZAMOK,        // Проверка входа "замок"
  STATE_CHECK_FOTO,         // Проверка входа "фото"
  STATE_ALARM,              // Состояние "аларм"
  STATE_PODACHA,            // Состояние "подача"
  STATE_PODGOTOVKA,         // Состояние "подготовка"
  STATE_OTKRITIE,           // Состояние "открытие"
 
};

SystemState currentState = STATE_IDLE; // Текущее состояние системы

void setup() {
  // Настройка пинов
  pinMode(zamokPin, INPUT);
  pinMode(fotoPin, INPUT);
  pinMode(podgotovkaPin, OUTPUT);
  pinMode(podachaPin, OUTPUT);
  pinMode(otkritiePin, OUTPUT);
  pinMode(alarmPin, OUTPUT);

  // Инициализация выходов
  digitalWrite(podachaPin, LOW);
  digitalWrite(podgotovkaPin, LOW);
  digitalWrite(podachaPin, LOW);
  digitalWrite(otkritiePin, LOW);
  digitalWrite(alarmPin, LOW);
}

void loop() {
  unsigned long currentMillis = millis(); // Текущее время

  // Обработка состояний
  switch (currentState) {
    case STATE_IDLE:
      // Начальное состояние, переход к проверке "замок"
      currentState = STATE_CHECK_ZAMOK;
      break;

    case STATE_CHECK_ZAMOK:
      if (digitalRead(zamokPin)) {
        // Если флаг поднят, переходим в состояние "аларм"
        digitalWrite(alarmPin, HIGH);
        digitalWrite(podgotovkaPin, HIGH);
        currentState = STATE_ALARM;
      } else {
        // Если флаг опущен, включаем "подача" и ждем 3 секунды
        digitalWrite(alarmPin, LOW);
        digitalWrite(podgotovkaPin, LOW);
        digitalWrite(podachaPin, HIGH);
        previousMillis = currentMillis;
        interval = 1000; // 1 секунды
        currentState = STATE_PODACHA;
      }
      break;

    case STATE_PODACHA:
      if (currentMillis - previousMillis >= interval) {
        // По истечении 1 секунды переходим к проверке "фото"
        digitalWrite(podachaPin, LOW);
        currentState = STATE_CHECK_FOTO;
      }
      break;

    case STATE_CHECK_FOTO:
      if (analogRead(fotoPin) <= 800) { // 4 В +-= 800 (при 5 В = 1023)
        // Если флаг поднят, включаем "подготовку" и ждем 10 секунд
        (digitalWrite(podgotovkaPin, HIGH));
        delay(500);
        (digitalWrite(otkritiePin, HIGH));
        delay(500);
        (digitalWrite(otkritiePin, LOW));
        previousMillis = currentMillis;
        interval = 10000; // 1 секунды
        currentState = STATE_PODGOTOVKA;
        }
      break;
 
    case STATE_PODGOTOVKA:
      if (currentMillis - previousMillis >= interval) {
        // По истечении 10 секунд проверяем "замок"
        if (digitalRead(zamokPin)) {
          digitalWrite(alarmPin, HIGH);
        }
        // Включаем "открытие" и ждем 3 секунды
        digitalWrite(otkritiePin, HIGH);
        previousMillis = currentMillis;
        interval = 1000; // 1 секунды
        currentState = STATE_OTKRITIE;
      }
      break;

    case STATE_OTKRITIE:
      if (currentMillis - previousMillis >= interval) {
        // По истечении 3 секунд выключаем "открытие" и ждем 2 секунды
        digitalWrite(otkritiePin, LOW);
        previousMillis = currentMillis;
        interval = 2000; // 2 секунды
        currentState = STATE_CHECK_ZAMOK; // Возврат к проверке "zamok"
      }
      break;

    case STATE_ALARM:
      // Ожидание опускания флага на "замок"
      if (!digitalRead(zamokPin)) {
        digitalWrite(alarmPin, LOW);
        currentState = STATE_CHECK_ZAMOK; // Возврат к проверке "замок"
      }
      break;
  }
}
Как нам сделать, чтоб eсли на D2 в любой момент подать логическую 1, программа или обнулялась. В общем должно работать так.

1). Если подачи питания, на входе D2 логическая (1- флаг поднят), то на D3 и D6 - HIGH.

2). Если при подачи питания на входе D2 логическая (0 - флаг опущен) то длительностью 1 секунда на D5 - HIGH, далее ждём команду на вход A0.

3). Если если в процессе ожидания на D2 опять появится логическая (1- флаг поднят), а на A0 (5 вольт = 1023, флаг опущен), то на D3 и D6 - HIGH, A0 при этом игнорируется, пока на D2 не появится логическая (0 - флаг опущен).

4). Если на D2 логическая (0 - флаг опущен), а на A0 (4 вольта ±= 800, флаг поднят), то на с разницей в 2 секунды на D3-HIGH длительностью 10 секунд, а на D4-HIGH длительностью 1 секунда.

После отработки 10 секундного таймера D3, на D4-HIGH длительностью 1 секунда.

Ждём 2 секунды.
5). Если на D2 логическая (1- флаг поднят) то на D3 и D6 - HIGH, ждем появления логической (0 - флаг опущен).

6). Если на D2 логическая (0 - флаг опущен) то на D5 - HIGH длительностью 1 секунда.

7). Переходим к пункту 3.

Сейчас у нас не работают пункты, что выделены жирным шрифтом. Помогите пожалуйста.

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

Чт фев 20, 2025 18:58:18

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

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

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

Чт фев 20, 2025 20:06:17

Или тем, что истинное назначение устройства не соответствует области применения ("устройства двойного назначения"), а спецов по модернизации в нужном направлении нету.
:roll:
Иначе - выкладывайте схему и описание работы устройства....
:tea:

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

Пт фев 21, 2025 12:46:20

Или тем, что истинное назначение устройства не соответствует области применения ("устройства двойного назначения"), а спецов по модернизации в нужном направлении нету.
:roll:
Иначе - выкладывайте схему и описание работы устройства....
:tea:

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

Первым едет копательная машина роющая траншею и расставляющая маячки. На сеялке есть типа магазина где в ряд уложены саженцы, и крутится транспортировочная лента подключенная по умолчанию к D3 . При включении питания под корнем первого саженца электромагнит D5 открывает и закрывает заслонку, саженец падает в специальную люльку. Лента подводит следующий саженец над заслонкой. Если саженец не попал в "люльку загребатель" ( функция которого это - уменьшения расстояния от сеялки до дна траншеи и засыпания землёй корня саженца) и застрял нажав викрик и подав + на D2, то D3 отключает ленту и опускает "люльку загребатель", система блокируется и горит предупредительная лампа. На заслонках управляемые выходами D4 и D5 между электромагнитом и заслонкой стоят запараллеленные микрики подключенные к D2, если саженец застрял, заслонка упрётся в него и микрик нажмётся. Оператору нужно извлечь застрявший саженец.

Если всё хорошо то ждём команду с оптического датчика A0 который определяет маячки над траншеей, как только определил, D3 останавливает на 10 сек ленту и опускает "люльку загребатель" после этого открывается и закрывается посадочная заслонка D4, и в лунку падает саженец и при движении сеялки засыпается землёй за счёт фартука, через 6 сек на всякий повторим сброс по D4, если заело и на D2 + то ждем физическое вмешательство по извлечению саженца, если всё хорошо то поднимаем фартук по D3 включаем ленту, далее D5 подаёт в люльку следующий саженец с магазина. Примерно вот так. Схемка Изображение

Добавлено after 1 hour 26 minutes 41 second:
Снимайтесь с выставки. Есть мнение, что не умеющие реализовать настолько простой алгоритм не должны участвовать в выставках. Выставки это, пожалуй, демонстрация каких-то достижений и умений, здесь же попахивает начальным уровнем школьного кружка.

А обращения в русском языке, к слову, выделяются запятыми, дяденьки. Про другие ошибки и говорить не приходится.
Я хотел бы выразить своё несогласие с некоторыми утверждениями. Многие конструкторы, по различным причинам, не имели должного образования и создавали шедевры инженерии. Циолковский имел всего 3 класса образования, и лишь со временем получал знание из книг. У меня тоже есть шанс!!!

Хотел бы также заметить, что к примеру конструктор Сухой не разрабатывал свои самолёты от начала и до конца. Он закладывал основную идею (концепцию) и принципы работы, а также аэродинамические характеристики в модель. Затем инженеры-проектировщики различных систем работали над созданием масштабного прототипа.

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

Хочу вас порадовать: на выставках 99% идей — это концепции времён СССР, дополненные китайской электроникой, поскольку в стране некому её разрабатывать. В настоящее время образование в этой области не на должном уровне. Сдать сессию, полагаясь только на свои знания, без дополнительной денежной подготовки, довольно сложно. Зачем тогда учить?

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

Пт фев 21, 2025 15:32:48

Схема не соответствует "хотелкам", поскольку пропущены соответствующие приводы и их датчики.
Это как минимум. Или придется согласовывать обмен в мультимикроконтроллерной конструкции - одна голова за одними задачами, другая за другими.
Разве что игрушка из того получиться может.
:roll:
Насчет "не учёных умников"...
Отсутствие официального (по соответствующим министерствам) образования/дипломов совершенно не означает отсутствия надлежащей и ещё более сложной/тяжёлой САМО ПОДГОТОВКИ.
Да в гораздо более широком охвате изучаемых дисциплин.
Когда то именовалось вроде "вольный слушатель", при союзе куча курсов и " Народных университетов".
Сегодня в достатке ранее крайне труднодоступной литературы - было бы желание изучать.
8)
Пы.Сы.
Помнится ещё в дореволюционны времена в России была разработка так называемого... Если склероз не изменяет...
"рельсового земледелия"...
Устанавливались по краям поля два рельса, между ними балка с каретки со сменным инвентарем...
Похоже на современный Плоттер только " малость увеличенный"...
Чем там дело кончилось уже подзабыл...
:dont_know:

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

Пт фев 21, 2025 16:24:00

Схема не соответствует "хотелкам", поскольку пропущены соответствующие приводы и их датчики.
Это как минимум. Или придется согласовывать обмен в мультимикроконтроллерной конструкции - одна голова за одними задачами, другая за другими.
Разве что игрушка из того получиться может.
:roll:
Насчет "не учёных умников"...
Отсутствие официального (по соответствующим министерствам) образования/дипломов совершенно не означает отсутствия надлежащей и ещё более сложной/тяжёлой САМО ПОДГОТОВКИ.
Да в гораздо более широком охвате изучаемых дисциплин.
Когда то именовалось вроде "вольный слушатель", при союзе куча курсов и " Народных университетов".
Сегодня в достатке ранее крайне труднодоступной литературы - было бы желание изучать.
8)
Пы.Сы.
Помнится ещё в дореволюционны времена в России была разработка так называемого... Если склероз не изменяет...
"рельсового земледелия"...
Устанавливались по краям поля два рельса, между ними балка с каретки со сменным инвентарем...
Похоже на современный Плоттер только " малость увеличенный"...
Чем там дело кончилось уже подзабыл...
:dont_know:


Так мы и так делаем модель, а не полномасштабный прототип, детали на 3D принтере напечатаем, соберем, опять разберем и подгоним в 3 де редакторе и т.д.. Да и мы только на 1 курс института поступили. Рано нам ещё в грудь кулаком стучать))) По поводу схемы всё правильно, мы не закладывали в неё моторы, второй микрик и электромагниты, схема рисовалась для корректировки кода.

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

Пт фев 21, 2025 17:41:03

Забью первый кол - оптические датчики в "чистом поле" при современном уровне пыли плюс солнечная засветка.
Долго ли такой вариант будет работоспособен?
Схема изначально нереализуема...
8)
Второй кол по коду...
Где у Вас в
Код:
loop
берется
Код:
currentState
??
Без оного вообще неработоспособно...
Даже школяры до такого...
:cry:

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

Пн фев 24, 2025 11:11:58

Забью первый кол - оптические датчики в "чистом поле" при современном уровне пыли плюс солнечная засветка.
Долго ли такой вариант будет работоспособен?
Схема изначально нереализуема...
8)
Второй кол по коду...
Где у Вас в
Код:
loop
берется
Код:
currentState
??
Без оного вообще неработоспособно...
Даже школяры до такого...
:cry:

Относительно первого кола: в зерновых сеялках, как импортных, так и отечественной сборки, используется оптика для подсчёта семян при посадке. Зерно транспортируется по трубкам с помощью потока воздуха, а в них установлены оптические ИК датчики, которые в запыленной среде передают информацию о количестве пролетевших зерен на компьютер установленный в тракторе. Также присутствуют датчики потока воздуха и другие компоненты.

В процессе разборки сломанных модулей сеялок мы обнаружили, что основной проблемой выхода из строя этих датчиков были стёкла излучателя и приёмника, которые со временем становились матовыми от контакта с семенами, что приводило к ошибкам, так же встречались выходы из строя ИК диодов. А пыль сдувается потоком воздуха, хотя запылённость датчика после матирования увеличивалась. Мы понимаем, что они работаю в закрытом от солнца пространстве. И думали что оно будет работать при мощном ИК диоде и прикрытой конструктивно от солнечных лучей, ну или можно использовать лазер, механику или ультразвук, нужны полевые испытания. В настоящее время мы работаем над созданием модели, которая не предназначена для выставки «АГРОСАЛОН», а является всего лишь частью внутреннего обмена идеями между учебными заведениями.

Что касается второго кола: код не был написан специально для этого устройства, как я уже упоминал ранее. Код компилируется в Arduino и работает в симуляторе Proteus, за исключением выделенного жирным шрифтом фрагмента. Не стоит делать поспешные выводы о нашем уровне знаний, поскольку мы только начали изучать эту тему, как я уже упоминал ранее. Кроме того, в школах этому не учат.

Мой отец посоветовал обратится на форум, рассказывал, что раньше, когда люди обращались за помощью на форумы, они получали хотя бы частичную помощь. Сейчас я понял преобладает другой подход: много споров и оскорблений на несколько страниц, и никакой помощи.

Благодарю всех за помощь! Прошу прощения, если я был некорректен. Всех с прошедшим!

PS. Для первых проб мы проблему решили использовав в схеме парочку реле, ну а теперь нам помогли с кодом.

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

Пн фев 24, 2025 12:17:40

Кто ищет как бы помудренее накрутить программу тот обязательно находит ...
использовать switch / case так как в Вашем варианте ... Это конечно весьма оригинально...
Но как то не встречалось...
Иже "условный переход по меткам, сгенерированным в подпрограммах"...
Как бы "указатель на функцию" еще существует...
:?
Относительно оптики на открытом пространстве - практика дело наживное...
Могу лишь заметить, что это не одно и то же, что светонепроницаемой камере поток проходящих "заслонок" регистрировать.
Да и "светонепроницаемость" относительна - пластик, к примеру, вполне себе может быть для ИК прозрачным.
:wink:
А вот программы надо учиться самостоятельно составлять, тем более, когда уже в эту сферу достаточно глубоко увязли (хоть, похоже, и не по своему желанию).
Тогда может и половина вопросов сразу отпадет.
Одно дело подсказка другое - переработка программы "игрушки студента" под заказ.
Этот вопрос только студентам интересен/полезен будет...
8)

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

Ср мар 05, 2025 01:46:41

Уважаемые радиокоты! Прошу помощи :cry: . Я когда-то давно, примерно года полтора назад делал проектик на ардуино NANO. Все успешно конектилось с ПК и спокойно заливался скетч в среде IDE. Потом отложил это дело в долгий ящик. Сегодня достаю эту платку, а скетч в нее не заливается, ни какой, даже стандартный блинк. Выдает ошибку: "Не удалась загрузка: ошибка при загрузке: exit status 1". Я пробовал перезапускать среду IDE, перезагружать ПК, менять в настройках bootloader на old bootloader - безуспешно. Плата признаки жизни подает, т.к. прошлогодняя записанная в ней прошивка живая, и успешно отрабатывает. Пробовал перезаписывать загрузчик сторонним прогером - все перезаписывается успешно. Пробовал заливать прошивку в плату по ISP - тоже все заливается и работает. А вот в среде IDE не заливается прошивка :dont_know:
В конце концов попробовал на другой плате ардуино NANO - та исправно работает и прошивка заливается на нее как положено в среде IDE. Не могу понять, где косяк :roll: Неужели плата за год неиспользования - испортилась частично? Микросхема связи USB-com - затертая, но скорее всего стандартно CH340. Непонятно только, за чем ее затерли...
----------
В логе в конце: can't set com-state for "\\.\COM8"

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

Ср мар 05, 2025 04:50:35

Посмотрите номинал подтягивающего резистора на RESET, не 1 ли ком вместо 10?
Ответить